Milematcher - Realtime Competitive Running Platform by Armughan ShahidMilematcher - Realtime Competitive Running Platform by Armughan Shahid

Milematcher - Realtime Competitive Running Platform

Armughan Shahid

Armughan Shahid

Mile Matcher

Realtime competitive running platform that matches solo runners head-to-head and turns every race into visible progression
Mile Matcher solved a motivation problem, not a tracking problem. Running apps can record a route, but passive data alone doesn't keep people consistent. The platform reframes a solo run as an immediate challenge: runners are matched with competitors at their skill level, race in realtime from different locations, earn wins, improve their rating, unlock milestones, and gradually face stronger opponents. The experience combines accurate GPS tracking with the energy of multiplayer competition.

Problem

Running motivation faces a unique challenge. Most fitness apps track performance, but tracking alone doesn't drive repeat usage. Runners needed:
Fair competition — the ability to race against similarly skilled opponents (not just slower or much faster runners)
Realtime connection — live race updates across geographically separated competitors
Visible progression — clear proof that effort mattered (wins, ratings, streaks, badges, leaderboards)
Low friction — from opening the app to starting a race in seconds
The real challenge was not just building features. It was synchronizing GPS-tracked races in realtime, calibrating fair matchmaking across ability levels, and designing a progression system that reinforced repeat usage without being overwhelming.

Solution

We designed and built a mobile-first realtime racing platform that connects the full competitive running journey in one system.
The platform includes:
Athlete-facing
Twitch/Spotify-style OAuth signup
Runner profile with skill rating and statistics
Distance selection and smart opponent matching
Realtime race dashboard (live pace, distance, elapsed time, relative position)
Post-race results screen with win/loss outcome
Performance history and race analytics
Progression dashboard (wins, rating, streaks, badges, milestones, leaderboard)
Push notifications for race reminders and achievements
Backend & Realtime
GPS-based distance and pace tracking from multiple runners
Realtime synchronization of race state across competitors
Skill rating algorithm that calibrated matchmaking
Session management for joined races
Achievement and badge unlock logic
Leaderboard rankings and filters
The system uses Firebase as the source of truth for runner data, Firestore for structured session and achievement tracking, and realtime listeners to keep competitors synchronized during active races.

Approach

We broke the MVP into clear development milestones instead of treating it as one large build.
Phase 1: Foundation & Onboarding
Public landing page and marketing website
Authentication (email, OAuth via Spotify)
Runner profile creation and setup
Basic runner information capture (name, location, running experience level)
Phase 2: Matching & Racing Core
Skill rating system and matchmaking algorithm
Distance selection and opponent matching UI
Race session creation and join flow
Realtime GPS tracking and race state sync
Live race dashboard (pace gauge, relative position, countdown)
Post-race results screen and win/loss recording
Phase 3: Progression & Engagement
Achievement and badge unlock system
Progression dashboard (wins, rating, streaks, milestones)
Leaderboards (global, friends, local)
Performance analytics and best times
Push notifications for races and achievements
Phase 4: Polish, QA & Launch
Notification system refinement
Cross-device testing (iOS and Android)
Performance optimization for GPS tracking
User support and post-launch monitoring
A major focus was making the matchmaking algorithm transparent. Runners should understand why they were matched with a specific opponent, how their rating changed after each race, and what they needed to do to face new competition levels.

Technical Details

Frontend: React Native (iOS + Android from one codebase)
Backend: Node.js
Data & Real-time: Firestore, Firebase Auth, Firebase Cloud Messaging
Location Tracking: GPS-based distance and pace calculation
Infrastructure: Firebase Cloud Functions, Realtime Listeners
Platform type: Native mobile app (iOS + Android)
Core flows:
OAuth signup → runner profile → distance selection → matchmaking → realtime race → results → progression
Matching logic: Skill rating, distance preference, recent availability, win/loss ratio, average pace, consistency (activity frequency). System returns best-fit opponent while preventing rating-stacking gaming behavior.
AI Fallback Matching — When real opponents unavailable, runner matched with AI bot running skill-calibrated pace. Bot races count toward progression. Bot timing designed to feel competitive, not scripted.
Session lifecycle: Created → Matched → Race Active → Completed → Rated. GPS data collected continuously during race. Results calculated immediately post-race. Rating updated based on outcome.
Progression system: Each win increased rating by variable amount (more points for beating higher-rated opponents, fewer for lower-rated). Losses decreased rating but never below a floor. Streaks, milestones, and badges were unlocked at specific rating thresholds or achievement counts.
Timezone handling: Realtime synchronization via Firebase eliminating timezone confusion during live races.

Outcome

The result was a functioning realtime competitive running platform that transformed solo training into live multiplayer races.
For runners, the platform created a simple path: open app → pick a distance → get matched with a competitor at their level → race → see results → climb the leaderboard.
For the product, it delivered:
Realtime race synchronization across geographically separated competitors
Fair matchmaking that kept races competitive without intimidating new runners
Progression visibility that turned repeated runs into a clear personal narrative
Cross-platform launch (iOS + Android) from a single React Native codebase
Engagement mechanics (ratings, streaks, badges, leaderboards) that reinforced repeat usage
Most importantly, Mile Matcher solved the original problem: it made solo training feel like competition, and competition felt like progression. Runners came back not because the app tracked data, but because every run mattered.

Why This Matters

If you're building a product that needs:
Realtime synchronization across mobile devices
Multiplayer matching logic that's fair and transparent
Progression systems that drive retention
High-performance GPS tracking at scale
iOS + Android parity from a single codebase
Like this project

Posted Jul 21, 2026

Developed a realtime running app with matchmaking and progression features.