Kume: a real-time cycling app that works with no signal
Kume was built with one clear goal: riding the Camino del Cid, 553 km over 7 stages, as a group and without getting lost. Today it's used for training and group rides. It's my own product, designed and built end to end for iOS and Android, with a website to follow the group live.
- My role
- My own product: design and full development
- Platforms
- iOS, Android and web
- Stack
- React Native, Expo, TypeScript, Supabase, Mapbox
- Tested on
- Camino del Cid, 553 km



- 31configurable metrics on custom data screens
- 215ramps and climbs pre-calculated, with voice alerts
- 556towns indexed for detours with no signal
- 8integrations: Mapbox, Supabase, Strava, Bluetooth sensors…
The challenge
Real-time GPS tracking in the background, with the battery drain and patchy coverage of a route through inland Spain, while showing the group where every rider is. And, before setting off, knowing whether the training you've done is enough for each stage.
What I built
- Navigation with Mapbox, turn-by-turn voice directions, off-route detection and rerouting that rejoins the route further ahead instead of making you turn back.
- Climb alerts at three levels, triggered at different distances so there's time to change chainring, and an interactive stage profile.
- Predicted time, speed, heart rate and calories based on your own rides, and a simulator that runs through a whole stage at 100x.
- Real-time group mode: the app works out the shape of the group (off the front, pulling, dropped…) and calls it out by voice, with alerts and rankings.
- Detours to nearby villages for water or food, calculated even with no signal, and Bluetooth heart rate, power and cadence sensors.
- A 16-week training plan with readiness against the target stages, GPX export and uploads to Strava as .FIT files generated on the phone itself.
- A Next.js website so family and friends can follow the group live.
Built for riding


Each rider chooses which data to see and how big, with different setups for the flat, the climbs and the final stretch. Everything is designed to be read at a glance, with the phone on the handlebars.
Technical decisions
Event-driven positions
With the screen off, Android froze timers and the group lost sight of a rider for minutes. Now every GPS sample publishes the position, with a heartbeat every 30 s to tell stopped from disconnected.
The database is the source of truth
If the system suspends the app, the in-memory distance counter falls behind. At the end of the ride, the distance is rebuilt from the points stored on the phone.
Battery and hysteresis
The app lowers the GPS rate on its own when the battery drops below 50, 30 and 15%, and only switches screens on a climb if the gradient holds for 15 seconds, so a bump in the road doesn't make it flicker.