Spot Cabs
A custom ride hailing app built to reduce platform commissions, keep pricing competitive, and stay reliable at scale.
Overview
Spot Cabs is a ride hailing application with the core features users expect: booking and scheduling, in-app payments, real-time driver location, ETA calculation, discounts, ratings, loyalty points, and fleet management.
The Proposal
A fleet owner wanted an in-house alternative to apps like Bolt and Uber to avoid heavy commission fees. Removing commissions allowed lower prices while keeping healthy margins for drivers and fleet managers, making the product viable with marketing and partnerships (hotels, restaurants, and other tourist services).
Because the client's drivers had years of experience using the mainstream platforms, they also brought clear requirements and a practical view of what needed improvement. We kicked off with discovery meetings, prioritized milestones, and aligned design and development around delivery timelines.
System Architecture
Early backend planning highlighted two high-complexity areas: customer-driver matching during bookings, and real-time trip functionality.

Driver Matching at Scale
The matching flow needs to find the nearest available driver whose vehicle class meets the requested ride type. A naive approach stores driver latitude/longitude in the main database and checks every available driver using distance calculations.
- Driver positions update multiple times per second, overloading PostgreSQL with constant writes.
- Checking every driver wastes computation and adds latency.
- Most candidates are too far away but still get evaluated.
Redis + Geo Indexing
A Redis cluster stores live driver positions. Drivers update their location via an Express API, which writes to Redis and triggers updates to a geo index based on a geohash tree.
This reduces database pressure, avoids scanning irrelevant drivers, and keeps matching responsive as the fleet scales.
Geohash Tree Matching
Geohash encodes latitude/longitude into a short alphanumeric string useful for compact storage, spatial indexing, and proximity queries. Each driver's location is encoded to a geohash, and a tree structure is built where each character represents a progressively smaller area.
On booking, the customer's geohash searches drivers in the most specific node first. If none are found, the search expands to broader prefixes before running Haversine distance checks. See geohash.softeng.co for a visual explainer.


Real-time Trip Functionality
Real-time trips introduce many operational edge-cases: unstable connectivity, cancellation rules and fees, pricing and ETA accuracy, background driver tracking, route rendering, and dispatching the next job as a trip nears completion.
React Native + WebSockets + Maps
Mobile apps built with Expo/React Native include background location updates and network-state listeners. A WebSocket cluster powers live trip sessions with low-latency events. Google Maps APIs handle routing, ETA, and place search.
Additional Features
After the first milestones, internal testing feedback drove additional features.
Support Chat
Real-time communication between support agents and riders/drivers, reusing existing WebSocket infrastructure.
Scheduled Rides
Bookings stored with cron jobs on a scheduler server, triggering the same trip-start pipeline at the selected time.
Ratings & Penalties
Post-trip ratings update driver scores. Poor ratings feed into a penalty system affecting driver profit.
Final Product
The delivered system included two mobile applications plus a suite of connected web dashboards.
Customer App
SMS login, card/cash booking, map-based pickup selection, vehicle classes, ETA + pricing, route display, real-time trip updates, cancellations, push notifications, promotions, trip history, and favorites.
Driver App
Managed login, vehicle selection, online/offline status, background location, navigation/ETA, profile, ratings + penalties, and earnings statistics.
Admin Dashboard
Manage fleets/drivers/classes, view bookings, and review business metrics.
Fleet Manager
Manage vehicles/drivers, bookings, and statistics for fleet operations.
Support Dashboard
Live chat with customers and drivers, plus access to historical chat logs.