A Ride-Hailing Platform for Saudi Arabia
Ride-Hailing Startup (Saudi Arabia)
A full ride-hailing platform built for Saudi Arabia from the ground up — rider and driver apps on a single Flutter codebase, a real-time first-accept-wins dispatch engine, Saudi payment rails (mada / Apple Pay), and Transport General Authority (Wasl) integration — delivered end to end, from app stores to admin console.

- Delivered
- Rider + Driver + Admin
- Payments
- Visa · MC · mada · Apple Pay · cash
- Compliance
- Wasl (TGA) integration
- Languages
- AR · EN (RTL)
A Ride-Hailing Platform for Saudi Arabia
A full ride-hailing platform built for the Saudi market from the ground up — rider and driver apps on a single Flutter codebase, a real-time dispatch engine, Saudi payment rails, and Transport General Authority (Wasl) integration — delivered end to end, from app stores to admin console.
The challenge
Launching a ride-hailing service in Saudi Arabia is not one product — it is a two-sided real-time marketplace plus the operational and regulatory scaffolding to run it, and all of it has to exist before the first trip can happen.
A real-time marketplace, from zero. A rider opening the app expects to see a fare estimate, request a car, and watch a driver converge on the pickup pin in real time. A driver expects ride requests to arrive while moving, a countdown to accept, and turn-by-turn navigation to the rider. Behind both sits a matching engine that has to find the nearest available driver, broadcast the request, and resolve who gets the trip when two drivers tap "accept" at the same instant.
Built women-first. The platform was designed for a women-focused service — female riders matched with female drivers — which raised the bar on identity verification, driver onboarding and document review, and the safety-sensitive parts of the flow. The product had to make those guarantees structurally, not cosmetically.
Saudi compliance is not optional. Ride-hailing in the Kingdom runs under the Transport General Authority. The platform had to integrate with Wasl, the TGA's compliance platform, support Saudi identity and vehicle-plate formats, charge VAT correctly, and settle payments through a Saudi-licensed gateway supporting mada alongside Visa, Mastercard, and Apple Pay.
Bilingual, RTL, and on a tight timeline. Arabic and English throughout — rider app, driver app, and admin console — with full right-to-left layout, delivered against a six-week build window.
What we built
The platform is three surfaces over one backend.
Passenger app. OTP sign-up and login, profile and saved payment methods, and a guest mode that lets a first-time user browse before being required to sign in to book. Trip creation puts pickup and drop-off on the map with a live fare, distance, and time estimate. From request to receipt the rider moves through a full trip state machine — searching, assigned, en route, arrived-and-waiting, in-progress, completed — with live driver and vehicle details the whole way. Payment is Visa, Mastercard, mada, Apple Pay, or cash, with a pre-authorization hold placed at the start of the trip and captured on completion. A free cancellation window, configurable no-show fees, mutual 1–5 ratings, an in-trip chat to coordinate the pickup point, and downloadable PDF invoices with a VAT breakdown round it out.
Driver (Captain) app. Onboarding captures personal and vehicle data and uploads the required documents — national ID, license, vehicle registration, and a vehicle photo — all gated behind admin approval before a driver can go live. An online/offline toggle controls availability; incoming requests arrive with a countdown and are resolved first-accept-wins. The driver navigates to pickup and drop-off, confirms cash collection before completing the trip, and rates the rider. A financial panel tracks earnings, debts, and fines with net dues, and supports withdrawal and settlement requests against bank details. Vehicle-license expiry is tracked with advance alerts and an automatic suspension when a license lapses.
Admin dashboard. Full account management for riders and drivers, a driver-application review queue with approve/reject and notification, and tiered sub-admin permissions. Operators monitor trips by status, track active trips live on the map and completed trips along their full route, and export trip data to Excel/CSV. The financial console reviews and approves withdrawals and settlements with a complete audit trail, and the settings surface controls the levers that run the business — VAT rate, commission percentage, search radius and duration, cancellation windows and fines, no-show fees, and surge pricing. Master data (vehicle makes, models, colors, cities, banks, cancellation reasons), static content pages, a complaints-and-reports workflow, a lost-and-found system, and a KPI dashboard filtered by date and city complete the operator toolset.
The dispatch core
The matching engine assigns each request to the nearest available driver within a search radius that expands on retry until a driver is found or the request times out. Concurrency is the hard part: when several drivers accept the same request at once, the backend resolves it first-accept-wins, assigns the trip to exactly one driver, and releases the rest. Trip state, driver location, and availability are pushed over WebSocket so both apps stay in lockstep — the rider's map and the driver's request feed update from the same source of truth, in real time, without polling.
Payments, compliance, and Saudi specifics
- Saudi payment rails. Integration with a Saudi-licensed payment gateway supporting mada, Visa, Mastercard, and Apple Pay, with a merchant-account-backed pre-authorization model — hold at trip start, capture at completion.
- Wasl / TGA integration. The backend exposes the APIs and technical hooks required to integrate with Wasl, the Transport General Authority's compliance platform — treated as part of the final delivery, not an afterthought.
- Identity and verification. Phone verification by OTP through a Saudi-supported provider, national-ID capture, and Saudi vehicle-plate formats handled correctly across rider, driver, and admin.
- VAT-correct billing. Every fare breaks down into subtotal, VAT, and total, surfaced in-app and in a downloadable PDF invoice.
- Bilingual by construction. Arabic and English with full RTL across all three surfaces, with in-app language switching.
How we built it
- Mobile: Flutter — a single cross-platform codebase for Android and iOS, built on Clean Architecture with BLoC state management for a maintainable, production-ready app
- Backend: Node.js (NestJS), exposing REST APIs with WebSocket for real-time synchronization
- Admin dashboard: React.js
- Database: PostgreSQL
- Supporting services: Firebase for push notifications, AWS S3 for document and image storage, Twilio for SMS/OTP
- Integrations: maps provider for routing, distance, and ETA; Saudi-licensed payment gateway; Wasl (TGA)
Why it matters
A ride-hailing launch lives or dies on the parts the rider never sees — whether two drivers can't both win the same trip, whether a fare settles through mada and reconciles against VAT, whether the platform talks to Wasl on day one. We delivered all three surfaces — rider, driver, and admin — over a single backend, on one Flutter codebase, with the dispatch engine, payment rails, and regulatory integration that turn a set of apps into an operating ride-hailing business in the Saudi market.
More from Transportation & Smart Mobility
All case studies
Regional Port Modernization
Enterprise-architecture and cloud modernization for a regional port authority — replacing brittle legacy systems with an integrated platform that cut downtime by 85% and unlocked real-time operational visibility.

Freight Operations Automation
Automated the manual paperwork and dispatch loops choking a regional freight operator — building the workflows, integrations, and intelligent routing that cut paperwork by 95% and shaved days off dispatch cycles.