Skip to content
codexa

Websites · React

Yoga studio

Soft, unhurried yoga studio site with class styles, a weekly timetable, class passes, teachers and FAQs.

Yoga studio starter, as built from its own files
Starter screenshot captured from this template's own build at 1440×900. It shows the template as it ships, not output generated from a prompt.

What you get

A site for a yoga or pilates studio: class styles, the weekly timetable with the address, passes and memberships, the teachers, first-class questions and a sign-up form. All content lives in src/site.ts.

Files

Exactly what is copied into a new project: 13 files, nothing generated.

Raw data: GET /api/v1/templates/site-yoga-studio

src/site.ts
src/site.ts
import type { Site } from "./types"; /** Everything this site shows. Edit freely. */export const site: Site = {  "brand": "Stillwater Yoga",  "nav": [    {      "label": "Classes",      "href": "#classes"    },    {      "label": "Timetable",      "href": "#timetable"    },    {      "label": "Passes",      "href": "#passes"    },    {      "label": "Teachers",      "href": "#teachers"    }  ],  "navCta": {    "label": "Try a class",    "href": "#contact"  },  "sections": [    {      "kind": "hero",      "variant": "center",      "eyebrow": "Yoga & breathwork · East Austin",      "title": "Slow down for an hour. We will keep the room warm.",      "text": "Small classes of up to 16 in a sunlit room on East Cesar Chavez. Beginners in every class, mats and props provided.",      "primary": {        "label": "Your first week for $25",        "href": "#passes"      },      "secondary": {        "label": "See the timetable",        "href": "#timetable"      },      "visual": {        "type": "mock",        "title": "Today's classes",        "rows": [          {            "label": "7:00 · Slow flow with Rosa",            "value": "4 spots"          },          {            "label": "12:15 · Strong flow with Kai",            "value": "9 spots"          },          {            "label": "18:30 · Yin & restore with Hannah",            "value": "Waitlist",            "tone": "#b45309"          }        ],        "footer": "Mats, blocks and blankets are on us."      }    },    {      "kind": "features",      "id": "classes",      "eyebrow": "Classes",      "title": "Four kinds of class",      "columns": 4,      "items": [        {          "title": "Slow flow",          "text": "Steady vinyasa with time to settle into each shape. Good first class.",          "icon": "leaf"        },        {          "title": "Strong flow",          "text": "A sweatier hour with standing balances and inversions offered.",          "icon": "bolt"        },        {          "title": "Yin & restore",          "text": "Long, supported holds and a long rest at the end. Evenings only.",          "icon": "sun"        },        {          "title": "Breathwork",          "text": "Forty minutes of guided breathing, seated or lying down.",          "icon": "heart"        }      ]    },    {      "kind": "hours",      "id": "timetable",      "eyebrow": "Timetable",      "title": "This week at the studio",      "text": "Arrive ten minutes early for your first class. Doors lock five minutes after start.",      "rows": [        {          "day": "Mon · Wed · Fri",          "time": "7:00 slow · 12:15 strong · 18:30 yin"        },        {          "day": "Tue · Thu",          "time": "6:30 strong · 18:00 slow · 19:30 breath"        },        {          "day": "Saturday",          "time": "8:30 strong · 10:00 slow"        },        {          "day": "Sunday",          "time": "9:00 slow · 17:00 yin"        }      ],      "address": "1120 E Cesar Chavez St, Austin, TX",      "phone": "(512) 555-0186",      "email": "hello@stillwateryoga.com"    },    {      "kind": "pricing",      "id": "passes",      "eyebrow": "Passes",      "title": "Come once, or come often",      "text": "No joining fee. Memberships pause for travel or injury.",      "plans": [        {          "name": "Intro week",          "price": "$25",          "text": "Seven days of unlimited classes for new students.",          "features": [            "Any class, any time",            "Mat and props included",            "One per person"          ],          "cta": {            "label": "Start intro week",            "href": "#contact"          }        },        {          "name": "Unlimited",          "price": "$145",          "period": "/month",          "text": "For a regular practice, three or more times a week.",          "features": [            "Unlimited classes",            "Bring a friend once a month",            "10% off workshops"          ],          "featured": true,          "cta": {            "label": "Join",            "href": "#contact"          }        },        {          "name": "10 classes",          "price": "$190",          "text": "Use them at your own pace over four months.",          "features": [            "Valid for 120 days",            "Shareable with a partner",            "Book up to 14 days ahead"          ],          "cta": {            "label": "Buy a pack",            "href": "#contact"          }        }      ]    },    {      "kind": "team",      "id": "teachers",      "eyebrow": "Teachers",      "title": "Who teaches here",      "items": [        {          "name": "Rosa Delgado",          "role": "Founder, slow flow",          "tone": "#4d5a2e"        },        {          "name": "Kai Nakamura",          "role": "Strong flow",          "tone": "#57534e"        },        {          "name": "Hannah Brooks",          "role": "Yin & restore",          "tone": "#6b6347"        },        {          "name": "Marcus Bell",          "role": "Breathwork",          "tone": "#365314"        }      ]    },    {      "kind": "faq",      "eyebrow": "First class",      "title": "Good to know",      "items": [        {          "q": "I have never done yoga. Which class?",          "a": "Slow flow or yin. Teachers will offer simpler options throughout, and nobody is watching you but you."        },        {          "q": "What should I bring?",          "a": "Comfortable clothes and water. We have mats, blocks, straps, blankets and two showers."        },        {          "q": "Is the room heated?",          "a": "Warm, not hot: around 78°F in the winter months, cooled in summer."        }      ]    },    {      "kind": "contact",      "eyebrow": "Sign up",      "title": "Book your first class",      "text": "Pick a day and we will send a booking link and directions. Questions about injuries or pregnancy are welcome.",      "fields": [        "name",        "email",        "date",        "message"      ],      "button": "Send"    }  ],  "footer": {    "text": "Small yoga classes in East Austin.",    "columns": [      {        "title": "Studio",        "links": [          "1120 E Cesar Chavez St",          "Bike racks out front"        ]      },      {        "title": "Practice",        "links": [          "Timetable",          "Workshops",          "Gift cards"        ]      },      {        "title": "Follow",        "links": [          "Instagram",          "Newsletter"        ]      }    ],    "legal": "© Stillwater Yoga. Sample content: replace it in src/site.ts."  }};

Remix

Remix this template

Describe what to change and the agent starts from Yoga studio's files. The box is already started for you: finish “Start from Yoga studio and …”

Agent ready

Creates a free account first; your idea is carried over.

Dependencies

Documented from the template's package.json. The runtime has a prebuilt dependency set for Vite + React + TypeScript, so installs are fast.

  • react^19.1.0
  • react-dom^19.1.0
  • vite^6.3.0
  • @vitejs/plugin-react^4.4.0
  • tailwindcss^4.1.0
  • @tailwindcss/vite^4.1.0
  • typescript^5.8.0

How it runs

Framework
Vite + React + TypeScript
Dev command
npm run dev
Build command
npm run build
Output directory
dist
Port
5173
Entry route
/

Projects run in an isolated sandbox with a live preview. Read the projects documentation for settings, snapshots and deployment.

All templates

Build on Yoga studio

Create a free account, start from this template, and ask the AI agent to turn it into your app.