gitmyhub

payload-training-app

TypeScript ★ 11 updated 2d ago

Open-source coaching app built with Payload CMS and Next.js. Coaches manage training plans in the admin; clients log workouts on mobile.

An open-source coach-client workout tracking app: coaches build training plans in a Payload CMS admin panel, clients log sets through a mobile web interface.

TypeScriptNext.jsPayload CMSPostgreSQLDockersetup: moderatecomplexity 4/5

This is an open-source coaching and workout tracking app where coaches manage training plans through an admin panel and clients log their workouts through a mobile-friendly website. It is built with Payload CMS for the backend and content management, Next.js for the web interface, and PostgreSQL for storage.

The app splits its users into two roles. Coaches log into an admin area where they build training plans organized from top-level programs down through weekly blocks, individual training days, exercise groups, and specific exercise rows with target sets and metrics. Clients log into a separate web app where they see their active plan, work through sessions in order, and log each set with values like reps, weight, and rate of perceived exertion.

The data model cleanly separates the plan layer from the log layer. A coach writes the plan template once, and clients record their performance against it in separate tables. Logging never modifies the original plan, so the template can be reused or reviewed without being changed by client activity. When a client logs a set, it links back to the exact exercise row in the plan, giving coaches a direct comparison between what was prescribed and what was performed.

The app supports different workout formats within a session: standard sets, EMOM (every minute on the minute), AMRAP (as many rounds as possible), and Tabata intervals. Exercises can track different metrics depending on their type: weight and reps for strength work, time and distance for cardio. The exercise catalog is shared across all plans and managed by coaches.

Coaches can share read-only links to a client's plan or training results, with expiry dates and permission controls. Hidden coach notes about a client remain invisible to the client. Installation requires Node.js and PostgreSQL, and Docker Compose is provided for local development.

Where it fits