Hype StackHypeStack

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 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 from the starter.
  • 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

WhatWhere
Phone, email, address, hours, home statssrc/features/site/config.ts
Session, coach, FAQ, and review copysrc/features/site/content/
Coaches, sessions, prices, open timesin 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:
  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 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.