Problem
Regional taxi companies want their own app with their own name, but none of them can afford to build one. A white-label platform gives each of them a branded app on both stores from one codebase.
What I did
For about a year and a half I supported the passenger app remotely: new features, bug fixes, and getting branded builds through Google Play and App Store review. The app you can download today as Oson+ is one of those brands.
Front · Flutter
- Pickup and destination on the map, with address search and the current location.
- Tariff choice (economy, comfort, business and more) with the price shown before ordering.
- A driver-search screen with a live countdown, then real-time driver tracking.
- Cash or card payment, SMS OTP sign-in, push notifications, English, Russian and Uzbek.
- Offline caching and connectivity checks, so a weak signal doesn’t lose an order.
Behind · Servers
- One shared backend; every brand is configuration: name, colours, tariffs, bundle ID and store listing.
Hard problems
- Many apps, one codebase — a change has to work for every brand, so brand differences live in configuration, not in forks.
- Store review, many times over — every brand is its own listing on both stores.
Results
The platform ships under 10+ city brands on Google Play and the App Store. Oson+ alone has 1K+ downloads on Google Play.


