Templates/ Yoga studio
Yoga studio website template for Next.js
A complete home page composed from 10 Facade blocks, in the order a visitor reads them. This page explains each section: which block, why it is there and which props to change.
Looking at the blocks themselves? Yoga studio website components for React.
Install
npx shadcn@latest add @facade/hero-local-business @facade/service-menu @facade/sliding-tabs @facade/team-grid @facade/pricing-section @facade/review-marquee @facade/faq-section @facade/booking-slots @facade/location-card @facade/footer-bigcomponents/facade; you assemble them in a page file in the order below. 4 of the blocks are Pro and need a license key in components.json. Pro setup.Section by section.
What each block does on a yoga studio site and what to change first.
- 01
Opens the page with the service, a live rating and a phone number. The rotating words name the jobs you want more of.
Change first:rotatingWordsphoneratingreviewCounttrustItemsprimaryCta - 02
Service menu
ProA tabbed price list with durations and Popular tags. Prices in the open.
Change first:categoriescurrencybookLabeldefaultCategory - 03
Sliding tabs
FreeAccessible tabs with a spring animated pill. Use it to split content by level, day or location.
Tabs by level: beginner, all levels, advanced. Put the class list inside each panel.
Change first:tabsdefaultValuelabel - 04
Team grid
FreeThe people behind the business, with bios on hover and an optional hiring card.
Change first:membersheadingshowHiringCard - 05
Three tiers with a monthly and yearly toggle. Transparent prices remove the quote wall.
Drop-in, 10 class pack, unlimited. Set the intro offer as the yearly badge text.
Change first:tiersmonthlyLabelyearlyLabelyearlyBadgecurrencycomparisonNote - 06
Two rows of review cards scrolling in opposite directions. Density over depth, good above a form.
Change first:reviewsdurationrows - 07
FAQ section
FreeAnswers the questions that stop a call, and emits FAQPage JSON-LD from the same array so the answers can show in search.
Change first:itemsheadingphoneemailctaHref - 08
A 14 day date strip with grouped time slots and a confirm callback. Booking without a backend.
Change first:serviceNamedurationMinutespriceLabelgetSlotsclosedWeekdaysonConfirm - 09
Location card
FreeAddress, hours and phone on a stylized map card with a directions link. No API key.
Change first:nameaddressphonehoursnote - 10
Footer, big
FreeName, address and phone for local search, hours, link columns, a newsletter form and a wordmark.
Change first:businessNameaddressphoneemailhourscolumnssocialslegal
The full page.
All 10 blocks stacked in order, live, at desktop width. Numbers match the sections above.
Build it in four steps
Step 1
Install the blocks
Run the shadcn command on this page once. Every block of the yoga studio page lands in components/facade as editable TypeScript.
Step 2
Configure site data
Create one data file with the business name, address, phone, hours, time zone and services, and pass it to the footer, contact, hours and hero blocks.
Step 3
Replace the copy
Work through the sections below. Each one names the props to change first. Keep one claim per line and no stock phrases.
Step 4
Deploy
Build with next build and deploy to Vercel or any Node host. The blocks are static React, so no extra services are needed.