Source: https://www.hype-stack.dev/docs/packs-templates/templates/personal-trainer

# Personal Trainer

A personal training studio's own website and booking app. Visitors see the next open time and every coach's free hours
without signing in, pick one, and land on it after they log in. This is the `personal-trainer` template, and it runs on
the [Booking](/docs/packs-templates/packs/pack-booking) pack.

## What's inside

- A **starter** for auth (you pick WorkOS or Better Auth at install).
- A **layout** shell (defaults to the glass layout, swappable at install).
- A separate [admin app](/docs/packs-templates/packs/admin) from the starter.
- [Booking](/docs/packs-templates/packs/pack-booking) as a fixed feature pack: the calendar, guest booking with email
  confirmation, reminders, clients, and the staff control center.
- A public site: a home board with the next open time and each coach's free hours, session pages, coach profiles, a
  price list, and a contact page.
- A client dashboard and a **Today** page for coaches, on the lime theme in dark mode.

There is no billing pack. Add one with `npx @hype-stack/cli compose` if you want to charge through the app.

## Make it yours

| What                                     | Where                              |
| ---------------------------------------- | ---------------------------------- |
| Phone, email, address, hours, home stats | `src/features/site/config.ts`      |
| Session, coach, FAQ, and review copy     | `src/features/site/content/`       |
| Coaches, sessions, prices, open times    | in the app, under `/booking/setup` |

The site never hard-codes coaches or prices. It reads them live from the booking pack, so the website and the calendar
cannot disagree.

## What you need to set up

1. **Auth** - follow the guide for the starter you picked:
   - [SaaS Starter (Better Auth)](/docs/packs-templates/packs/starter-saas-betterauth) (default), or
   - [SaaS Starter (WorkOS)](/docs/packs-templates/packs/starter-saas-workos)
2. **Email** - set `RESEND_API_KEY`. Online booking is on from the start, and a guest confirms a session from a link in
   an email. Without the key the link only shows up in the backend log.
3. **Admin** - set `SUPER_ADMIN_EMAIL` to sign in to the [admin app](/docs/packs-templates/packs/admin) the first time.

Then add your coaches and sessions in `/booking/setup`. Online booking can be switched off under Setup > Business.

## Why use the template instead of composing packs yourself

Composing the starter, a layout, and the booking pack gets you a working booking app. The template adds the part a
studio's clients actually see: the public site wired to live availability, and the sign-in flow that returns a visitor
to the time they picked.
