Skip to content
Neal Gysemans
All projects
2025Live & in use

Gym Progression

A lifting log for people running an actual strength programme — it computes today's weights from the programme's own rules, and shows the arithmetic.

Role
Sole developer — Flutter app, local persistence, release pipeline
Stack
  • Flutter
  • Dart
  • sembast
  • Firebase
Gym Progression progress screen with a squat weight chart and a list of personal records
Screenshots show the real software. Any names, plans or workout history in them are locally seeded demo data, never real customer data.

Status

Live on the iOS App Store since 2 September 2026. Android builds go to testers only, through Firebase App Distribution.

Decisions

Epley over Brzycki

One-rep max estimates use the Epley formula rather than Brzycki, to match the 5/3/1 spreadsheets lifters migrate from.

Programme state is a pure fold over history

Programme state is recomputed on read as a pure fold over session history. Fixing a typo in an old session automatically rewinds every stall and deload decision that followed it.

Local-first, no sign-up

Data lives locally in sembast, and the free tier has no sign-up gate.

What it cost

  • Epley: knowingly less accurate at some rep ranges, chosen for trust.
  • Pure fold: compute on every read, and history can never be truncated.
  • Local-first: no cross-device sync without an account.
Workout log with weight and reps per set and the previous session shown under each set
Logging a session, with last time's weight and reps under every set.
List of workout templates including two training days, a deload week, accessories and a travel workout
Workout templates, including a deload week.
Workout history listing dated sessions alternating between two training days
Session history, which every programme decision is recomputed from.