Skip to content
Mohan Ops

Case studiesFitness coachingClient system

Undefeated Health

A coaching platform the coach owns, built for other trainers too

The coach behind Undefeated Health wanted to own the platform his online coaching runs on, not rent a generic app. We built it from the first line of code to production: one platform where every trainer has their own clients, branding and billing.

Client
Undefeated Health
Product
Undefeated Health platform
Industry
Fitness coaching

1

developer, from first commit to production

3

wearable platforms feeding one client record

0

AI-drafted programs sent without trainer approval

A trainer's program library, organised in folders and ready to assign.

The problem

He sells coaching. He did not want to rent the tool it runs on.

A rented coaching app would never carry his brand or bend to how he coaches. He also had a bigger plan: other trainers should run their businesses on the same platform, each with their own clients, their own brand and their own billing. So the first version could not be built around one account and stretched later.

  • A generic app would never be his platform or carry his brand
  • Each trainer needed to be paid directly by their own clients
  • A new client needs a first program fast, but nothing should reach them unchecked

How it fits together

  • Client sign-up form
  • Wearables: Apple Health, Fitbit, Whoop
  • Stripe subscriptions
The system Undefeated Health
  • Approved programs
  • Workouts and macros
  • Direct trainer pay
One platform and one database. Each trainer sees only their own clients, brand and billing.

What it does

01

Trainer accounts and billing

Many trainers on one domain and one database, each with their own clients, branding and billing. Payments run on Stripe Connect, so clients subscribe to their trainer and the trainer is paid directly.

  • Multi-tenant
  • White-label
  • Stripe Connect
02

Program Builder

Trainers build programs from three blocks: workouts, rest days and check-ins. A check-in asks the client for photos and measurements on the right day without the trainer having to remember.

  • Workouts
  • Rest days
  • Check-ins
03

AI-drafted onboarding, approved by the trainer

When a client signs up, an AI drafts their first program and calorie and macro targets are worked out from the form. The draft waits on the trainer's Approvals page, and nothing reaches the client until the trainer signs it off.

  • Approvals page
  • Nutrition targets
04In build

Native iOS and Android apps

Native apps for the client side are being built on a 5-week plan, with the aim of submitting to both app stores at the end of it. Apple Health sync is in scope.

  • Capacitor
  • Apple Health sync

Inside Undefeated Health platform

Exercise library

The exercise library every program is built from.

Clients

Every client, their status and when they were last active, on one screen for the trainer.

Real screens from the live system. Names, figures and personal details are blurred.

The impact

Live in production, and owned by the coach.

Measured items come from the system itself. Projected items are our estimate, with the assumption stated, until the client confirms a figure.

What the coach gets back when the first program is drafted for him and the data arrives on its own.

Per new client
Trainer minutes on the first program 45 10 Days from sign-up to first program 3 1 Places training data lands 3 1
BeforeWith Undefeated Health platform
Trainer hours saved, cumulativehours
56.4 42.3 28.2 14.1 0 Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec

Assumes about 8 new clients a month and 35 minutes saved on each first program.

Projected figures. They are our estimate for a business of this size, with the assumptions written under each number below. We replace them with measured results as clients confirm them.

Measured

3 → 1

places a client's training data lands

Apple Health, Fitbit and Whoop feed the same client record as the workouts and food the client logs by hand.

Projected

~35 min

of trainer time saved per new client

Assumes a first program takes about 45 minutes to write by hand and about 10 minutes to review and approve as an AI draft.

Projected

~1 day

from sign-up to a first program

Assumes the trainer checks the Approvals page once a day. The draft is waiting the moment a client signs up, so the wait is the review, not the writing.

Under the hood

  • Next.js
  • NestJS
  • TypeScript
  • Prisma
  • PostgreSQL
  • Stripe Connect
  • Vercel
  • Capacitor
  • PostHog
Next case study A quote in minutes, commissions that add up, a brief every morning Trim Landscaping · Quote tool, commission portal and daily brief