Documentation
A visual tour of the whole product. Use the menu on the left to jump around. Each section is 30 seconds to read. if you need more detail, everything links to the actual page in the app.
PTBase is the software independent personal trainers run their whole business on. and the app their existing clients use to book, follow programs, and log workouts. It's not a marketplace. Trainers aren't discovered on PTBase. Clients come in via a direct invite link or a trainer code.
Trainers get a dashboard at /dashboard. Clients get a mobile-first portal at /portal. Both live inside the same app behind a single Clerk login.
Good afternoon, Marcus
Wednesday, 8 Apr 2026 · 6 sessions today
Week of 6 — 12 Apr 2026
07:00
09:00
17:30
19:00
08:00
12:30
17:30
07:00
10:00
15:00
18:00
08:30
11:00
17:00
07:30
12:00
17:00
18:30
09:00
10:30
Every trainer gets a unique code (your publicSlug). It's how clients find you without going through a directory. You share it two ways:
/join/<token>. one per client, one-shot useBoth approaches create a Client row in your roster automatically. You never have to add clients manually.
No-invite trainer code entry
/public/marketing/screenshots/no-invite-code.png
Every client in your roster shows up in one table with credits, adherence, and status. Click a row to open their full profile . goals, injuries, notes, payment history, assigned programs, and a phone field that's encrypted at rest.
| Name | Goal | Credits | Adherence | Status |
|---|---|---|---|---|
Sv Sophie van Dijk | Strength & posture | 12 | 92% | Active |
ML Marcus Lee | Marathon prep | 3 | 81% | Low credits |
AM Alex Mendoza | Fat loss | 8 | 88% | Active |
PS Priya Sharma | Return from injury | 0 | 64% | No credits |
To invite a new client, hit the Invite client button in the topbar. A modal opens showing your trainer code plus a form to generate a one-shot personal link for someone specific.
Invite client modal
/public/marketing/screenshots/invite-modal.png
Your Sessions tab is the weekly calendar. Each slot is a card. Click an empty slot to book a client directly into it. Click a booked session to open the detail modal. with the client profile link, meeting link, history, recurrence, and cancel button all in one place.
Sophie van Dijk
12 credits remaining
Date
Wed, 8 Apr 2026
Time
09:00 — 10:00
Location
Online
Type
Individual
Meeting room
https://zoom.us/j/83919201Recurrence
Repeats every Wed at 09:00
Multi-day availability rule modal
/public/marketing/screenshots/availability-rule-modal.png
Turn any booking into a weekly recurrence from the detail modal. A background job materialises the next instance each week, so your client just keeps showing up on the same day and time.
Vacation days live under the Availability Rules tab. Add a date range and PTBase will skip those days when generating new slots. your clients won't even see them.
Vacation days list
/public/marketing/screenshots/vacation-days.png
Paste your personal Zoom / Teams / Google Meet link once in Settings and every online session will show an Open meeting button to your client on their booking. No integrations to configure, no OAuth. your link, your room, forever.
Meeting link in settings
/public/marketing/screenshots/meeting-link-settings.png
Build a weekly program for a specific client from their profile, then save it as a template. Next time you onboard a similar client, hit Apply template from their profile and pick a starting week. the whole program is cloned into their schedule in one click.
Apply template modal on client profile
/public/marketing/screenshots/apply-template-modal.png
PTBase ships with the free-exercise-db library bundled. 870 exercises with photos, muscle groups, and equipment filters. You can also add your own exercises with YouTube links (thumbnails preview automatically).
Muscles
Equipment
Barbell bench press
Incline barbell bench press
Decline barbell bench press
Close-grip bench press
Reverse-grip bench press
Wide-grip bench press
Barbell floor press
Barbell pullover
Three calculators your clients expect you to do in your head: calorie targets (Harris,Benedict + activity multiplier), macro splits, and one-rep-max estimates (Brzycki). Each calculator has a Send to client button that saves the result to their profile, so they can see it in the portal.
Calorie calculator with result
/public/marketing/screenshots/tools-calorie.png
Paste your Google / Apple / Outlook ICS URL into settings and PTBase will block any slot that overlaps with a busy time on that calendar. Your PTBase sessions also sync out via an iCal feed, so confirmed bookings show up in whatever calendar app you live in.
Clients get their own ICS feed too. they can subscribe and their booked sessions appear in their iPhone calendar automatically.
Calendar sync section in settings
/public/marketing/screenshots/calendar-sync-settings.png
When a client signs in they land in a mobile-first portal. The home screen shows their credit balance, next session, tips from you, and shortcuts to book or log a workout. It's designed to feel like an app. your clients can add it to their phone home screen and forget it's a website.
Good afternoon
Hey, Sophie
Book a
session
Reserve your spot
Log a
workout
Track your work
Next session
Thu
10
Strength training
14:00–15:00 · Zoom
Tips by Marcus
See allHydrate before training
500ml, 30–60 min before.
Sleep 7–9 hours tonight
Recovery happens after, not during.
Warm up 5 min before lifting
Two light sets before working weight.
Hit 2g protein per kg
Sort protein before anything else.
Choose a time with Marcus
Pick a day
Available times
The workout logger shows the exact program you wrote for your client, in order, with their previous numbers on each set. They tap through as they finish sets. You see everything on their profile afterwards.
Push Day — Upper
00:24:11
Bench Press
Overhead Press
3 sets · 8 reps
Your trainer profile, meeting link, calendar sync, public slug, session types, cancellation policy, and notification preferences all live under /dashboard/settings. Billing works through Mollie. clients buy credits up-front and spend them when they book. You see revenue trends in the Analytics section.
Phone numbers are encrypted at the field level with AES-256-GCM using an encryption key you own. Database access is gated by row-level checks. your trainer account can only see rows linked to it. TLS in transit, encryption at rest via Supabase.
Authentication is handled by Clerk. Master and trainer roles are stamped in Clerk metadata, and middleware enforces that clients can never reach the trainer dashboard (and vice versa).
Encrypted phone field on client profile
/public/marketing/screenshots/phone-encrypted-field.png