When the founder of Wakajugbe came to us, he had a clear frustration with the ride-hailing industry: drivers were losing too much of their earnings to commission-based platforms. He wanted a different model. A flat subscription fee for drivers, no commission cuts, and a platform built from scratch to compete with the big players.
That meant building three products at once: a rider app, a driver app, and an admin dashboard. All of them needed to work in real time, handle payments, and be ready for thousands of users from day one.
This is how we built it.
The Brief
Wakajugbe needed a complete ride-hailing ecosystem with a few non-negotiable requirements:
- A rider app where passengers could book rides, track drivers live, and pay seamlessly
- A driver app with onboarding, document verification, navigation, and earnings tracking
- An admin dashboard for the operations team to monitor rides, manage drivers, and track revenue
- Real-time GPS tracking and driver matching based on actual proximity
- Multiple payment methods including card, wallet, and cash
- Performance that held up on older devices and slower networks
This was not an MVP. The client needed a production-ready platform that could handle real riders and real money from launch day.
Why We Chose Flutter
Building native apps separately for iOS and Android would have doubled the development time and budget. We chose Flutter because it let us ship both platforms from a single codebase without sacrificing the performance users expect from a ride-hailing app.
The backend runs on Node.js with real-time socket connections keeping the rider app, driver app, and admin dashboard in sync at all times. When a rider requests a trip, the nearest driver sees it instantly. When a driver accepts, the rider sees the car moving on the map in real time. When the trip ends, the admin dashboard updates automatically.
The Hardest Problem: Driver Matching
Early in development, we tested a matching algorithm that paired riders with drivers based on ride history and availability. It worked in theory. In practice, it meant riders were sometimes matched with drivers 15 minutes away while a closer driver sat idle.
We rebuilt the matching system around real-time geofencing using the Google Maps API. The app now tracks driver locations continuously and matches riders with the nearest available driver. Wait times dropped dramatically, and driver utilization improved because the system stopped skipping nearby drivers in favor of ones with better ratings.
Payments That Actually Work
Payment integration in African markets comes with challenges that most documentation does not prepare you for. Failed transactions, wallet funding delays, and false fraud flags were all issues we encountered during testing.
We integrated Paystack for both rider payments and driver payouts, with intelligent retry logic that handles network interruptions gracefully. The system supports card payments, wallet top-ups, and cash rides. When a transaction fails, the app retries automatically before showing the user an error, which eliminated most of the "payment failed" complaints that plague similar platforms.
Making It Work on Every Device
A ride-hailing app that drains your battery or crashes on a mid-range Android phone is not a viable product in the Nigerian market. Most of our users would be on devices with 2-3GB of RAM and inconsistent network coverage.
We optimized background processes to minimize battery drain, implemented offline caching so the app remained functional during brief network drops, and created a lightweight rendering mode for older devices. The result is an app that runs smoothly whether you are using a flagship iPhone or a budget Android phone.
The Admin Dashboard
The operations team needed visibility into everything: active rides, driver locations, completed trips, revenue, and driver compliance (document verification, subscription status). We built a web-based dashboard that gives them a live map of all active rides and drivers, filterable lists for every data point, and the ability to intervene in real time if something goes wrong.
This was not an afterthought. For a ride-hailing platform, the admin dashboard is the nerve center. Without it, the operations team is flying blind.
Results
Wakajugbe launched on both the App Store and Google Play with all three products working together seamlessly:
- 10,000+ rides completed in the first quarter after launch
- Three products shipped together: rider app, driver app, and admin dashboard
- Real-time GPS tracking and fare estimation working reliably from day one
- Paystack processing both rider payments and driver payouts without friction
- Operations team managing the entire fleet through a single dashboard
The subscription model proved popular with drivers. Instead of losing 20-25% of every fare to commission, they pay a flat monthly fee and keep everything they earn. That value proposition, backed by a platform that actually works, drove strong early adoption.
What We Learned
Building a ride-hailing platform taught us things that no amount of documentation can prepare you for. Real-time systems need to be tested under real network conditions, not just on fast Wi-Fi. Payment integrations in African markets need fallback logic that accounts for infrastructure limitations. And driver matching algorithms need to prioritize proximity over everything else, because a rider does not care about a driver's rating if they have to wait 20 minutes.
These lessons inform every project we take on now.
Build Your Platform
If you are building a product that needs real-time features, payment processing, and multi-user coordination, we have done it before and we know where the pitfalls are. Let us talk about your project.

