The story behind Pedal Diary

I built this for Charlie.

Pedal Diary is a private cycling adventure diary, built by a single UK indie developer for his 9-year-old son. Every feature in the app traces back to a real conversation with him — his wishlist on day one, his bedtime ideas, his bug reports, his test sessions. This is the full story.

Download on the App Store

1 · The bike, and the missing app

I got Charlie a new bike, and then I couldn't find an app to go with it.

Charlie is 9. I got him a new bike recently and thought it would be cool for him to log his journeys and see how far he was riding. So I went looking for a cycling app to put on his iPhone.

Every one I tried wanted an account. Several were full of adverts. A lot of them were leaderboards-against-strangers dressed up as fitness trackers. And several wouldn't even let him join because of his age. None of them were the thing I wanted to give him.

So one evening I sat down with him and asked what he'd want if I built him one instead.

2 · Charlie's wishlist

Seven things, in his own words.

His list, almost verbatim:

  • Earn badges.
  • Track his speed.
  • Track how far he's gone.
  • Be fun.
  • Take pictures during the ride.
  • Record who he rode with.
  • Be able to race whoever he's riding with.

I thought about it for a while, decided it was doable, and got to work. Every one of those seven items is in the live app today.

3 · Five months of nights and weekends

Built natively, with no third-party libraries.

This is my first ever iOS app. I built it entirely with Apple frameworks — SwiftUI with Liquid Glass surfaces throughout, SwiftData with a private CloudKit database for sync, MapKit for the route, WeatherKit for the local forecast, Core Location for the trail, and MultipeerConnectivity for the optional ride-buddy pairing. No third-party SDKs. No analytics. No advertising frameworks.

"Be fun" became hyperspeed sounds and graphics that fire on personal-speed milestones, so the app actually does something delightful when you go faster than you've ever gone before. Badges came in for speed, distance, incline and ride milestones, all surfaced in a Hall of Fame that celebrates the rider's own progress with no comparison to anyone else.

4 · Bedtime

"Stop bad words from being added."

One night, in the classic 9-year-old way of trying to put off actually going to sleep, Charlie added one more item to the wishlist. He looked up from his pillow and said:

"Stop bad words from being added."

That was the entire brief. I have no idea why it was on his mind, but I thought it was a pretty cool addition. The next day I built an on-device profanity filter that checks every nickname, every diary entry and every custom-badge name before it's saved. Nothing ever leaves the device to be checked.

5 · The first proper ride

A bug report from a 9-year-old.

After his first proper ride with an early version of the app, Charlie came back with the best bug report I've ever had. He said:

"Dad, when the phone is locked it doesn't track the speed or distance properly."

He was right. The location background mode and the metrics calculator weren't playing nicely together. I fixed it. Pedal Diary now records cleanly through a locked screen — phone in a backpack, no fuss.

It's the bug report I'm proudest of having received. It was specific, accurate, and entirely unprompted.

6 · Themes

"I want the background to match whoever's using it."

Charlie wanted the app to feel different depending on who was riding. So I built seven illustrated themes, each with continuous motion that respects Reduce Motion:

  • Sky, with drifting clouds.
  • Sunset, with a warm light gradient.
  • Forest, with falling leaves.
  • Underwater, with rising bubbles.
  • Dinosaur, with a bobbing lizard.
  • Space, with twinkling stars.
  • Racing Track, for the speed-hunters.

Riders can also choose their own photo as a background if none of the seven built-in options feel quite right. This idea came from Charlie, who wanted to use a photo of his little brother as his background — and, like much of the app, it was added because Charlie thought it would make the app more fun.

7 · The Fortnite mistake

One sentence I shouldn't have used.

About halfway through the build, Charlie asked if I could add more badges. Then, very thoughtfully, he suggested:

"We could add it as an in-app purchase."

I told him the app would be free forever, and to explain why I described what I'd seen in the other cycling apps when I went looking: they were like a Fortnite leaderboard, with everyone racing against everyone else, and a lot of them wouldn't even let him join because of his age.

Telling a 9-year-old about a Fortnite leaderboard was a mistake. He loved the sound of it.

The happy middle was the ride-buddy feature. When two phones running Pedal Diary pair for a ride over encrypted Bluetooth and local Wi-Fi — no internet, no central server, not linked to anyone's Apple ID — each one sees the other's badges and speed live during the shared ride. Just the two of you. No strangers. No leaderboards.

8 · And Charlie is still the tester

Every meaningful change goes past a 9-year-old first.

Every meaningful change in Pedal Diary has been vetted by Charlie. He's still the only person whose opinion on the app counts before App Review's. If something looks weird to him, it doesn't go in. If something feels boring to him, it gets rethought.

He loved the ride-buddy feature when I finished it. He's been waiting for the "add your brother to rides" feature ever since. And that's roughly how we ended up here.

The privacy promise, in one paragraph

I didn't want my son's data shared with anyone.

So I built an app with nowhere for it to be shared to. Pedal Diary has no servers. No analytics SDKs. No advertising frameworks. No third-party trackers. Rides sync only to the user's own private iCloud — which only they can see — and the app works offline if iCloud is unavailable.

Read the full Privacy Policy

Available on the App Store

Pedal Diary is made for iPhone and iPad.

Designed for iOS and iPadOS 26 or later. Free, with no in-app purchases — at Charlie's gentle suggestion and my gentle refusal.

Download on the App Store