Personalized running plans that adapt to how you actually run.
RunFlo gives runners plans that react to their real-world performance — adapting for travel, illness, and bad days rather than treating missed sessions as failures. We built the adaptive training engine, GPS tracking, and the social layer that keeps runners accountable to each other.
Most running apps either give you a static plan (ignore missed days) or shame you for deviating from it.
Most running apps either give you a static plan (ignore missed days) or shame you for deviating from it. Elite runners train with coaches who adapt in real time — but coaching costs hundreds of dollars a month. RunFlo's thesis: adaptive coaching should be democratised.
The technical challenge: a training plan that adapts well needs to understand context. Was yesterday's missed run a rest day, an illness, or a schedule conflict? The same input (missed session) requires different plan adjustments.
The product also needed class-leading GPS accuracy, offline-first operation, and social features that motivate without creating toxic comparison culture.
Coaching intelligence for every runner.
We ran structured interviews with 40 runners — from 5k beginners to ultra-marathon finishers. The universal finding: runners quit plans not because they're unfit, but because one bad week makes the plan feel unreachable. The UI had to make adaptation feel like support, not failure.
GPS tracking meets adaptive AI.
Flutter handles iOS and Android with native GPS integration and background tracking. The adaptive engine runs server-side — a rule-based planner seeded with VO2 max estimates, HRV data, and context from user check-ins. Plans are regenerated nightly and available offline by morning.
What ships in the product.
Adaptive training plans
5k to marathon plan types. Missed a run? The plan reshuffles forward — never marks days red, always moves ahead.
GPS route tracking
Sub-meter GPS accuracy with automatic pause/resume, split times, elevation, and post-run route replay.
Heart rate zones
Zone 2 vs. threshold vs. VO2 max workouts. Connects to Apple Watch, Garmin, Polar, and chest straps.
Coach check-ins
Weekly 3-question check-in (legs, energy, motivation) feeds the adaptive engine and triggers plan adjustments proactively.
Running buddy matching
Matches users running at similar paces and schedules for virtual or in-person accountability runs.
Race predictor
Estimates finish times for goal races based on recent training data. Updates weekly as fitness improves.
Offline maps
Routes are cached before runs — no signal required on trail. Syncs data when reconnected.
Injury prevention flags
Flags overtraining signals (HRV drops, pace regression, sleep-quality decline from wearable data) before injury risk peaks.
Community challenges
Monthly community events: virtual races, distance challenges, and club leaderboards. 30% of users join at least one per month.
Production-grade from week one.
We chose the boring, battle-tested options where it mattered and innovated where it gave the product a real edge.
I went from a 34-minute 5k to 26:40 in 12 weeks. The plan adapted around two weeks of travel and one week of a cold — and still got me there.
What it took.
- GPS accuracy in mixed environments. Tunnels, tall buildings, and tree cover all degrade GPS. We implemented a Kalman filter with accelerometer fusion — position errors dropped 60% in challenging environments.
- Adaptation that feels like coaching, not automation. Early users knew the plan was computer-generated and trusted it less. We added a 'coach reasoning' tooltip for each adaptation — 'You ran harder than planned on Tuesday, so we've shifted Thursday's tempo to Saturday.'
- Background GPS battery drain. Continuous GPS tracking on a 2-hour long run drains battery significantly. We built an adaptive sampling rate that increases precision during fast sections and reduces it during steady-state running — saving 28% battery with no perceptible accuracy loss.
- Wearable data normalisation. Heart rate, HRV, and sleep data come in different formats from Apple, Garmin, Polar, and Fitbit. We built a normalisation layer with quality scoring — low-confidence readings are flagged rather than silently poisoning the adaptive engine.
What changed.
A walk through the product.
Key screens, detailed.
A closer look at the core user flows built for this product.
Building something like RunFlo?
RunFlo gives runners plans that react to their real-world performance — adapting for travel, illness, and bad days rather than treating missed sessions as failures. Send us a brief and we'll scope it within 24 hours.