Skip to content
sreynosolabs
Back to projects

In-house product · training app

Training Companion

A training app that works without signal and keeps your history ready for an AI to tune your routine.

This is a private app: I can walk you through it on a video call.

Workout · Monday

  • Squat 3×8, 60 or 65?
  • Bench press, same as last time?
  • Shoulder pain (write it down)

60 × 8 · 60 × 8 · 55 × ?

??

Before
Today's session in Training Companion, dark theme, sample account: the Incline DB Press exercise with its target (3 × 8–12, RIR 1–2), the "Last time" box with the previous session's sets (26 × 11, 26 × 10 and 26 × 9) and its recent best set, today's set 1 already logged (26 kg × 12, RIR 1) and the set 2 editor with weight, reps and RIR.After
Before:
Scattered notes, with no progress or history.
After:
Every set logged and progress calculated automatically.

The problem

Without an organized log, you can't see what weight you used last time while you train, progress isn't calculated and aches or injuries aren't written down anywhere.

There was also no ready-made summary to share when a coach or an AI needed to adjust the routine.

The solution

An app installed on the phone that opens straight into today's session. Each exercise shows what you did last time next to today's target, every set is checked off with a tap and the rest timer starts on its own.

Between sessions it shows progress per exercise, records, measurements and aches. Routines can be built with AI: download a prompt, give it to your favorite assistant, paste the answer back, preview it and import it.

Plus an integration with a Custom GPT, built and ready: it reads the history with a read-only key so a "coach" gets the real context without copying it by hand.

The result

It's an in-house product in use, with real users. Every set is logged with weight, reps and effort, progress is calculated automatically and the history is ready to share.

Logging works even when the gym has no signal: nothing is lost and everything syncs once the connection is back.

On screen

Under the hoodTechnical details

Stack

  • .NET 10 (minimal APIs)
  • EF Core 10 + PostgreSQL
  • React 19 + TypeScript
  • PWA with IndexedDB
  • Docker
  • xUnit, Vitest and Playwright
  • Offline-first: writes go through an ordered IndexedDB outbox that coalesces repeated edits and retries with backoff.
  • Idempotent API with client-generated ids: if a request arrives twice, it returns the same result.
  • Immutable history: each session stores a snapshot of the routine, so publishing a new version never changes past workouts.
  • A routine format in Markdown with a JSON block, readable by people and language models, with a parser tolerant of what assistants usually produce.
  • Custom GPT integration through Actions: a separate OpenAPI document exposes read-only endpoints only, with a read-only API key stored as a hash.
  • CI that deploys only when backend tests on real PostgreSQL, frontend tests and E2E on Pixel 7 and iPhone SE all pass.

Does your business need something like this?

Let's talk about your project
Next projectFinanzasApp