A complete ride-hailing platform — passenger and driver apps, live GPS, payments and push alerts — designed and engineered end to end for a Canadian city.
Challenge
A local ride service in Thunder Bay, Ontario needed the experience riders now take for granted — watch the car arrive on a live map, sign in with a text message, settle the fare from your phone — without big-platform budgets or big-platform commissions. That meant building the whole thing: rider experience, driver tooling, dispatch, payments and maps.
What we built
- Passenger and driver progressive web apps, installable straight from the browser — no app store between the business and its riders
- Two-way real-time GPS over WebSockets: the rider watches the car, the driver watches the rider, and trip states flip on real positions, not taps
- SMS one-time-code login — no passwords, nothing to forget
- Direct rider-to-driver payments over Interac e-Transfer and WeChat, closed out with dual confirmation instead of a middleman holding the money
- Web push done properly: new-order alerts for drivers; driver-nearby and payment-due notices for riders
- A custom map stack — self-hosted routing engine and vector tiles served from edge object storage, so every map view costs nothing per request
- An order engine written in Rust, holding live trip state safely under concurrent updates from both sides of the ride
Stack
TypeScript across the web apps, Rust for the real-time order core, Cloudflare Workers and Neon Postgres underneath, and MapLibre with self-hosted OSRM routing instead of a metered maps API.
Status
Live in production in Thunder Bay, Canada.
