Mobile · Navigation · Safety
Apex Rider
Offline-First Motorcycle Tour Companion

My roleI designed the local-first architecture and built the app and its sync engine.
The situation
Apex Rider's users pick routes precisely because they leave coverage: mountain passes, desert highways, forest tracks. A three-hour ride is a stream of GPS points, sensor windows for crash detection and check-ins, often with zero bars.
"Works offline" could not be a feature checkbox. If the phone loses a ride, or misses a crash, the product has failed.
- Navigation, recording and crash detection must work fully offline.
- Battery has to last a full tour.
- iOS and Android kill background work at any moment.
System architecture
- Phone sensorsGPS · motion
- Offline mapsMapLibre · voice nav
- Crash detectionAIon-device
- Local databaseWatermelonDB · source of truth100% offline
- SOSemergency contacts
- Silent syncwhen signal returns
- Cloud backendSupabase · Postgres
Architecture decisions I made
- D1Invert it: the phone is the source of truthWatermelonDB on the device is the truth; the UI reads and writes only locally, and sync reconciles in the background when a signal appears.
- D2Idempotency is the whole gameClient-generated UUIDs on every row and batch upserts keyed on them, so replaying a batch after a dropped connection is harmless. Sequence numbers per ride let the server request exactly the missing spans.
- D3Adaptive GPS samplingHigh rate in turns and speed changes, low on straights: far less battery drain with negligible loss of track quality.
- D4Every sync stage is resumableThe app assumes it can be killed at any moment and picks up where it left off.
Measured in production
What I took away
- Offline-first is an architecture, not a cache.
- Show sync honestly: a small "3 rides waiting to sync" removed users' "did it save?" anxiety.
Questions about this project
What problem did Apex Rider solve?
Riders tour where there is no signal. Navigation, tracking and crash detection had to work fully offline, then sync cleanly when the network returns.
Who built Apex Rider, and how does it work?
I did (Qalab Hassnain Agha). I designed the local-first architecture and built the app and its sync engine. How it works: A React Native (Expo) app with WatermelonDB as the on-device source of truth, MapLibre offline maps with turn-by-turn voice navigation and offline routing, sensor-based crash detection with SOS, live crew ride sharing with crash and SOS alerts to the crew, 11 curated Pakistan routes, and silent sync to a Supabase backend. Off-Grid Crew Link adds an ESP32 Bluetooth bridge that relays crew positions and short messages rider to rider when there is no signal. Stack: React Native (Expo), TypeScript, WatermelonDB, MapLibre, Valhalla offline routing, Supabase, Firebase, ESP32 · BLE.
What results did Apex Rider achieve?
Live on the App Store and Google Play. 100+ downloads and 5.0★ from 11 reviews on Google Play in its first month. 100% offline navigation and ride recording. Crew crash and SOS alerts, and rider-to-rider messages with no signal.
Can I hire Qalab to build something similar to Apex Rider?
Yes. Contracts from $25 an hour, full-time remote from $3,000 a month, fixed-price prototypes from $600 and builds from $2,000, and fractional CTO retainers from $800 a month. Book a free 30-minute call and I will tell you honestly whether and how I would build it.
Gallery




