saddlebag: cycling preps
Oct 2026
saddlebag answers one question before a ride: will this route hurt, and where?
You give it your weight, FTP, bike and gearing, and a GPX or TCX file from any route planning app that exports one. It finds every climb and works out the watts, the gear, the time, and whether you'll make it. The route's verdict is its hardest climb, so you know before you commit.
| Grade | Means |
|---|---|
| Easy | up to your FTP |
| Steady | up to 110% of it |
| Hard | past 110%, but you'll make it |
| Too hard | you'd stall, so fit easier gears |
Beyond the climbs
- Fuel. Carbs per hour pinned to the route. It names food from your own pantry and counts bottles and refills against what your cages hold.
- Pack. A checklist by where things ride (cages, saddlebag, pockets) that says whether what you're carrying covers the ride.
- Ready check. Route, weather at your start time, food, pack and bike on one screen, for example "2 of 5 ready".
- Garage. Kilometres per part, including parts that were on the bike before you started counting, plus what's due and what you've spent.
- Share cards. The route, the climbs, FTP and W/kg, drawn on the phone.
How it's built
Two separate native apps, SwiftUI on iOS and Jetpack Compose on Android. Each has its own calculation engine, and both are checked against one shared set of test cases so they give the same numbers. Colours, type and spacing come from one design-token file that generates code for both platforms. The drawings come from one script.
The physics is a published road-cycling power model (Martin et al., 1998). Pacing pushes harder on climbs and easier on flats (Swain, 1997), and a W′ balance model finds where you'd run out above FTP (Skiba et al., 2012). Every number cites its source on the site's science page. Where no study gives a number, the page says it's Saddlebag's own estimate.
There's no account, no ads and no tracking. Routes, bikes and numbers stay on the phone. The only thing it fetches from the internet is the weather (Open-Meteo).
Where it came from
It started in June 2026 as The Pain Forecast, a Next.js web tool built around a power heatmap of cadence against grade. Saddlebag rebuilt it as a phone app that covers the whole lead-up to a ride, not just the climbs.
Coming soon to iPhone, iPad and Android, launching first in the Philippines.
Before you publish:
- Keep "draft" ticked. The landing site isn't deployed and the store listings aren't live yet. Once they are, add links to the site and the stores, then untick draft.
- "Checked against one shared set of test cases" is my reading of the fixtures/ folder (cases/, verify.ts) sitting next to both engines. Check that it's accurate before publishing.