The gym log
One HTML file, no server, no account, no automation. The thing I keep by hand, on purpose.
21 commits · first 19 Feb 2026 · last 12 Aug 2026 · 174 days · geckorello.github.io/myfitness
commits per week, counted from the repository when this page was last built

A training plan in a notes app
The plan lived in a notes app, the weights lived in my head, and both were wrong by the second week. Every fitness app wanted an account, a subscription and my heart rate. I wanted a page that opens in a second, in gym light, with big numbers and a wheel to log the weight.
This is the one system on the site with no automation in it, and it stays here as the control group. It shows what I build when nothing needs to run at night.
First commit
965ac16 19 Feb 2026
One file, one commit, an initial fitness app. Seven days of the week as tabs, the exercises of the day as cards. It has stayed one file since.
A drum wheel instead of plus and minus
c4d7925 20 Feb 2026
Plus and minus buttons for weight are the wrong tool with sweaty hands. The second day replaced them with a scroll drum from zero to two hundred kilograms in half-kilo steps. It is the one interaction I would defend against any redesign.

Twelve commits about contrast and size
cae0a82 21 Feb 2026
The third day was nothing but readability: thumbnails doubled, every small font two pixels bigger, colours pushed to maximum contrast. A gym is a bad place to read a phone. The commit log of that day is a list of things I could not see between sets.

Save, effort, duration
6d827b7 2 Mar 2026
Two weeks in: a save button, auto-close, a badge for perceived effort, and duration tracking so I know how long a session really takes rather than how long I think it takes.

The plan follows the log, not the other way round
bee9128 12 Aug 2026
In August the weight ranges written into the plan were replaced with ranges derived from what I had actually lifted. The plan stopped being an intention and became a summary. Same day: the scheme moved to two sets of six to eight, because that is what the log said I do.
The log rewrote itself while I was reading it
5c3b20a 12 Aug 2026
The weight is picked on a scrolling drum. The drum saved 150 milliseconds after it came to rest — so nudging the wheel while reading a card silently replaced the weight I had actually lifted with whatever the wheel happened to stop on.
Nothing failed and nothing was reported. Scrolling now only moves the selection, and opening a card spins the drum back to the stored value, so an unsaved change visibly reverts. A small defect, and exactly the kind that makes a record untrustworthy without ever producing an error.
What it does tonight
Nothing. It sits on a static host as one file, stores my weights in the browser, and waits for Monday. No server, no account, no telemetry, no agent. It is on this site because a log of automation needs one thing in it that is not automated.
Runs on its own
- nothing
Stays with me
- every set, every weight, every decision to skip a day
Zero. Static hosting on a free plan, no APIs, no models.

Where this goes
Nowhere in particular, and that is the point. If I ever wire an agent into it, that will be the day the control group is gone.