A ledger, not a game.
A workout-logging app for serious lifters, built for iPhone. I made the whole thing on my own: the idea, the brand, the design, and the app itself.
What it is
You log a set in two taps, including how many reps you had left in the tank (that's RIR). Then the app tells you the thing most won't: are you actually getting stronger, or just turning up? It keeps the whole record, for good.
Why it's different
Most logging apps try to keep you hooked with streaks, badges and a feed. Notch has none of that. My thinking was simple. A serious lifter already knows if they showed up. What they want is proof they're improving. So the app skips the dopamine and just does the maths.
Who it's for
People who already lift seriously and track it, and are tired of apps treating them like beginners. It's not built for day-one gym-goers or the smartwatch crowd. It works on your phone, and that's on purpose.
Tagline: Log it. Prove it. Keep it.
The name does a lot of the work. A ram's horn grows a ring every year it lives, and your 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 something I called Paper Terminal: warm cream paper, read like an old computer screen. Mono type, thin black lines, labels in brackets. My one rule was that colour always has to mean something, so it's never there just to look nice.
The whole app runs on one move: log a set, and see right away what it was worth. Because it knows how hard the set felt, it can tell a real personal best from a fluke.
- Effort-aware loggingTap in how many reps you had left. Now the app knows how hard it was.
- Quiet PRsPersonal bests show up 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 look like progress.
- Stall detectionTells you when a lift has stopped moving, going off the trend instead of one bad day.
- TrendsWeekly volume and your estimated max over time. The big picture.
- Kept for goodRoutines, your own exercises, a CSV export, and a backup so none of it dies with your phone.
Most apps answer one thing: did you show up? Notch answers the one that counts: did you get stronger? It takes a single logged set and turns it into a straight answer, plus a record you keep even if you delete the app.
I built Notch by vibecoding. I made the decisions, the AI wrote the code. Because I'm doing both the design and the build, there's no hand-off, and nothing gets lost in translation between the Figma and the real app. That's how one person ships a proper iPhone app. Here's what it's made of:
- SwiftUIThe design lives in the code, so the screens are the spec.
- SwiftDataSaves everything on the phone, so logging is instant and works offline.
- StoreKit 2Handles the subscription and the free trial.
- SupabaseSign-in and cloud backup, so your data follows you to a new phone.
- PostHog · EUOpt-in analytics, so I can see what's helping without being creepy about it.
- Cloudflare PagesRuns the site and waitlist at notchlift.app.
The hard part was deleting things. I built a streak counter, liked it, then killed it, because a streak is exactly the game I was trying to get away from. I cut the exercise list from 873 down to 438, keeping only the ones I'd actually program myself. A few features I was excited about got pushed to after launch. When I wasn't sure something earned its place, it didn't make it in.
- Done The full design system, a dark mode, and every feature built.
- Done Exercise list trimmed to 438. Brand, mascot and site all live.
- Now Testing on real phones and getting it ready for the App Store.
- Next Launch, then the roadmap of things I cut to get there.



