NiravProof of work
← All projects

Side Projects

Case 09 / 10

Progressive overload needs a memory

A training log built around one question — what did I lift last time, and can I beat it today?

Personal · 2026 · Designer, builder, and only user

  • Progressive overload only works if you know what you did last session.
  • Across five workout days and dozens of exercises, memory does not cut it.
  • Log weight, reps, and perceived difficulty per set. See the trend per exercise.
  • The difficulty rating is what tells me whether to add weight or add reps.
~40 exercises tracked with weight, reps, and difficulty per set
  • Glide
  • Structured logging
  • Charting

Log a set, watch the trend

Interactive — synthetic data

Pick a day and an exercise, log a set, and watch the chart and suggestion update.

8/108/148/188/228/268/309/39/7
  • Weight per set
  • Reps
  • Difficulty
Weight
Reps
Difficulty
Planned feature — not shipped yet

Next session: Add weight. Last session was rated "Easy" — there was clearly more in the tank.

How it fits together

  1. 1Workout day
  2. 2Exercise
  3. 3Set-level entry
  4. 4Weight, reps, difficulty
  5. 5Per-exercise history
  6. 6Progression trend
Read the full case study Hide the case study

The problem

I train before work, five or six days a week, and the entire method is progressive overload: do slightly more than last time. That only works if you know what last time was.

Across five workout days and roughly forty exercises, I did not. I was reconstructing it in the gym from memory — usually wrongly, and usually conservatively, which is the expensive direction to be wrong in.

Why it mattered

Training is time I have already spent. Getting up at five and then doing the same weight I did three weeks ago is the same hour with a fraction of the return. The tracking was the difference between training and merely exercising.

What I built

A log organised the way I actually train: workout day, then exercise, then individual sets. Each set records weight, reps, and a perceived difficulty rating. Per-exercise views chart weight and reps across sessions, so I can see whether a lift is moving.

The difficulty rating was the addition that made it useful. Weight and reps tell you what happened; they do not tell you whether there was more in the tank. Three sets of ten at the same weight can be a comfortable session or a limit session, and only one of those means load should go up next week.

What I learned

Logging weight and reps alone was not enough to make the next decision. Three sets at the same weight can be an easy session or a brutal one, and only one of those means I should add load. Adding a perceived-difficulty rating per set turned the log from a record of what happened into an input for what to do next.

What I would do next

Automatic next-session suggestions from the last entry and its difficulty rating, rather than me reading the chart and deciding. Volume per muscle group per week, since that is the number that actually governs whether a split is working. And a faster logging path — mid-set, on a phone, is a demanding interface problem.