A two-app mobile car wash platform — shipped and running.
Customer booking app, operations admin app, and a real-time backend that ties them together. Live in the App Store and Play Store, dispatching real vans across the UAE every day. Anonymized for client confidentiality — the screens below are pixel-faithful recreations of production.
A car wash that comes to you, scheduled like a ride.
A UAE car wash startup wanted to launch an on-demand service — vans dispatched to homes, offices and parking towers across Dubai & Sharjah. The hard part wasn't the wash. It was operating a fleet: knowing which van was where, what was queued, who paid, and which customer to call back when something slipped.
We shipped a customer app and an operations app on a single Flutter codebase, backed by a Supabase + Postgres realtime spine. A status change on any device propagates everywhere in under a second. Both apps are live and in the hands of paying customers and dispatchers today.
Three taps to a clean car. Live tracking, smart scheduling, real loyalty.
A consumer-grade booking flow tuned for the UAE: real-time van tracking on a map, a 14-day scheduling grid with dynamic pricing slots, and a 10-wash loyalty cycle that auto-applies at checkout. UAE plates rendered properly. Apple Pay, Google Pay, Visa, cash. AED only.
Built for UAE customers, end-to-end.
- Phone OTP onboarding · Arabic + English UI · full RTL layout
- Address pinning with villa / tower / parking presets, saved per user
- Vehicle garage with proper UAE plate input (Dubai / AUH / Sharjah)
- Service catalogue — Express, Full, Premium, Ceramic — durations & AED prices
- 14-day scheduling grid · capacity-aware · surge pricing for peak hours
- Real-time van GPS, ETA & driver chat · Apple Pay, Google Pay, Visa, cash
- 10-wash loyalty cycle · tier ladder · referral codes · birthday offers
- FTA-compliant VAT receipts (5%) · in-app history & one-tap reorder
A live operations cockpit your dispatchers can run a Friday rush from.
Same Flutter codebase, different surface. The operations app is a data-dense cockpit for dispatchers and owners — KPIs computed live from Postgres, today's revenue waterfall, fleet status, queued jobs, washer leaderboard, and one-tap smart assignment with displaced-order handling.
Dashboard
Dispatch board
Assign · #4892
Fleet
End-of-day
Customer file
Operations cockpit, on a tablet.
- Live dashboard — revenue, jobs, vans, CSAT — computed from Postgres in real time
- Dispatch board with progress bars, late-flag escalation, recurring-customer hints
- Smart assignment — distance × ETA × rating × tier, with displaced-order rollback
- Fleet view: map, status & today's revenue per van
- End-of-day revenue waterfall (gross → cancellations → promos → VAT → net)
- Payments mix breakdown · washer leaderboard · cancellation analysis
- Customer CRM — LTV, garage with proper UAE plates, full activity log
- Role-based access — owner, dispatcher, washer, accountant; FTA-compliant exports
One Flutter codebase. Two apps. A real-time spine.
Customer and operations apps share a Dart core (models, services, theme). Each ships its own feature surface. A Supabase backend pipes job-state changes to every connected device in under a second, with row-level security on every table and SECURITY DEFINER RPCs guarding sensitive operations.
Frontend
Backend
Payments & ops
From discovery to live ops.
A weekly demo cadence kept the client steering. Phase 5 — public launch — is in the rear-view mirror; the platform is live in production today.