The open-source running tracker, teacher, and challenge platform — built in Kenya, for the world.
# Mwendo
**The open-source running tracker, teacher, and challenge platform — built in Kenya, for the world.**
*Measure every step. Learn the craft of running. Celebrate East African heritage. All without a black-box AI coach — just your own effort, knowledge, and community.*
---
## Table of Contents
- Why Mwendo?
- Features
- Architecture
- Project Structure
- Getting Started
- Development Notes
- Licensing
- Roadmap & Status
- Contributing
- Acknowledgements
---
## Why Mwendo?
Most running apps lock your data behind proprietary clouds, demand a fast connection, and bury the
sport's rich heritage under gamified noise. **Mwendo** takes the opposite stance:
- **Privacy-first** — your runs are recorded and stored on your device. Cloud sync is opt-in.
- **Offline-first** — full tracking, education, and challenges work without a signal. Note: Maps currently require an internet connection.
- **Open by default** — every line of code, map, and lesson is released under an open licence.
- **Built for real conditions** — designed for low-end devices and intermittent connectivity,
with a deep respect for East African running culture.
Mwendo is more than a tracker. It is a companion that teaches the science of running, connects you
to the legends who shaped the sport, and motivates you through challenges, streaks, and friendly
leaderboards.
---
## Features
### Track every run
- **Native GPS engine** — a custom Flutter plugin (Kotlin on Android, Swift on iOS, Dart FFI bridge) keeps
recording through a foreground service / background location session, so a run survives a locked
screen or a backgrounded app.
- **Live dashboard** — distance, elapsed time, current & average pace, speed,
elevation gain, and calories update in real time.
- **Smart Time Tracking** — distinguishes between total elapsed time and actual moving time, seamlessly pausing the running pace calculation when you are stationary.
- **Live map** — a breadcrumb trail and current-location marker …