About openGym
openGym wasn't planned as a product. It started as a tiny app I built for one user: me.
I wanted three things at the gym: log my workouts, track my body weight, and see whether any of it was going anywhere. Every app I tried wanted a subscription, an account, or my training data on someone else's servers — usually all three. So I did the homelab thing: built a small mobile web page, put it on my own server, and started logging.
It turns out a tracker you build for yourself gets sharpened in a way products don't. Every awkward tap at the squat rack became that evening's fix. The guided workout flow, the weight pre-fills, the rest timer, the "ask my body weight before the first set" ritual — none of that came from a feature list. It came from actually standing in the gym with the thing in my hand.
Then friends wanted in. That brought passkey profiles — sign in with your fingerprint, no passwords, everyone's data separate — and sync, so the log survives any phone. Somewhere along the way the little page got rewritten into a proper React app, learned 12 languages, grew a muscle map that reads three ways — where the volume went, what is still recovering, and what each muscle is actually strong at — plus importers for FitNotes, Strong, Hevy and Apple Health, and finally became a native Android app you can install from this site.
In July 2026 I open-sourced the whole thing under the AGPL. The license is the point, not a footnote: your training data should be yours, the software that holds it should be inspectable, and nobody — including me — should be able to take a closed, paid version of it away from the community.
openGym still runs on the same homelab server it started on, and I still log every session with it. That's the quality bar: I'm the first user of every release.
Milestones
- The personal appearly summer 2026
A hand-written vanilla-JS page on my own server. One user, zero ambitions.
- v1.0.0 — open-sourcedJuly 20, 2026
Docker-Compose self-hosting, passkey profiles, guided workouts, 1,324-exercise library. AGPL from day one.
- Every release sinceongoing
See the full list on GitLab → Releases.
Principles
- Your data is yours. Local-first, one-file backups, no lock-in — leaving openGym must always be one export away.
- No telemetry, ever. If a feature needs analytics to justify itself, it doesn't ship.
- Dependency-light. The backend is one Node file with a single dependency; the frontend is React, a router and a store. Small enough to actually audit.
- Open source that stays open. AGPL-3.0, so every fork and every hosted version owes its code back to everyone.