Work 01 AI product MVPs
Recomp 88
A strength-training tracker you can use the second you open it. Guest mode works with no account, and signing in later syncs everything to the cloud without losing a set.
01 The problem
Most gym apps ask for an account before you can log a single set, and then lose their way the moment the basement has no signal. A tracker has to work mid-workout, one-handed, between sets.
Recomp 88 starts in guest mode: everything is stored on the phone and the full app works without signing in. An account is there for backup and for using your training data elsewhere.
02 My role
Sole developer: product, UI, the sync design, the read API and its tests.
03 Architecture
A Next.js app installed as a PWA. A Zustand store holds the workout plan, sessions, body weight, notes and settings, and writes them to local storage, so the tracker never waits on the network. After sign-in (email and password, or Google), changes push to a sync route that merges them into one MongoDB record per account.
The tracker covers a seven-day split with planned and extra sets, warm-up, drop and failure sets, RPE, supersets and circuits, a rest timer that survives reloads, personal-record detection and a plate calculator. Progress shows estimated one-rep-max charts, tonnage trends, a muscle recovery heatmap and a 12-week consistency grid.
04 Two hard decisions
A
Guest data merges in, but never into the wrong account
Signing in for the first time merges this phone's guest data into the new account. The server merges item by item: if the account changed since this phone last synced, the server's version wins a conflict; otherwise the phone's does.
If the phone last synced with a different account, Recomp does not auto-merge. On a shared phone, one person's training history can't leak into someone else's account.
B
A read API you can hand to other apps safely
Each user can create up to ten personal tokens for their own apps. A token is shown once, only its SHA-256 hash is stored, it can only read workouts, and it is limited to 60 requests a minute.
Responses never include account IDs, email or notes, and a token can't create or revoke other tokens. That's how Atlas reads gym sessions without being able to change anything.
05 The result
- accounts needed to start
- 0
- tokens per user, read-only
- 10
- API routes
- 8
- test files
- 6
Live and public. Open it and you're in guest mode straight away; nothing leaves your phone until you sign in.
Atlas uses the read API to count gym sessions toward weekly commitments.

Screens show seeded demo data on local or emulated devices. No real users or records.