Founder product / lifting logbook
Set the Bar High
A private lifting logbook for iPhone and Apple Watch: fast set entry, last session's numbers already filled in, clean exports, and no account.
The situation
What the project needed.
Most workout apps want to coach you, follow you, or rent your own history back to you. A lot of lifters just want to write down what they did and see what they did last time. Notes and spreadsheets give you that control, but they are clumsy with chalk on your hands between sets.
Bar High is the notebook version of a gym app. Start a routine and last session's weights and reps are already there; confirm a set with one tap and keep moving. There is no account to create, your workouts stay on your device, logging works without a connection, and everything exports to Markdown or JSON whenever you want it.
The work
What I shipped.
- Workout logging built for the gym floor: last session's numbers as ghost values, one-tap set completion, warmup and working sets, and autosave that survives the app being closed mid-workout.
- An Apple Watch companion to log sets, follow rest, and see live heart rate and energy, while the iPhone app works fully without a watch.
- Training Spaces for home, hotel, or commercial gyms, with substitutions ranked by muscle overlap. You always choose; the app never swaps an exercise behind your back.
- Markdown export with Obsidian-style links between workouts, exercises, and routines, plus versioned JSON backup and restore.
- A rest timer that learns how long you actually rest and never makes a sound, and progression suggestions you apply yourself.
Personal contribution
Technical architecture & leadership.
- Product positioning, design, and engineering, from the first sketch to the TestFlight build.
- SwiftUI and SwiftData on iPhone, a watchOS companion, and HealthKit workout sessions.
- No subscriptions: an optional tip jar that unlocks nothing except a supporter badge.
Your product
Have a similar challenge?
Whether you are architecting a new Apple product, optimizing video/AVFoundation pipelines, or enforcing strict TDD, tell me what needs to be solved.