Forge is a self-hosted tracker for weight training — live logging with ghosts and rest timers, a progression engine with written-down rules, and charts computed from documented formulas. One container, one SQLite file, zero cloud.
No cardio, by design.

The actual app, mid-session. Not a render.
What ships
Ghost sets you tap to accept, warm-up ramps off the working weight, RPE when you want it. Sets queue offline and sync when the gym wifi gives up.
offline-firstDouble progression on rep targets; three stalled sessions suggest the deload. Documented, not vibes.
rules in docs5/3/1 and linear-block schemes with training maxes — one tap starts the prefilled session.
periodizationRest fires after the group, not between partners. The timer survives reloads and rings your lock screen.
https pushFront/back anatomy on all 278 movements and your custom ones; equipment glyphs keep the picker scannable at 22:00.
278 movementsStrong & Hevy import, JSON export, REST API with scoped tokens, webhooks, Prometheus metrics.
never locked in
Form & fatigue — the lifting version of a performance-management chart. Recovery sweet spot, strength standards, detraining half-life, push/pull balance. All deterministic math on your own sets — no AI, no cloud, and if a chart is hidden it's because your data can't support it yet.
Every formula lives on one docs page with its thresholds and reasons, and 49 tests hold the code to it.
One container, one volume. SQLite in WAL mode holds everything — back up a single directory and you own your entire training history. Nightly snapshots, OIDC single sign-on and multi-user come in the box.
Installation guide