Web apps

Yoga studio booking clickable prototype

Five-screen mobile-first booking prototype built from Figma, with fake data, browser-saved bookings and no real payments.

reactvitetypescripttailwindreact-routerlocalstorage

Built 1 time, downloaded 0 times.

Install from your terminal

Run this in your project folder. It signs you in, shows what changes and asks before it overwrites a file.

npx claude-lab add yoga-studio-booking-clickable-prototype-22bd0f
CLAUDE.md
# Yoga studio booking prototype

## Purpose

This is a clickable prototype of a yoga studio booking app. The studio owner will test it on a phone. It is NOT a real product. Nothing here takes real money or stores real customer data.

## Stack

- React + Vite + TypeScript
- Tailwind CSS for styling
- React Router for the five screens
- No backend, no database, no real payments
- Bookings are saved in the browser (localStorage) so they survive a reload

## Screens and routes

- `/` class list
- `/class/:id` class details
- `/book/:id` booking form
- `/confirmation/:bookingId` booking confirmed
- `/my-bookings` list of saved bookings

## Commands

Run these from the project folder in a terminal.

- `npm install`: downloads the packages the project needs. Run once after copying the files.
- `npm run dev -- --host`: starts the app and makes it reachable from your phone on the same wifi.
- `npm run build`: makes a production build and checks that it compiles.
- `npm run lint`: checks code style and common mistakes.
- `npm run typecheck`: checks that the TypeScript types line up.
- `npm test`: runs the unit tests.

## Design rules

- The Figma design is the source of truth.
- Colours, fonts and spacing live as tokens in `tailwind.config.ts` and `src/styles/tokens.md`.
- Never hardcode hex colours or magic pixel values in components. Use a token.
- If a value is not in the tokens, add it to the tokens first and tell the owner.
- If the Figma MCP connection is not available, ask for screenshots or exported frames in `design/` and a list of colours and fonts. Do not guess colours.

## Layout

- Mobile first. The design width is 390px.
- Test at 390x844 and 360x740. Nothing may break at 360px.
- On desktop, just centre the phone-sized column. Do not build a desktop layout.

## Data and state

- Fake data lives only in `src/data/classes.ts` and `src/data/bookings.ts`.
- Components never contain inline mock data.
- Booking state is saved to localStorage so My Bookings works after a reload.

## Payment

- The payment step is a fake form. Any input succeeds.
- Show the label "Prototype - no real payment" on that step.
- Never ask for real card numbers, and never add a real payment library.

## Working style

- Workflow: explore, then plan, then code, then run the verify skill before saying a change is done.
- Use `/clear` between unrelated tasks and `/compact` at natural breaks.
- The user is new to coding. Explain each command in plain language before running it.
- Say what a change does in one or two plain sentences.

## Safety

- Never put secrets or real personal data in any file.
- If a key is ever needed, use a placeholder such as `YOUR_API_KEY`.
- Do not edit files outside this project folder.

## Reference files

@REVIEW.md
@SPEC.md
Use for my project