Angazé
OperationsFoodDeliveryKenya

The delivery-first ecommerce stack for Nairobi

Most Kenyan food businesses run on five disconnected tools: a website, WhatsApp, a phone book of M-Pesa transactions, a paper notebook, and Glovo. This is the integrated stack we build instead.

7 min read

Nairobi food and grocery businesses run on five disconnected tools: a website that nobody updates, WhatsApp for orders, M-Pesa SMS receipts on a single phone, a paper notebook for kitchen tickets, and Glovo for a slice of demand. The five do not talk. Orders get lost, stock runs out without anyone noticing, riders show up at the wrong gate.

Here is the integrated stack we build for clients in 2026.

The five jobs the stack has to do

  1. Take an order from the customer (web, WhatsApp, walk-in)
  2. Take payment (M-Pesa, card, on-delivery cash)
  3. Route the order to the right kitchen or fulfilment location
  4. Hand the order to a rider with delivery details
  5. Close the loop: receipt, status updates, repeat orders

If one of these five jobs is broken, you lose revenue you cannot recover. The stack below makes all five visible in one admin.

The components

Ordering layer: web + WhatsApp

The web menu is the source of truth for the catalogue. WhatsApp Cloud API (see our complete guide) syncs to the same catalogue. Customers order on whichever feels easier; the admin shows both channels in one inbox.

Payment layer: M-Pesa STK push first

Daraja STK push (see our Daraja guide) is the default. Card is added later via Flutterwave or DPO. Cash on delivery is supported via a flag on the order; the rider collects, marks paid in their app, and the system reconciles in the evening.

Operations layer: a finite-state order lifecycle

Every order moves through fixed states:

  • PLACED → customer paid (or cash flagged)
  • ACCEPTED → kitchen confirmed
  • PREPARING → cooking, packing
  • READY → waiting on rider
  • OUT_FOR_DELIVERY → rider assigned, on the way
  • DELIVERED → confirmed by customer or rider
  • CANCELLED or REFUNDED as alternates

Every state change triggers a WhatsApp message to the customer and an SMS fallback. The admin shows the full pipeline by status so the manager can see "5 orders preparing, 2 ready, 3 with riders" at a glance.

Inventory layer: ingredient-level deduction

For food, "1 burger" deducts "1 bun, 1 patty, 1 slice cheese, 50g lettuce". This is what Shopify cannot do natively. Custom builds handle it cleanly. When ingredient stock drops below threshold, the item auto-marks unavailable on the menu.

Delivery layer: pick your tier

Three tiers, increasing in cost:

  • Tier 1: WhatsApp dispatch. Rider receives a WhatsApp message with order details and customer pin location. Free to operate. Works for under 20 deliveries per day.
  • Tier 2: Rider app. Custom mobile-web app (no app store required) where riders see their queue, mark statuses, capture delivery photos. Adds KES 500 to 1,500 in dev time, ongoing cost minimal.
  • Tier 3: Real-time GPS. Live map for ops + customer. Google Maps API and rider battery cost real money. Skip until you are doing 100+ deliveries per day.

Reporting layer: the three reports that matter

  • Daily Z-report: total revenue, paid vs unpaid, top 5 items, items 86'd (out of stock).
  • Weekly cohort: new customers vs repeat, average basket, top zones, delivery time average.
  • Monthly profit: revenue minus ingredient cost minus delivery cost minus fees. The one that matters.

What we do not recommend (and why)

  • Standalone POS systems with online add-on. They rarely sync correctly. Get an integrated stack from day one.
  • Building your own rider GPS app before you have 50 orders/day. Cost-benefit does not work.
  • Glovo as primary channel. Use Glovo for discovery, own channel for margin.
  • Excel as the inventory layer. One missed update loses an entire shift's revenue.

What this costs to build

Angazé's Stack covers the web ordering, WhatsApp ordering, M-Pesa STK push, inventory, and Tier 1 WhatsApp dispatch at KES 1,500/month + 1% per transaction. If you want it set up for you, Studio (KES 80,000 flat) ships it in 2 to 4 weeks.

Most food businesses we work with start at Growth and graduate to Scale after 6 months. We migrate the data so nothing is lost.

If you are running a Nairobi food, grocery, or delivery-first business and any of the five jobs above is currently broken, send us a message and we will scope the fix within 48 hours.

Common questions

Should I use Glovo or build my own delivery?

Glovo takes 25 to 35 percent of every order. For high-margin items (drinks, baked goods) the math works. For low-margin items (groceries) it does not. Most operations are best served by a hybrid: own ordering channel + Glovo as a discovery channel only.

What does a Nairobi delivery stack cost monthly?

For under 100 orders/day: ~KES 8,000 to 15,000/month including hosting, WhatsApp API, SMS, and basic rider management. Glovo would take roughly KES 60,000/month on the same volume. The build pays for itself in month 2.

Do you integrate with Sendy or Pickup Mtaani?

Yes for both. Sendy works well for inter-city deliveries with proper API. Pickup Mtaani is API-light but we handle the workaround with WhatsApp message templates to their dispatch desk.

Can riders be tracked in real time?

Yes, but it costs more than people expect. Real-time GPS tracking needs riders running a custom app (we build this) plus Google Maps API at ~KES 8,000/month for moderate volume. Most clients start without it and add it month 4 to 6.

Keep reading

Next step

Want this kind of thinking applied to your operation?

Book a 20-minute call. We map the friction and quote a fixed price within 48 hours.