Karwa is Qatar's national taxi and public transport operator. The app is how the country moves, from Hamad International arrivals to daily commutes, limousine bookings and wheelchair-accessible rides. Across October and November 2025, we revamped the entire mobile experience: a full UI/UX redesign, a rebuilt user journey, and a complete design kit handed over development-ready. Eight weeks, end to end.
The challenge
Karwa isn't a greenfield product. Years of features had accumulated on top of each other: several service types, a long list of payment methods from cards to wallets to Apple and Google Pay, and full bilingual support where every screen has to work in Arabic right-to-left as convincingly as it does in English. Because the app runs on a live national service, nothing could be "fixed later" in a follow-up sprint. The design had to be complete and unambiguous the moment it reached the development team, or the ambiguity would become someone's cancelled ride.
What we did
We rebuilt the journey before we rebuilt the interface: mapping every path from opening the app to a driver arriving, then cutting the steps that existed only because of how the old system had grown. From there we redesigned the full UI on top of a single component system rather than screen by screen, so that every state (loading, error, no drivers available, ride in progress) is a defined component rather than an afterthought, and so RTL and LTR render from the same source of truth instead of two diverging designs. The deliverable was a complete design kit: tokenised colour, type and spacing, documented components with all their states, and annotated flows covering the edge cases developers usually have to guess at. We handed over a system, not a set of screens.
Outcome
Full app UI/UX revamped and delivered inside an 8-week window
End-to-end user journey redefined, with redundant steps removed from the core booking path
Complete design kit shipped: design tokens, documented component library, and every screen state specified
Arabic RTL and English LTR built from one component set, removing the drift between the two language versions
A system the client's team can extend for future releases, rather than a one-off visual refresh
Handover made development-ready, with annotated flows and edge cases specified so build could start without a discovery phase