Progressive
A training log that pushes back — every set tracked, every gain measured.
- Role
- Product Design & Mobile Engineering
- Year
- 2026
- Stack
- 8 technologies
Active session
Push day
Bench Press
ChestUp next
Incline DB Press
Good evening
Miguel
Workouts
24
Volume
48.2k kg
Streak
6 days
Overload
+12%
Weekly goal
3 / 4
Next up: Pull day · aim for 62.5 kg on rows
Progress
Overload score
+12% vs last month
84
Total volume
8 weeksPersonal records
Chest volume is up 18% this month — push day is paying off.
Progressive is a gym-tracking app built around one idea: progressive overload. Logging a set takes seconds — weights and reps are pre-filled from the last time you trained the exercise, steppers replace typing, and completing a set instantly checks your history for a new personal best. Streaks, weekly goals, and a live overload score keep the momentum honest.
One strict-TypeScript codebase runs natively on iOS and Android through Expo, and ships to the web as an installable, offline-capable PWA. Workouts persist on-device first and sync to a Supabase backend behind email auth, so a session logged on your phone is waiting on your laptop. The design is a deliberate three-colour system — near-black journal surfaces, warm bone text, and an acid-lime accent reserved for actions and progress.
Built with
- React Native
- Expo SDK 54
- TypeScript (strict)
- Zustand · AsyncStorage
- Supabase · Postgres
- React Navigation
- Custom RN charts
- EAS Hosting · PWA
3 platforms
iOS, Android & installable web PWA — one codebase
Offline-first
Sets save on-device, then sync to the cloud
Zero typing
Sets pre-filled from your last performance
14+ stats
Volume, streaks, est. 1RM, overload score & more
What it does
Fast workout logging
Large tap targets, ± steppers, values auto-filled from last time, a live session timer, and encouraging toasts the moment you beat a previous best.
Progressive-overload analytics
Volume over time, weekly consistency, estimated 1RM, personal records, and an overload score — translated into plain-English insights.
Custom splits & templates
Build your own training splits and workout templates; the home screen tells you what to train next and suggests the weight to target.
Exercise library
Search and muscle-group filters across the built-in library, custom exercises, and a per-exercise detail screen with records and a progress chart.
Streaks & coaching
Day streaks, a weekly session goal, body-weight trend tracking, and goal-based rep guidance keep training pointed at a target.
Sync everywhere
Supabase auth and cloud sync carry workouts, drop sets, supersets, and cardio across devices — with a responsive sidebar layout on desktop.
Log a set in seconds
Every set is pre-filled from the last time you trained the exercise — adjust with a stepper, tap to complete, and the app checks your history for a new PB on the spot. A live timer and encouraging toasts keep the session moving.
Active session
Push day
Bench Press
ChestUp next
Incline DB Press
Every lift, one tap away
Search and muscle-group filters across the built-in library, plus custom exercises via a floating add button. Each exercise remembers when you last performed it and opens into records and a progress chart.
Exercises
Bench Press
ChestLast: 60 kg × 8 · 2d ago
Deadlift
BackLast: 140 kg × 5 · 4d ago
Squat
LegsLast: 120 kg × 6 · 5d ago
Overhead Press
ShouldersLast: 40 kg × 8 · 1w ago
Watch the overload happen
A stats engine turns raw sets into total volume trends, weekly consistency, estimated 1RM, and personal records — then rolls it all into an overload score and plain-English insights about what's working.
Progress
Overload score
+12% vs last month
84
Total volume
8 weeksPersonal records
Chest volume is up 18% this month — push day is paying off.
Okera designs and builds full-stack products like this one — from first sketch to deployed system.