Shaxi, short for Shatta Taxi, launched in December 2021 to create work for young drivers in Accra. We designed and built it, and we have run it ever since: the rider app, the driver app, the dispatch backend and the website.

Nearly five years on, Shaxi has more than 100,000 rider installs and 50,000 driver installs on Google Play, and it has grown from ride-hailing into a super app with a marketplace, property listings, jobs, a wallet and games. Most of what we learned along the way comes down to one idea: build for the phones, networks and habits your users really have, not the ones in the design file.

Start with one question

A rider opening the app wants one thing: to get somewhere. So the Shaxi rider app opens on a single question, where are you going?, with saved and recent places and a map picker for when an address is not enough. Everything else, including the marketplace, properties and jobs, sits around that question, not in front of it.

When an app grows, the temptation is to give every new feature a spot on the home screen. We added a whole super app layer to Shaxi without moving rides from the centre.

Show a fare range, not a promise

Traffic in Accra makes exact fares a guess. A price that changes at the end of the trip is the fastest way to lose a rider's trust, and a driver's.

Shaxi shows a fare range in cedis with the route preview and ride options, before the rider books.

Cash is a feature, not a legacy

Riders need to pay in cash or with mobile money, so cash cannot be an afterthought. Riders choose cash or digital payment up front, and drivers see the payment type before they accept a trip.

Payments come with a safeguard too: when a trip's movement cannot be verified, the fare goes to review.

The driver app is the product too

A ride-hailing platform is two apps, and the second one matters just as much. If drivers do not trust the app, they stop going online, and riders are left waiting.

Drivers trust what they can check. So an incoming request shows a countdown, the estimated fare, the distance, the payment type and the rider's rating before the driver accepts. After the trip, the earnings screen breaks down commission and net earnings by day, week, month and lifetime, next to the wallet and performance figures. Drivers see commission and net earnings side by side.

Verify before you grow

Every driver account on Shaxi is reviewed by an administrator before it can accept a ride, with licence and vehicle documents uploaded in the app. It would have been faster to let drivers start immediately. It would also have been the wrong decision for a platform whose promise is safety.

The same thinking runs through the marketplace, where listings come with seller stores, ratings and safety prompts.

Test on mid-range Android, over bad data

Shaxi has to work on mid-range Android phones over patchy data. Both apps are built in Flutter, on a shared Laravel backend.

Live location and dispatch run over WebSockets, so requests arrive in real time, with push notifications as back-up. Google Maps handles routing.

What this means for your app

You do not need to be building a ride-hailing app for these lessons to apply. If your customers are on phones, and most are, the same questions matter:

  • Does the first screen answer the one question people open the app with?
  • Do you show prices people can trust before they commit?
  • Do you support the ways your customers actually pay?
  • Is the other side of your marketplace (drivers, sellers, staff) treated as a first-class user?
  • Have you tested on the phones and networks your users really have?

We have been answering those questions on Shaxi since 2021 and on WAYA since its launch. If you are planning an app for a real-world audience, let's talk. See how we approach mobile app development.