All services Mobile apps

Apps people keep on their phone.

iOS and Android apps for your customers, riders and field teams, with M-Pesa built in and a back office to run it all. Built in Flutter or React Native on Laravel APIs, published to the stores and looked after by us.

Good for Ordering and delivery · Field sales teams · Member apps · Booking apps · Loyalty and rewards

Smiling shop attendant in a striped apron giving an OK sign in a supermarket aisle
Orders Search GWGrace WanjiruAdministrator
Orders
Orders today214
Average basketKES 1,860
Delivered on time94%
OrderCustomerAreaStatus
#40812 Njeri Kamau Kilimani With rider
#40813 Hassan Omar South B Delivered
#40814 Akinyi Odhiambo Ruaka Packing
#40815 Peter Mwangi Westlands New
Orders by hour today
8am 10am 12pm 2pm 4pm 6pm 8pm
Orders today 214
What you get

An app, and everything behind it.

Most of the work in a good app is the part customers never see: the back office, the payments, the messages and the updates after launch. We build all of it.

01

iOS and Android from one build

Flutter or React Native, so both stores get the same app and updates ship together.

02

Works on a weak signal

Screens load from the phone first and sync when the connection returns, so no order is lost.

03

M-Pesa built in

STK push at checkout through Daraja, with card payments and refunds matched to each order.

04

A back office to run it

Orders, customers, riders and payments managed from one web console your team logs into.

05

Push, SMS and WhatsApp

Order updates and offers on the channel each person reads, with opens and orders tracked.

06

Store launch and updates

App Store and Play Store listings, reviews, crash reports and regular updates handled.

The back office

Where your team runs the app.

Every app we build comes with a web console for the people behind it. Pick a module to see what your operations team works from while customers and riders use their own apps.

Try it: open a module from the menu, click a record, filter the list.

PCPinch ConsolePinch Console
Orders GWGrace WanjiruAdministrator
Orders
Orders today214
Average basketKES 1,860
Delivered on time94%
OrderCustomerAreaStatus
#40812 Njeri Kamau Kilimani With rider
#40813 Hassan Omar South B Delivered
#40814 Akinyi Odhiambo Ruaka Packing
#40815 Peter Mwangi Westlands New
Orders by hour today
8am 10am 12pm 2pm 4pm 6pm 8pm

Orders

Every order placed in the app, from checkout to the customer's door.

4 features
  • Live order board by status
  • Stock and prices pushed to the app
  • Orders assigned to the nearest rider
  • Refunds and cancellations logged

Like what you see? Let us build yours.

We walk you through it on a call, map how your business works, and send a fixed-scope proposal in writing.

Custom built, not off the shelf. Every system we build is made to fit the client's needs: the modules, screens, wording and reports follow how your organisation works. The business, names and figures in this demo are examples.

Orders

Every order, live.

Every order placed in the app, from checkout to the customer's door.

  • Live order board by status
  • Stock and prices pushed to the app
  • Orders assigned to the nearest rider
Orders Search GWGrace WanjiruAdministrator
Orders
Orders today214
Average basketKES 1,860
Delivered on time94%
OrderCustomerAreaStatus
#40812 Njeri Kamau Kilimani With rider
#40813 Hassan Omar South B Delivered
#40814 Akinyi Odhiambo Ruaka Packing
#40815 Peter Mwangi Westlands New
Orders by hour today
8am 10am 12pm 2pm 4pm 6pm 8pm
Orderslive
#40812 Njeri Kamau With rider
#40813 Hassan Omar Delivered
#40814 Akinyi Odhiambo Packing
Riders & field staff

Riders routed, proof on the phone.

Riders and field teams on the map, with every drop and visit proved.

  • Live location during deliveries
  • Photo and signature on delivery
  • Routes and drops planned for the day
Riders Search GWGrace WanjiruAdministrator
Riders
On shift now26
Drops today388
Average drop time24 min
RiderZoneDropsStatus
Juma Mwangi Kilimani 17 On route
Kevin Kiptoo Eastlands 12 At pickup
Moses Wafula Ruaka 9 Delayed 15 min
Drops by zone today
CBD Westlands Kilimani Eastlands Ruaka
Riderslive
Juma Mwangi Kilimani On route
Kevin Kiptoo Eastlands At pickup
Moses Wafula Ruaka Delayed 15 min
Payments

M-Pesa, built in.

M-Pesa and card payments matched to orders, refunds and rider cash.

  • M-Pesa STK push at checkout
  • Card payments and refunds
  • Daily settlement report
Payments Search GWGrace WanjiruAdministrator
Payments
Collected todayKES 398K
Paid by M-Pesa86%
Unmatched3
M-Pesa receiptOrderAmountStatus
SJK4T8QW2L #40812 KES 2,340 Matched
SJK4T9AB7M #40809 KES 1,150 Matched
SJK4U1CD3P No reference KES 900 Unmatched
Collections this week, KES K
Mon Tue Wed Thu Fri Sat Sun
Collected today KES 398K Paid by M-Pesa: 86%
Running today

Built by us, in use today.

Peni Africa and Uwitu run on platforms we built and host. We also build, host and support our own products, including DaimaFund for chama banking and MoyoMatch for matchmaking, so we know what it takes to keep an app running long after launch.

See every live platform
How we work

In the stores in 21 working days.

  1. 01Days 1 to 3

    Map the journeys

    What customers, riders and your team each need to do, and what the app must connect to.

  2. 02Days 4 to 7

    Design and click through

    Screens designed for both platforms, then a clickable prototype tested with real users.

  3. 03Days 8 to 19

    Build and test

    App, back office and APIs built in sprints, and tested on low-cost and high-end phones.

  4. 04Days 20 to 21

    Publish and look after it

    Store listings and approval handled, then crash monitoring, updates and support.

Tools we use Flutter · React Native · Laravel APIs · Firebase · M-Pesa Daraja · Airtel Money · Expo · Google Maps

Questions

Before you ask.

Flutter, React Native or native?

For most apps, Flutter or React Native gives you iOS and Android from one codebase, which means one budget and updates that ship together. If you need heavy use of the camera, Bluetooth or other device features, we write those parts natively in Swift or Kotlin.

Will the app work without a signal?

Yes, where it matters. Screens and recent data are stored on the phone, actions taken offline are queued, and everything syncs when the connection returns.

Can customers pay with M-Pesa in the app?

Yes. We use Safaricom Daraja for STK push, so the customer confirms on their phone with their PIN. Payments are matched to the order automatically, and cards and Airtel Money can sit alongside.

Do you publish it to the App Store and Play Store?

Yes. We prepare the listings, screenshots and privacy details, take the app through review and publish every update. The apps sit in your own developer accounts, so you own them.

What does an app cost?

It depends on the screens, the back office and what it connects to. After a free scoping call you get a fixed-scope proposal in writing, so you know the price before we start.

Let's plan your app.

A free scoping call, then a fixed-scope proposal in writing.

We’re online · real human Get a quote