A logbook, built by someone who kept losing his
Bike Stories is made by 12F ApS, a two-person software company in Denmark.
Why it exists
Every bike accumulates a history: the chain you fitted in March, the wheel build that cost more than the wheel, the service where they found the cracked seatpost. That history lives in a drawer of receipts, a note on a phone, and mostly in memory — which means that when it matters, at the exact moment you are wondering whether the brake pads will survive a wet descent, you don't have it.
Bike Stories is the answer to two questions that a notebook can hold but never answer: when did I last do that, and what has this bike actually cost me. Answering the second one properly takes arithmetic across the purchase price, every part, every service and every kilometre ridden — which is exactly the kind of thing a phone is good at and a person is not.
How it's paid for
By people buying it. The app is free for up to two bikes with every logging feature included, and Bike Stories Pro is a one-time $9.99 unlock for unlimited bikes, Apple Health ride import, PDF export and automatic backups. There is no subscription, no advertising, and no arrangement with any shop, brand or insurer. Nothing you log is sold to anybody — see the privacy policy, which is written to be read rather than to be survived.
That model is the whole reason the app can be honest about your money. An app funded by referrals has an interest in you buying more parts. This one only has an interest in you finding it useful enough to unlock.
The design, and where it comes from
The app is built as a data cockpit: the number is the hero, the label is a quiet uppercase whisper above it, and data is packed densely but always ruled by a card edge or a hairline. The structure is borrowed openly from Garmin Connect — the interface serious cyclists already read — and rendered on iOS's own translucent, adaptive surfaces, so it feels native in both light and dark mode. This website uses the same tokens: the same accent blue, the same stat cells, the same fixed meanings for green, amber and red.
Colour never carries meaning alone. A part at 4% life is red and says 4%; an overdue service is red and carries a warning icon. That rule comes from the accessibility section of the app's design system, and it applies here too.
What it will never do
- Ask you to create an account.
- Show advertising, or let anyone pay for placement.
- Sell, rent or broker your data.
- Turn a feature you already rely on into a subscription.
The rest of the family
12F ApS builds small, private, single-purpose apps: Bike Stories for bikes, and sister apps for homes, events, travel and dogs. They share an approach more than a codebase — your data stays yours, the app works without an account, and the thing you bought keeps working.
Get in touch
Bug reports, feature requests, and "you got this wrong about chains" corrections are all welcome: 12f.dk. If you like the app, an App Store rating genuinely helps a small app more than anything else we could do.
Bike Stories is not affiliated with Garmin, Strava, Shimano, or any of the brands whose parts you might log in it.