← Back to portfolio
UAE · Dubai & Sharjah ● Live in production iOS · Android · Flutter 2 apps · 1 codebase

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.

2,400+
washes booked
4.8 ★
avg in-app rating
22 min
avg dispatch → arrival
99.7%
payment success rate
The challenge

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.

Engagement
Discovery → MVP → Launched
Weekly demos, 5-month build to launch.
Apps shipped
Customer + Operations
iOS + Android, single Flutter codebase.
Status
Live
App Store & Play Store, fleet running daily.
Customer app

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.

9:415G
Good afternoon
Ahmed
A
Location
Marina · Tower B
Apt 12B · Basement P2
Vehicle
Land Cruiser
DUBAIA12345
Loyalty cycle
7/ 10 washes
3 more washes for a free Premium Detail (worth AED 280)
Choose a serviceSee all
Express Wash
15 minAED 35
Full Wash
30 minAED 65
Premium Detail
90 minAED 280
Ceramic Coat
3 hrAED 650
Home
Bookings
Rewards
Profile
01 · Home
Pick a service in two taps
Saved address & vehicle pre-filled with a real Dubai plate. Loyalty progress always visible.
9:415G
Step 2 of 3
When works?
Full Wash · AED 65
Pick a date
Wed
13
Thu
14
Fri
15
Sat
16
Sun
17
Mon
18
Tue
19
Available slots · Thu Nov 14surge: 0%
9:00 AMAED 65
10:30 AMAED 65
12:00 PMAED 65
1:30 PMAED 65
3:00 PMAED 65
4:30 PM+10
6:00 PM+10
7:30 PM+15
9:00 PM+15
Make it weekly?
Save 10% on every recurring wash · cancel anytime
Continue to checkout
Home
Bookings
Rewards
Profile
02 · Schedule
14-day grid with smart slots
Capacity-aware availability, surge pricing for peak hours, weekly recurring with 10% off.
9:415G
Booking #4892 · Premium
Van is on the way
Live
ETA 8 min
H
Hamza A.
Van 03 · ★ 4.9
Premium Detail · 90 min
5:14 PM · Thu
Booked
Assigned
En route
Washing
Done
2.1 km
Distance
28°C
Outside
42 L
Water
Home
Bookings
Rewards
Profile
03 · Live tracking
Watch the van arrive
Real-time GPS, ETA, 5-step pipeline. One tap to call or message the washer.
9:415G
Step 3 of 3
Confirm & pay
VAT 5%
Premium Detail
90 min · interior + wax
Thu · 4:30 PM DUBAIA12345
Subtotal266.67
VAT (5%)13.33
Loyalty discount— 0.00
Promo · WELCOME15— 42.00
TotalAED 238.00
Payment method
Apple Pay
·· 4321 · default
Google Pay
via Stripe
Visa ·· 8841
Emirates NBD
Cash on arrival
Driver carries change
Pay AED 238
04 · Checkout
Pay your way
Apple Pay, Google Pay, Visa / Mastercard or cash. FTA-compliant 5% VAT receipt issued instantly.
9:415G
Member since Mar 2024
Rewards
A
Loyalty tier
Gold
★ ★ ★
Progress
7/ 10
3 more washes → free Premium Detail · worth AED 280
23
Lifetime
AED 195
Saved
2
Free washes
Active offers
25% off Premium Detail
Birthday · expires Dec 31 · BDAY25
USE
Refer a friend → AED 30 each
Code: AHMED-3 · 4 friends invited
SHARE
Tier ladder
BronzeSilver★ GoldPlatinum
7 washes to Platinum · 15% off everything
Home
Bookings
Rewards
Profile
05 · Loyalty
Every 10th wash on the house
Tier ladder, lifetime savings, birthday offers, referral codes — auto-applied at checkout.
9:415G
Booking #4877
How was your wash?
Full Wash · completed
Hamza A. · Thu Nov 14 · 28 min
Excellent
What stood out?
✓ Friendly washer ✓ On time ✓ Spotless finish + Quiet + Fast + Tidy
Note (optional)
"Hamza was great — even cleaned the rims. Will book him again next week."
+1 wash credited to your loyalty cycle
Submit rating
06 · Rate & review
Close the loop
Washer-tagged feedback flows back to ops. Loyalty credit on submit.
What's in the customer app

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
Operations app

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.

9:41Wi-Fi
Dashboard
Thu Nov 14 · live
Live
Revenue today
AED 4,820
↑ 24%
8 AM2 PMnow · 5 PM
Jobs · today
42
↑ 18% vs avg
Avg wash time
28 min
target 30 min
Vans active
6 / 7
1 idle · Van 04
CSAT (24h)
4.9
31 ratings
Hourly throughput8 AM — 8 PM
● Peak 12–2 PM● Avg 3.5/hr
Today's highlights
Top washerHamza A. · 11 jobs
Top servicePremium · 18×
Cancellations2 · 4.7%
Avg ticketAED 114
New customers+ 5
Dash
Jobs
Fleet
Staff
07 · Live dashboard
KPIs the owner reads at 9pm
Revenue waterfall, throughput, vans, CSAT, top performers — all computed live from Postgres.
9:41Wi-Fi
Dispatch board
42 jobs · 6 vans active
Live
Queue · 8
In progress · 4
Done · 30
A. Hassan · Land Cruiser
14:30Marina Tower B DUBAIA12345
IN PROGRESS
Van 03 · Hamza A. · 12 min in AED 280
M. Khan · Patrol
14:45JBR The Beach DUBAIM8841
EN ROUTE
Van 05 · Bilal R. · ETA 8 min AED 35
F. Al Marri · Range Rover
15:00DIFC Gate 4 SHARJAH366112
LATE 6 m
Awaiting van · auto-suggest ready AED 280
N. Saeed · Camry
15:15Business Bay DUBAIF7401
QUEUED
Recurring weekly · prefers Hamza AED 65
Dash
Jobs
Fleet
Staff
08 · Dispatch board
Every job, every van, every status
Live queue with progress bars, plates rendered properly, late-flag escalation, recurring-customer hints.
9:41Wi-Fi
Assign · #4892
3 nearby vans · sorted by ETA
Customer
F. Al Marri ★ GOLD
Range Rover · DIFC Gate 4 · Premium · AED 280
SHARJAH366112 · 23 lifetime · last 3: ★ 5.0
Closest availabledistance · ETA · rating
Van 03 · Hamza A.
Idle · Marina · ★ 4.9 (412)
2.1 km3 min
Van 05 · Bilal R.
Finishing JBR · ★ 4.7 (288)
3.4 km12 min
Van 07 · Saif M.
Idle · Business Bay · ★ 4.8 (167)
5.8 km8 min
Van 04 · Off shift
Returns 18:00
Returning Gold customer · premium SLA · last 3 ratings 5★. Recommended: Hamza A.
Dispatch Van 03
Dash
Jobs
Fleet
Staff
09 · Smart assignment
Right van. Right washer. Right now.
Sorted by ETA, weighted by rating & customer tier. One-tap dispatch with displaced-order rollback.
9:41Wi-Fi
Fleet
7 vans · 6 active
Live
03
05
07
02
06
04
Idle (2) Working (3) En route (1) Off (1)
Van 03 · Hamza A.
Working · 11 jobs · AED 1,420
★ 4.9
Van 05 · Bilal R.
En route · 8 jobs · AED 920
★ 4.7
Van 02 · Omar K.
Idle · 7 jobs · AED 680
★ 4.8
Van 04 · Off shift
Resumes 18:00 · 3 jobs done
Dash
Jobs
Fleet
Staff
10 · Fleet view
Every van on a live map
Status, GPS, today's jobs & revenue per van — at a glance.
9:41Wi-Fi
End-of-day
Thu Nov 14 · auto-close
DRAFT
Revenue waterfallgross → net
5,640 Gross −420 Cancels −400 Promo −241 VAT 5% 4,579 Net
Payments mix
Apple Pay 48% Card 22% G Pay 18% Cash 12%
Washer leaderboard
1 Hamza A. 11 · AED 1,420
2 Bilal R. 8 · AED 920
3 Omar K. 7 · AED 680
Export end-of-day PDF
Dash
Jobs
Fleet
Staff
11 · End-of-day
Revenue waterfall, exported
Gross → cancellations → promos → VAT → net. Payments mix and washer leaderboard. One PDF.
9:41Wi-Fi
Customer file
F. Al Marri · #C-1147
F
Faisal Al Marri
Member since Mar 2024 · ★ Gold
Lifetime value
AED 4,840
↑ AED 280 this mo
Total washes
23
avg ticket 210
Avg rating given
4.9 ★
last 3: 5,5,5
Cancellation rate
4.3%
1 in 23
Recent activity
Premium Detail · ★ 5
Thu Nov 14 · DIFC · Hamza A.
AED 280
Full Wash · ★ 5
Thu Nov 7 · DIFC · Bilal R.
AED 65
Premium Detail · ★ 5
Thu Oct 31 · DIFC · Hamza A.
AED 280
Vehicles · 2
Range Rover · Black
Default · 14 washes
SHARJAH366112
Cayenne · White
Wife · 9 washes
DUBAIM2018
Dash
Jobs
Fleet
CRM
12 · Customer CRM
Lifetime view, on a tablet
LTV, washes, ratings, garage with proper UAE plates, full activity log. The dispatcher knows who they're talking to.
What's in the operations app

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
Architecture

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.

CUSTOMER APP Flutter · iOS + Android • Booking flow + tracking • Vehicle & address book • Payments, loyalty, ratings • AR / EN, full RTL OPERATIONS APP Flutter · tablet-first • Dispatch & smart assign • Fleet, vans & staff • Pricing & service CMS • Reports, CRM, exports SHARED FLUTTER CORE • Domain models (Order, Van, User…) • Repositories & services • GetX state, GoRouter • Theme, i18n, design system • Telemetry & crash reporting • Test suite & mocks BACKEND · SUPABASE Realtime Postgres spine • Postgres — RLS on every table • Auth — phone OTP + email • Realtime — order & van streams • Edge Functions — Stripe webhooks • Storage — receipts & photos 3rd-PARTY • Stripe — cards & refunds • Apple Pay & Google Pay • Google Maps — routing & tiles • Twilio — SMS fallback • FTA — VAT 5% receipts

Frontend

Single Flutter codebase, two app entrypoints.
Flutter 3.24Dart 3.5GetXGoRouterGoogle Maps SDKSupabase Flutter

Backend

Postgres-first, RLS on every table, RPC for sensitive ops.
SupabasePostgres 15RealtimeEdge Functions · DenoAuth · OTPStorage

Payments & ops

UAE-first integrations and compliance.
StripeApple PayGoogle PayTwilioFTA VAT 5%Sentry
Roadmap

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.

Phase 1 · Done
Discovery, brand & service map
Pricing model, 4 service tiers, journey maps for customer + dispatcher + washer.
Phase 2 · Done
Customer app — booking, payments, tracking
iOS + Android shipped to TestFlight / internal testing. Apple Pay & Stripe live.
Phase 3 · Done
Operations app — dispatch & reporting
Dashboard, dispatch board, fleet, smart assign, CRM & PDF exports — all shipped.
Phase 4 · Done
Pilot — 3 vans, Marina + Business Bay
Two-week instrumented pilot. 412 washes, 4.8★ avg, zero payment incidents.
Phase 5 · Live now
Public launch — Dubai & Sharjah
App Store + Play Store. 7 vans active. Loyalty & coupons rolled out across the customer base.
Production metrics · last 30 days

Numbers from the live fleet.

Bookings · 30 days
0
across 7 vans
Avg booking → arrival
0 min
↓ 38% vs target
Avg ticket size
AED 114
↑ 12% w/w
CSAT · in-app rating
0 ★
2,400+ ratings
A two-app idea of your own?

We can ship a customer + operations pair on one Flutter codebase, fast.

From booking marketplaces to field-service ops to delivery — same architecture, different surface. Bring us the workflow.

Start a project