
A two-sided ride-hailing product: a passenger app and a driver app designed as one coherent system with shared components and mirrored flows.
Passengers and drivers need opposite things from the same trip — speed and clarity on one side, earnings and route control on the other — without doubling the design effort.
One design system, two apps. I mapped both journeys end-to-end, unified map interaction patterns, and designed state-driven trip screens (request, match, pickup, ride, payment) that mirror each other.
A complete UI kit covering both apps — onboarding to payout — with a shared component library that keeps future features consistent.