Most lifters track workouts in spreadsheets. I did too, until I got tired of squinting at tiny cells between sets and fixing formulas I'd accidentally broken. But I couldn't find an app worth using, let alone paying for, so I decided to try making my own. A bloc (short for training block) is a focused stretch of weeks built around one goal -- build muscle, build strength, peak, or recover. bloc log is built around that idea: pick a program, log your sets, and track progress across blocs.

This was my first vibe coded app. I tried to approach it like a real product: ship an MVP, hand it to friends, watch what confused them, and fix it. It went through a few rounds of that.

bloc log program detail with exercise list bloc log program detail with exercise list
/ program
bloc log workout logging with sets, reps, and RPE tracking bloc log workout logging with sets, reps, and RPE tracking
/ logging
bloc log rest timer with analog clock face bloc log rest timer with analog clock face
/ rest timer
bloc log session complete summary with volume stats bloc log session complete summary with volume stats
/ session complete
bloc log analytics dashboard with summary stats and progress chart bloc log analytics dashboard with summary stats and progress chart
/ analytics
bloc log bloc view on tablet, 12-week grid bloc log bloc view on tablet, 12-week grid
/ bloc
bloc log programs list on tablet bloc log programs list on tablet
/ programs

what it does

You pick from built-in program templates or create your own, then log sets and reps each session. There's a workout heatmap, progress charts, a rest timer, and a searchable exercise database. Sign in with email and your data syncs across devices. It's also a PWA, so you can install it on your phone and use it at the gym without signal.

Most fitness apps feel like they're yelling at you, and tracking workouts in a spreadsheet on your phone is its own kind of punishment. I wanted something quieter -- thoughtful type, restrained color, nothing gendered or aggressive. An app that stays out of your way. And yeah, a little bit of a socialist vibe for a treat.

bloc log custom program builder, step one bloc log custom program builder, step one
/ build a program
bloc log custom program with exercises filled in bloc log custom program with exercises filled in
/ exercises added
bloc log settings menu bloc log settings menu
/ settings

what I learned

I learned why so many apps have features that annoy me. Getting data input right for workouts is genuinely hard because every workout is personal, and mine turned out to be more nuanced than I expected each time I sat down to redesign something.

Vibe coding doesn't let you skip the real work, either. You still have to pick the tools, build a design system, scope in phases, and fix what you break along the way. The version that shipped is not the version in my head, and getting comfortable with that gap was its own lesson.