Online kitchen ordering
A daily menu for a food business in Accra, where the cart ends in WhatsApp and the kitchen controls what is available.

Context
Kelly's Eatery is an online kitchen in Accra cooking jollof, fried rice, soups and swallow for delivery. Orders were arriving as WhatsApp messages with no menu to point at, which meant repeating prices and availability by hand all day.
The problem
- What is available changes daily. A static menu is wrong by lunchtime and costs the kitchen a conversation every time.
- Customers were already ordering on WhatsApp, so any flow that moved them somewhere else would lose them.
- Bulk orders for events need a day's notice and do not fit the same path as a single plate.
- Prices had to be unambiguous in cedis, including extras, before a customer committed.
What I did
A menu the kitchen controls daily
25 dishes across rice and pasta, soups, drinks and extras, each with its own availability. Sold-out items stay visible but unorderable, so customers see the range without being able to order what is gone.
A real cart that ends in a message
Quantities, extras and a running total in cedis, held across the session. The order composes into a prefilled WhatsApp message rather than a checkout, so payment happens in the conversation the kitchen already runs.
Open and closed as a first-class state
The site shows whether the kitchen is open now. Ordering outside hours is a dead end for both sides, so the interface says so instead of taking an order nobody will cook.
A separate path for bulk
Catering orders by the bowl with 24 hours' notice, kept apart from the daily menu so neither flow has to compromise for the other.
Calls I made
Cart first, WhatsApp last
A bare WhatsApp link means the customer types the order and gets it wrong. Building the cart properly and handing off a composed message gets accuracy without asking anyone to leave the app they trust.
Per-item daily availability instead of taking the item down
Removing a sold-out dish hides the range. Showing it greyed out tells a first-time visitor what this kitchen actually cooks.
No payment processing
The kitchen settles on WhatsApp through mobile money. Adding a gateway would have introduced fees and a step the customer did not ask for.
Where it landed
- Live site with a 25-dish daily menu across four categories.
- Orders arrive as structured WhatsApp messages instead of freeform text.
- The kitchen marks items sold out without a developer.
- Separate bulk-order path for catering.
Open for work
Got something that has to work on a bad connection, in a real shop, with real money?
Open to full-time remote roles, freelance projects and collaborations. Tell me what you are building and I will tell you honestly whether I am the right person for it.