Open-source · yours to keep · self-hosted

Your lifts. Your data. Your rules.

An open-source barbell log you actually own. Reshape the 5×5 and Madcow engines — or write your own — keep every rep on your device, and export it anytime. Not at the mercy of Google, Apple, or someone else's product roadmap.

Rampset home screen showing the next workout
You own it
MIT-licensed, self-hosted. Your data lives on your device and your own cloud — export it all to CSV whenever.
Editable to the core
Tweak any program, rewrite the progression engines, or build your own. Every set, rep, and rule is yours to change.
No lock-in, ever
No subscription, no account to lose, no sunset. It can't be taken away or quietly enshittified out from under you.
Real training, built in
Guided 5×5 and Madcow with auto weight jumps, deloads, plate math, warm-up ramps, and PR tracking — offline.
Three ways to train

Run a proven program, or do your own thing.

StrongLifts 5×5

Guided linear progression

The classic beginner program. Squat every session, alternating Workout A/B, +2.5 kg every time you hit all your reps, and an automatic deload when you stall.

  • Tap-cycle plate circles + per-side plate math
  • Warm-up ramps and empty-bar sets built in
  • Variants: Plus, Lite, Mini, Ultra, Ultra Max
Madcow 5×5

Weekly ramp, for intermediates

Where you go when linear stalls. Sets ramp to a top each day, a Friday PR set sets next week's weight, with heavy / light / intensity days and back-off volume.

  • Prescribed ramp checklist, top set called out
  • Progresses weekly, not every workout
  • One shared top per lift across the week
Freeform routine

Strong-style, your rules

For everything else. Set rows — weight × reps — with every set prefilled from last time. Timed holds and bodyweight sets, per-exercise rest. Nothing is prescribed; you drive.

  • Accessory, glute, mobility — any split you invent
  • Add exercises and sets on the fly
  • Remembers what you did last time
Program workout with tap-cycle plate circles
Program mode

Tap a plate. Set logged.

Each set is a plate you cycle with a tap — full reps, missed reps, skipped. The bar’s working weight, warm-up ramp, and per-side plate math are already worked out. You confirm; the app tracks.

  • Automatic +weight on success, deload after repeated fails
  • Warm-up ramps and empty-bar sets built in
  • Rest timer with a bell — counts through your set
Madcow intensity day ramp checklist with a highlighted top set
The ramp

Ramped sets, done right.

Madcow and heavy days climb to a top set, then a PR set and a back-off — prescribed, checked off one tap at a time, with the top set called out. The name isn’t decoration: ramping is how the engine progresses you.

  • Heavy / light / intensity days, each with its own scheme
  • The Friday PR sets next week’s top automatically
  • Freeform routine mode too — every set prefilled from last time
Progress screen with e1RM, volume, and personal-record stars
Progress

See the line go up.

Estimated 1RM, top set, volume and total reps per lift — with a gold star the moment you beat an all-time best. Tap any lift for the full picture; the history calendar shows every session at a glance.

  • Personal records detected and marked, in Progress and History
  • Body-weight trend tracked alongside the lifts
  • Import your existing StrongLifts or Strong export via CSV
Self-host

Run your own in ~10 minutes.

Rampset deploys to Cloudflare’s free tier — Workers to serve the app, Cloudflare Access (also free) to put a login in front. No servers, no monthly bill for a household.

  1. Fork & clone the repo, then npm install.
  2. Add your lifters. Copy .env.example → .env.local and set names, units, and starting weights. No personal data lives in the repo.
  3. Deploy to Cloudflare Workers. One command via the OpenNext adapter. Free tier is plenty for a few users.
  4. Put Cloudflare Access in front. A free zero-trust login (email code or Google, free up to 50 users) so only your people get in — that’s your auth, no passwords to manage. Each profile is keyed to the signed-in email.
  5. Cloud backups (optional). Bind an R2 bucket as BACKUPS. Backups sit inside R2’s 10 GB free tier, though enabling R2 needs a card on file (still $0 under the limits). Rather not? Skip it — the app is fully offline on local storage, and Settings → Export gives you a CSV backup anytime.
Rampset in its light skin
Profiles

Share it with the whole household.

Add a profile for your partner, your kids, whoever trains with you — each with their own programs, history, and look (OLED black or clean light). Every profile is keyed to a Cloudflare Access email, so people land on their own automatically; on a shared home-screen install, switch between them with a tap.