A free, single-file web app that turns your current weight and goal weight into a complete cut or lean-bulk plan — then helps you prove it's working, week by week.
▶ Use it now: https://nord342.github.io/fitness-planner/
No account, no sign-up, no install. It runs entirely in your browser and your data never leaves your device.
- Works out your maintenance calories from your details (Mifflin–St Jeor BMR × activity level).
- Builds your plan. Enter a lower goal weight and it designs a cut; enter a higher one and it designs a lean bulk — with daily calories, protein/fat/carb targets, how many weeks it will take, and your finish date.
- Draws your weekly weight target curve, so you always know what the scale should say this week.
- Tracks your weigh-ins on an actual-vs-plan chart, so you can see at a glance whether you're on track, ahead, or behind.
- Logs your gym sessions and automatically compares every exercise to the last time you did it (↑ / = / ↓).
- Charts your strength progress for any exercise — estimated 1-rep-max, top weight, or total session volume.
- Gives you a week-by-week dashboard: plan vs actual weight, weekly change, sessions done, training volume, and how many lifts went up.
It also flags unsafe settings — deficits that are too aggressive, calories below your BMR, or bulking too fast.
- Open the live link above, or download
index.htmland double-click it (works fully offline). - Fill in section 1 (sex, age, height, current & target weight, activity, pace) and press Calculate my plan.
- Each week, enter your weigh-in and log your workouts. The charts and dashboard update themselves.
- Use Export data to save a backup file, and Import data to restore it on another device or browser.
| Thing | Method |
|---|---|
| Maintenance calories | Mifflin–St Jeor BMR × activity multiplier |
| Cut / bulk size | your chosen pace in kg/week × 7,700 kcal per kg of body weight, spread over 7 days |
| Protein | 2.2 g/kg of goal weight (cut) or 2.0 g/kg of current weight (bulk) |
| Fat | ~0.9 g/kg (with a sensible floor for hormones) |
| Carbs | whatever calories remain |
| Timeline | weight to move ÷ your weekly pace |
| Strength trend | estimated 1RM via the Epley formula: weight × (1 + reps ÷ 30) |
These are well-established estimates, not medical advice — after a few weeks, trust your actual results over the prediction and adjust.
Everything you enter is stored only in your own browser (via localStorage). Nothing is uploaded, tracked, or shared. Clearing your browser data or using private/incognito mode will remove it — use Export data first if you want to keep it.
One HTML file. No build step, no dependencies, no frameworks, no network calls. Charts are hand-drawn SVG; the whole app is plain HTML, CSS and vanilla JavaScript. Works in any modern browser, light or dark mode, desktop or mobile.
# just open it
open index.html # macOS
# or serve it
python3 -m http.server 8000 # then visit http://localhost:8000All the logic lives in the single <script> block at the bottom of index.html.
MIT — free to use, share, fork and modify.