Back to blog
Inside Cabrooz: Building Real-Time Ride Dispatch That Still Works Offline
husnainhusnain
July 1, 20268 min read

Inside Cabrooz: Building Real-Time Ride Dispatch That Still Works Offline

Mobile DevelopmentReal-Time SystemsReact Native

Cabrooz is a ride-hailing platform, passenger app, driver app, and admin dashboard, built for markets where connectivity isn't always reliable. That last part shaped almost every technical decision on the project.

## Real-time is easy, real-time that degrades gracefully is not

Most ride-hailing tutorials assume a driver's phone always has a signal. In the markets Cabrooz operates in, that assumption breaks constantly. We built the ride matching system on WebSockets for live updates, but the harder problem was designing offline ride assignment, letting a dispatcher manually assign a trip to a driver when the automated real-time matching couldn't reach them.

## What the architecture had to handle

  • - Live GPS tracking and route updates over WebSockets when connectivity is good
  • - A fallback dispatcher-assigned flow when it isn't
  • - Wallet-based payments that reconcile correctly even when confirmations arrive out of order
  • - Driver earnings and payout tracking that stays accurate across both flows

## The part nobody asks about: driver trust

Ride-hailing platforms live or die on driver retention, and drivers don't stay on a platform where they can't see what they're earning. We built earnings visibility as a first-class feature, not an afterthought, because a driver who trusts the numbers is a driver who stays online during the hours that matter most for passengers.

## Where this generalizes beyond ride-hailing

Any platform that depends on real-time coordination between two sides of a marketplace, deliveries, field service, on-demand anything, runs into the same core problem: the real world isn't always connected, and the system has to have a sane fallback instead of just failing. Designing for the offline case first, rather than treating it as an edge case, is what kept dispatch running at 98% completion rate even in patchy-connectivity conditions.