For the last year and a half, I've been lifting four days a week — alternating between hypertrophy blocks (~12 reps × 3 sets) and strength blocks (~6 reps × 5 sets) for the same lifts. I tried the popular subscription apps. I tried spreadsheets. I tried a notebook.
None of them fit. The subscription apps wanted me to start a "program" before they'd let me log a set. The spreadsheets didn't remember my last weight per lift per training style. The notebook was, predictably, terrible at search.
So I built Gym Tracker in Flutter, and this week I open-sourced it.
What it does
It's a small app with a clear job: log a session, remember my numbers, and get out of the way.
- A Workout tab where I pick body parts, see only the relevant exercises, and tap my way through sets. Each exercise card pre-fills my last weight for the current training style — strength and hypertrophy records live as separate rows, so a 100kg × 5 strength entry doesn't bleed into a 80kg × 12 hypertrophy entry.
- An Exercises tab grouped by body part (Legs, Chest, Arms, Back, Shoulders) with a many-to-many catalogue, weight history per exercise, and an "add new exercise" button.
- A History tab with every session I've ever logged, in reverse chronological order.
- A Profile tab for body stats (weight, waist, neck, notes) and a database export via the system share sheet.
The app ships with a pre-populated exercise catalogue and a blank SQLite database. No account. No telemetry. No cloud. It works on Android (APK) and Windows (portable .exe) from the same codebase. iOS and macOS build from source; I just don't have a Mac to sign releases with.
Why open source
I'm the Founder of Executive Mind, an AI consultancy where I spend most of my days building agent systems for clients. A pattern I keep returning to: good tools should be inspectable, portable, and free. Lock-in is the enemy.
Open-sourcing Gym Tracker means three things to me:
-
Anyone can read the code. The whole stack is small enough to navigate in an afternoon —
sqflitefor storage,sqflite_common_ffito make it work on desktop,providerfor state, one repository for all data access. If a Flutter dev wants to see a real-world app that ships to two platforms from one codebase, this is it. - Anyone can fork it. A coach can add their own exercises. A lifter can theme it. A developer can swap SQLite for Drift if they want reactive queries. The license lets you.
- It forces me to keep it honest. Public code ages in the open. That's a feature, not a bug.
What's next
The roadmap is in the README. The big items: GPS run tracking (a placeholder toggle in Settings waiting for a real screen), Health Connect sync on Android, a session detail view with per-set editing, and an analytics dashboard with charts. I built the toggle in early so I'd remember the wiring.
If you want to contribute, the easiest first PR is adding exercises to the catalogue or building the session detail screen. The data layer is ready for it.
If you just want a fitness tracker that doesn't try to sell you a program, you can grab the APK or the Windows zip from the releases page.
Either way, the code is on GitHub. Go read it. Tell me what's wrong with it. That's the whole point.
🔗 github.com/Roughn3ck/gym_tracker
🌐 executivemind.io
👤 krisracette.me
— Kris Racette, Founder of Executive Mind | krisracette.me | GitHub
Top comments (0)