Why I Built My Own Fitness App
Part 1 of "Zero to the App Store in 7 Days"
The modern fitness app landscape is fragmented. As a runner and cyclist, I found myself juggling five different apps to do what should be one job: understand my training.
- Strava for the social feed and kudos
- A training plan app for structured running programmes
- Garmin Connect for raw data from my watch
- A paid app for strength routines at home
- YouTube for stretching tutorials
Each one doing a fraction of what I needed. None of them talking to each other. And if I wanted everything? Strava Premium alone is almost €10 a month. Add a decent training plan subscription, a strength app, and you are easily looking at €20-30 a month, across four different interfaces, for a fragmented view of your own body.
That felt insane.
The problem no one solves
Each app does its one thing reasonably well, but the gaps between them are enormous.
Strava:
- Great social layer. You finish a run, your friends give you kudos, you feel good.
- But the moment you want to actually analyse your training? Paywall.
- And behind that paywall, the analytics are... fine. Not revelatory.
Garmin Connect:
- Where the real data lives. Heart rate zones, VO2 max estimates, training load.
- The watch itself is an incredible piece of hardware.
- But the app? I once spent four minutes trying to find a specific run from two weeks ago.
- The interface feels like it was designed by the same engineers who built the sensors: technically precise and completely hostile to navigation.
- The route planner is good though. Credit where it is due.
Nike Running:
- Came closest to what I wanted. Clean interface, genuinely good data visualisation.
- Holds my entire running history from before I owned a watch.
- But it is yet another app. And what happens if Nike decides to shut it down? Years of data, gone overnight.
- When the Garmin-Nike sync broke temporarily, I lost that window into my own history. A preview of what could go wrong.
Strength and stretching:
- A mix of paid apps and free YouTube videos. Fitness Frankenstein.
The thought kept nagging:
Why does no single app do all of this?

The constraint that changed everything
I am not an engineer. My background is in finance and economics. I have done data analysis. I am fairly handy with SQL. But I have never deployed anything. Never configured a server. Never shipped a product.
By every reasonable measure, "build your own fitness app" should have been a fantasy that died in the shower.
Two things made it real.
The first was Claude Code. Anthropic's AI coding tool had been making waves at work. I watched engineers around me go absolutely mad over it: shipping in hours what used to take days. And I thought: if they are moving that fast with engineering backgrounds, what could I do with zero experience but strong product instincts? What if I treated it as a collaboration: I make every product decision, Claude writes 90% of the code, we move fast and see what happens?
The second was a budget constraint that turned into a design principle. The entire app had to run for less than two euros a month. No venture capital, no free-tier cloud traps, no subscription to a platform that could change its pricing overnight.
That constraint forced clarity:
- No Docker. No Kubernetes. No microservices.
- No TypeScript. No state management library. No ORM.
- Just a React frontend, a Node.js backend, an SQLite database, and a €4/month server in Helsinki.
Simple enough that one person with an AI co-pilot could understand every moving part.
What I wanted to build
Not a Strava competitor. Not a Garmin replacement. A personal training cockpit that pulls data from wherever it already exists and makes it useful.
The feature list, scribbled in a notebook before I ever opened a terminal:
- A dashboard that shows today's training at a glance
- A coach that builds weekly plans based on real sports science, not generic templates
- Every activity I have ever recorded, searchable and well-visualised
- A world map showing every road I have ever run on the planet
- Strength routines with a proper interval timer
- Route recommendations and personal records that actually work
All of it pulling data from Strava and Apple Health, with Garmin direct integration planned. No manual entry unless you want to.
The pricing philosophy: the coach is free. That is the hook. It is genuinely useful and costs nothing to run because it is pure maths, no AI API calls. Premium features will come later, but the core product, the thing that replaces those five apps, will always be free.
Seven days
I opened a terminal for the first time on March 24, 2026. I had never used Git, never configured a server, never seen a React component.
Seven days later, on March 31, I submitted to the Apple App Store.
Two days after that, Apple approved it.

By April 7, Pacenotes was live on the App Store with:
- Strava sync via OAuth and real-time webhooks
- Apple Health integration with background delivery: activities sync without opening the app
- Push notifications hitting lock screen, background, and foreground
- A training coach powered by Jack Daniels' VDOT methodology, audited across 600 scenarios
- GPS activity recording with live map tracking and crash recovery
- Sign in with Apple and Google, one-tap authentication
- Territory maps showing every road I have ever run, in satellite view
- Multi-user support with full data isolation
Total infrastructure cost: €3.85 a month.
It was not smooth. There were bugs that nearly broke me, architectural decisions I got wrong and had to redo, and one evening where I accidentally locked myself out of my own server entirely. I lost a 10km run through a Parisian park to a bug I fixed the same day but could never recover the data from.
But it worked. And it kept working.
What comes next
This is the first article in a five-part series about building Pacenotes. Over the next two weeks:
- Part 2: How do you pick a technology stack when you do not know what a technology stack is?
- Part 3: The bugs. The real ones. The ones that cost hours and taught principles I will never forget.
- Part 4: The Apple App Store process. Submission blockers, rejection notes, and the details nobody warns you about.
- Part 5: Where Pacenotes is today, what is coming next, and why I am building the whole thing in public.
If you are a runner or cyclist tired of paying multiple subscriptions to understand your own training, Pacenotes might be what you have been looking for.
If you are someone who has never written code but has an idea that will not leave you alone, this series is proof that the barrier is lower than you think.
🦬
Pacenotes is free and available on the App Store. Follow the journey on LinkedIn.