Strength, kept honest.
A workout log for serious lifters, built for iPhone. I made all of it: the idea, the brand, the design system, and the product decisions behind every screen.
What it is
You log a set in two taps, including how many reps you had left in the tank (that's RIR). The app then answers the question that matters: are you getting stronger? And it keeps the whole record, for good.
Why it's different
Most logging apps chase engagement with streaks, badges and a feed. Notch skips all of it. A serious lifter already knows whether they showed up. What they need is proof they're improving, so the app does the maths and stays out of the way.
Who it's for
People who already lift seriously and track their training. They've outgrown apps that treat every user like a beginner, and they want a record that still means something in five years.
Tagline: Log it. Prove it. Keep it.
Before anything was designed, I sat down with four serious lifters. The same answers kept coming back: they already track their training, they judge how hard a set was by the reps left in the tank, and every app they'd tried buried that under gamification. One ask kept surfacing, too. They wanted to watch their strength hold, or slip, through a cut. That locked the core: RIR at the centre of logging, and strength over time shown honestly.
Once early users were in a private beta, a feature-prioritisation survey decided what got built next. The winners became the app's progress views, which read training from several angles: strength trend per lift, personal records, and muscle-group balance over time.
The name does a lot of the work. A ram's horn grows a ring for every year it lives, and training is the same: every session is one more notch. So the mascot is a ram (I call him The Keeper) and the logo is a notched horn. The look is a system I call Dark Ledger: warm near-black, monospace numerals, clean prose, depth from soft frames over a faint ruled background. One rule holds it together: colour always has to mean something.
The whole app runs on one move: log a set, see what it was worth. Because it knows how hard each set felt, it can tell a real personal best from a lucky day.
- Effort-aware loggingTap in how many reps you had left. Now the app knows how hard the set was.
- Quiet PRsPersonal bests appear calmly, by rep range. No confetti.
- Honest max estimateYour estimated max over time, adjusted for how hard each set felt, so an easy day doesn't read as progress.
- Stall detectionFlags a lift that has stopped moving, based on the trend rather than one bad day.
- Progress viewsStrength trend per lift, personal records, weekly volume and muscle-group balance. The big picture.
- Kept for goodRoutines, custom exercises, CSV export and cloud backup, so the record outlives the phone.
I designed everything and directed AI dev tools (Claude Code, Cursor) through the build. The design lives in the code, so there's no hand-off where details die between a Figma file and the real app.
- SwiftUIThe screens are the spec. Design and implementation are the same file.
- SwiftDataEverything saves on the phone, so logging is instant and works offline.
- SupabaseSign-in and cloud backup, so the record follows you to a new phone.
- StoreKit 2The subscription and the free trial.
The hard part was deleting. I built a streak counter, liked it, and killed it, because a streak is the exact game Notch is trying to end. The exercise library went from 873 to 438, keeping the lifts a serious program actually uses. Features I was excited about moved to after launch. Anything that couldn't justify its place didn't get one.
- Done The Dark Ledger design system and every screen and feature of the app, built and working.
- Done Brand, mascot, and the waitlist site live at notchlift.app.
- Done A full QA pass: green test suite, a backend security review, a class of edge-case crashes designed out.
- Now Private beta with real lifters, and the last pre-launch fixes.
- Next App Store submission and the 2026 launch, then the roadmap of things that got cut to get there.



