CoachOS
One place for personal trainers to run their business, and for their clients to train, log and see progress.
The problem
Personal trainers usually juggle spreadsheets for programs, chat apps for check-ins and notes for everything else. Clients lose track of their plan, trainers only notice someone is drifting when they have already stopped coming, and progress is hard to show.
CoachOS puts programming, logging, communication and progress in one product, and turns the data into actions: who needs a message today, which block is about to end, who just hit a personal record.
What it does
Trainer
- Dashboard with KPIs, a daily plan and signals that need action
- Client list and full client file: programs, workouts, check-ins, habits, photos
- Program builder with reusable templates and splits
- Session calendar and messaging
Client
- Today’s workout with a live session logger (sets, reps, weight, RPE)
- Suggested next load, plates-per-side calculator and rest timer
- Progress: bodyweight, e1RM records, strength rating and training history
- Weekly check-in to the coach, habits and ranked leagues
Admin
- Overview of the platform
- Trainer and user management
Engineering highlights
The logic that makes the product useful lives in small, deterministic modules on the API, not in the screens.
Adherence & risk engine
A pure scoring function turns recent activity (days since the last workout, sessions this week, whether there is an active program) into a risk level with human-readable reasons. It was extracted from an inline route into a shared module so the dashboard, notifications and the per-client endpoint all use the same logic.
Strength rating
Estimates a one-rep max (Epley) from each logged set, divides it by bodyweight and scores every muscle group from 0 to 100 against sex-specific standards. Compound groups weigh more in the overall rating, and lagging muscles are flagged. Deterministic, no external AI cost.
Ranked progress leagues
Strength, mass and definition each map a 0–100 score to a competitive-game style rank, from Iron to Challenger, with divisions and league points, so progress feels like levelling up.
Exercise recommender
Maps a client’s free-text goal to an intent (strength, hypertrophy, fat loss, endurance), picks a sets/reps/RPE scheme and scores the exercise library by muscle emphasis with a bias to compound lifts.
Architecture
- App
- React Native · Expo Router · one codebase for iOS, Android and web
- UI
- Custom design system, dark and light themes, liquid-glass surfaces with Three.js on web
- API
- Node.js · Express · TypeScript · Zod validation · JWT auth · bcrypt · rate limiting
- Data
- Prisma ORM · PostgreSQL · 21 models, from programs and workout logs to check-ins and messages
- Media
- Cloudinary for progress photos and videos
- Ops
- Docker image, Railway / Render configs for the API, Netlify for the web app, migration script from the SQLite prototype
What’s next
- Payments and invoicing with Stripe
- Clients booking and cancelling sessions themselves
- Turning the rule-based daily plan into an AI copilot on top of the same signals