Web app
Ironlog
The powerlifting tracker I use for my own training. No account, and nothing leaves your browser.

What it does
- Log a session set by set. RPE or percentage intensity, per-set gear, readiness meters and session timing, from a 47-lift exercise library.
- Know which plates go on the bar. The plate loader draws the barbell and solves the plates per side, with bar and collar options. The plate icon on any logged set sends that weight straight to it.
- Track food against your targets. Calories and macros against daily targets from a 92-food pantry plus your own foods, with water and bodyweight.
- Training and food on one calendar. The month view can overlay each day's calories, macros and bodyweight on top of the training grid.
- Switch kg and lb freely. Weights are stored in kilograms and converted for display, so changing units never rewrites your history.
- Your old data comes along. On first load it offers to import data from the older single-file version, and it never deletes the original.
How it was built
It began on 11 June 2026 as a single 424 KB HTML file holding a minified React bundle. In August I rebuilt it as a Vite, React and TypeScript project, one tab at a time, with the old build kept as the reference for how everything should behave.
Decisions that mattered
- Kilograms underneath. Weights are stored in kilograms and converted for display, so switching units never rewrites your history.
- Never lose the old data. On first load it offers to import data from the original build, reports how many days and sets came across, names any exercise it couldn't match and never deletes the original.
- Parity you can check. Every class in the original stylesheet was diffed against the new code. 17 are unused, and all 17 were already dead in the original.
- Say so when saving fails. If the browser refuses to store data, in private mode or with full storage, a banner says so instead of failing silently.
How it's tested
Unit tests cover the plate solver and the food maths, and every build runs the TypeScript typecheck first.
Where it stands
In use for my own training. The workout, plates and food tabs are all rebuilt.
Made with
- React
- TypeScript
- Vite
- localStorage
Latest changes
Full commit log-
Oct 16, 2026
- Serve Ironlog from ironlog.thebarbellengineer.com
-
Oct 15, 2026
- Publish the current build: fixes from the joint Claude and Luna review
- Report the carbs imported cans lose
- Mark the review fixes ready to ship
- Offer the import when exercise edits are all an old install has
- and 11 more
-
Sep 24, 2026
- Add MIT license