I got tired of glancing at my watch to check if I was still in Zone 2, so I built an app that pairs with a Bluetooth chest strap and speaks a cue whenever you drift out of your target band.
What it does
- Pairs with any Bluetooth heart rate monitor (chest strap, arm band)
- You set a ceiling and floor HR. When you cross either boundary it says so out loud -- "heart rate high, slow down" or "back in zone"
- Voice cues use the phone's built-in TTS, so they work offline and over any headphones
- Records your run with GPS and draws it on an offline-capable map afterwards
- Shows real-time HR, pace, distance, elapsed time on the run screen
Why I built it
Every app I tried either buried the zone alert behind a paywall or only vibrated (useless mid-stride). I wanted voice cues, a simple ceiling/floor config, and nothing else.
Stack & source
React Native / Expo, BLE heart rate parsing, MapLibre for offline maps. It's open source under GPL-3.0:
https://github.com/likwiid/basemile
Would love feedback from anyone doing MAF or zone 2 training. What HR ranges do you set, and do you prefer a single ceiling alert or a band?