Coaching depends on a shared view of the programme and of what actually happened. A coach who sees a plan and an athlete who sees a different one cannot adjust anything.
The platform connects coach and athlete workflows across web and mobile, keeping assignments, session logs and progress in one consistent model.
The problem
Three clients drift apart when each one re-implements validation, types and programme logic. The coach, the web app and the phone end up disagreeing about what was assigned.
What the system does
- Coach and athlete relationships with role-aware interfaces on web and mobile.
- Reusable programme structures that a coach reviews and assigns as a version.
- Session logging for athletes and a progress view for coach and athlete.
- Shared validation, types and design tokens, plus an optional AI draft-generation layer for programmes.
A representative journey
- Step 1: Establish the relationshipA coach invites an athlete. Both see only what the relationship allows.
- Step 2: Prepare a programmeThe coach builds from reusable structures, or starts from an AI-generated draft.
- Step 3: Review and assign a versionThe coach reviews it and assigns a specific version, so changes later do not rewrite history.
- Step 4: Log the sessionThe athlete records what was done and how it felt, on the phone.
- Step 5: Inspect progressCoach and athlete see the same record of completion and trends.
- Step 6: Adjust the next blockThe coach changes the next assignment from what was actually logged.
Programme, week 3 · assigned as version 2 (coach view)
- MonLower body A (completed)
- TueRest (rest day)
- WedUpper body A (completed)
- ThuMobility (to do)
- FriLower body B (to do)
- SatLong walk (to do)
- SunRest (rest day)
Athlete, on the phone
SyntheticSessions completed: 2 of 4
Log: squats 3×8 at a steady weight. Felt: tired, knees fine.
The coach sees the same log and adjusts next week’s version.
Working prototypeUse a small working version of this on invented data, the way a person would.
Try the prototypeInspect the system
This anatomy is a proposed description of how such a system is put together. It is not an audit of a specific deployment.
Inspect the system
How Fitness coaching on web and mobile is put together
- What it is
- Shared domain and typesValidation, types and programme logic used by every client.
- What flows through it
- Definitions go in. The same rules run on the API, the web and the phone.
- The decision
- One schema, validated the same way everywhere.
Read the whole system as a list
- Shared domain and types. Validation, types and programme logic used by every client. Flow: Definitions go in. The same rules run on the API, the web and the phone. Decision: One schema, validated the same way everywhere.
- API service. A NestJS service that owns the data and the rules. Flow: Requests from the clients go in. Validated records come out. Decision: The server is the authority. Clients validate for convenience only.
- Database. PostgreSQL accessed through Prisma. Flow: Programmes, assignments, logs and relationships are stored. Decision: Assignments are versioned, so history is stable.
- Web and mobile apps. A Next.js web app and an Expo mobile app. Flow: People interact. Programmes, logs and progress are displayed and recorded. Decision: Role-aware screens for coaches and athletes on both platforms.
- AI draft layer. An optional generator for programme drafts. Flow: A coach's goal and constraints go in. A draft programme comes out. Decision: A draft is reviewed and versioned by a coach before it is assigned.
Key decisions
One shared domain layer
Validation, types and programme logic live in one package used by the API, the web and the phone, so the three cannot drift.
Versioned assignments
An athlete's logged sessions refer to the version they were given, so editing a template later never changes the past.
AI drafts, coach decides
AI suggestions support a coach. They are not a diagnosis and do not promise an outcome.
Outcomes and limits
We publish no measured outcomes for this project, because we have none we can evidence. The description above is of what the system does, not of results it has produced.
- Nutrition features, offline behaviour, wearables and billing are not claimed as delivered.
- AI suggestions are drafts for a coach, not medical or health advice.
- No user numbers, subscription revenue or results are claimed.
Guardrail
One schema validated the same way on the API, web and phone. AI drafts a programme and a coach decides.
Technical detail
Technology named in the portfolio for this kind of system. Which parts a given engagement used is not stated.
- React Native (Expo)
- NestJS
- Next.js
- Prisma
- PostgreSQL
- Zod
- Turborepo