Doing today's workout
The single most-used flow in the client PWA. Open today's session, log every set and rep, hit the rest timer, finish, rate the workout.
The walkthrough
The flow your client follows
- Open the PWA. The Today screen is the default landing tab. Today's workout sits at the top as a big card.
- Tap Start workout. The active workout view opens — every exercise listed in order, each with the prescribed sets / reps / intensity (RPE, %1RM, or RIR — whatever you set on the program).
- For each set: tap the row, enter the reps completed, the weight, and optionally their RPE. Mark it as a warmup if applicable.
- Hit Done on the set. The rest timer kicks in automatically — counts down the rest seconds you programmed.
- Repeat across every set of every exercise. If they hit a PR, INGOT flags it with a trophy badge and the
is_prflag goes to true. - When every set is logged, the workout auto-flags as completed. They get a finish screen prompting for mood + difficulty ratings.
- Stats — total volume, time, PRs — surface immediately in their progress tab and roll up into their weekly report.
Offline-first behavior
Most clients train in gyms with patchy connectivity. The PWA caches the active workout's shell and uses a generic mutation queue — set logs, body metrics, recovery logs, and messages all queue locally and sync the moment the device gets a connection back. They can log their entire workout offline and it'll show up in your dashboard once they're back online.
Makeup workouts
If a client misses today and wants to do it tomorrow, they tap Reschedule on a missed session. The original session stays as missed; a new session is created on tomorrow's date. Adherence stats reflect this — the missed workout still counts as missed, but the rescheduled one counts as completed when done.
What you see when they're done
From your trainer dashboard: the workout shows as completed, with their actual logged sets visible on the client's profile. PRs surface on your dashboard "Recent PRs" widget. Their adherence percentage updates immediately.