Fitbod's job is planning: from your goal, equipment, schedule and recent lifting it proposes today's exercises, sets and weights. For one person that is a rule-based generator over a free exercise list (muscle recovery, weekly volume, progression) plus a fast logging screen, and an agent can build it as an offline web app in a weekend. The gaps are where a gym session happens: a phone app that stays quick, watch and health-platform sync, demonstration videos for each lift and tuning that only your own months of use will provide.
Before you buildThere is no free plan, only a 7-day trial. If you already program your own lifts, Liftosaur or wger track them for free.
Build me a workout planner that adapts to my training history, to replace Fitbod. Requirements: - A mobile-first installable web app: Vite + React + TypeScript with `vite-plugin-pwa`, working offline after the first load. `npm run build` writes a static ./dist/ that I can host anywhere. - Exercise data: bundle `free-exercise-db` (yuhonas, Unlicense) as JSON and use only strength exercises with their muscles, equipment, level and instructions. - Storage: IndexedDB through Dexie on the device: profile (goal strength or hypertrophy, days per week, minutes per session, equipment owned, plate step), workouts, sets (exercise, weight, reps, RPE, time) and notes. No server. Export and import everything as one JSON file, and the sets as CSV. - Generator, a pure TypeScript module with vitest tests: score muscle groups by days since last trained and by 7-day volume, skip any trained within 48 hours, pick 5 to 7 exercises that fit my equipment (compound lifts first, penalise the last 2 sessions' exercises), and give 3 to 4 sets at 5 to 8 reps for strength or 8 to 12 for hypertrophy. - Progression: next weight is the last working weight plus 2.5%, rounded to the plate step, when every set reached the top of the range at RPE 9 or lower; the same weight otherwise; 5% lower after two failed sessions. Show the reason in one line. - Workout screen: large tap targets, per-set weight and reps prefilled from the suggestion, a rest timer using the Wake Lock API, swap (next best match for the same muscle) and skip. - History: estimated 1RM per exercise (Epley) as a chart, weekly sets per muscle, a calendar of sessions (recharts). - Single user. No accounts, no telemetry, local-first; the app makes no network calls after loading. - Out of scope: watch apps, Apple Health, video demos, cloud sync, nutrition, social features. - README: that iOS can evict browser storage after weeks of non-use, so export a backup monthly, and how to host on Cloudflare Pages.
Opens your agent with the prompt filled in, you press enter. Or copy it and paste it into an empty folder.
The first prompt builds the core. Run these one at a time in the same folder to grow it into your own Fitbod.
Add deload logic to the workout planner in this folder. Requirements: - After 4 weeks of progression, or when 3 sessions in a row show falling estimated 1RM on the main lifts, propose a deload week at 60% volume and 90% of the last weights. - Show the proposal on the home screen with Accept and Not now; remember Not now for a week. - Mark deload sessions in history and keep them out of the progression calculation. - Add vitest tests. Update the README.
Extend the workout screen of the planner in this folder. Requirements: - Per barbell exercise show the plates per side from my plate inventory (settings: bar weight, plates available) for the working weight. - Generate warm-up sets at 40%, 60% and 80% of the working weight, rounded to loadable weights, and let me hide them. - Warm-ups never count toward volume or progression. - Add vitest tests. Update the README.
Add a CSV import to the planner in this folder. Requirements: - Accept a CSV with date, exercise, weight, reps and optional RPE columns; let me map the columns in a preview step. - Match exercise names to the bundled dataset with fuzzy matching and list unmatched names so I can map them by hand. - Skip duplicates already in the database and show how many sets were added. - Update the README.
Programming is the tedious part of lifting, and people pay so that opening the app gives them today's session with weights already filled in. It also adapts to what they actually logged and what they skipped, and does it on a phone in the gym.
Estimate · Static hosting is free and the app keeps its data on your phone. The build is token usage on your agent plan.
| Plan | Monthly | Annual, per month | What you get |
|---|---|---|---|
| Monthly | $15.99 | — | Full access: generated workouts, logging, progress tracking and the exercise library. |
| Yearly | — | $8 | Same access as monthly. |
No free plan. A 7-day free trial rolls into a paid subscription unless you cancel before it ends.
Kinda. The core is a weekend build with the prompt on this page, but real gaps remain: Native iOS and Android apps, and their Apple Watch and Fitbit support, Video demonstrations and form tips for each exercise.
About $15.99 a month on the Monthly plan, $191.88 a year (checked 2026-10-19).
Native iOS and Android apps, and their Apple Watch and Fitbit support; Video demonstrations and form tips for each exercise; Sync with Apple Health, Health Connect, Strava and similar apps; Cloud backup and the same history on several devices; Years of the vendor's tuning of its recommendation algorithm. If any of those matter to you, keep paying.
Yes: wger (open source), Liftosaur (open source), openGym (open source).