The all-in-one commerce platform for local business.
Take and run orders from everywhere your customers already are: chat, QR codes, and your own storefront.
Everything to run the business, on one screen.
No more stitching together five tools.
Your shop, answering in their language.
A conversation that takes the order, shows the item, applies the code and sends them to checkout, in whatever language your customer opens in. Cards and buttons included, while you carry on working.
- Answers in the language the customer opens in, cards and buttons included
- Understands “two please” without a menu number
- Sends the actual product photo and price
- Applies a discount code, or says why it can’t
- Hands over a checkout link when they’re ready
They type what they want. No menu tree.
La même commande, dans sa langue.
It only ever says what you have told it.
The reason shops trust it with their customers is that it cannot improvise. You write what it knows, and it stops where you tell it to.
Know what is left before a customer asks.
Count stock per item, or per size and colour. It comes off when an order is placed and goes back if that order is cancelled, so the number on screen is what you can still sell.
Sorted lowest first, the way the dashboard shows it. An item that reaches zero comes off your storefront on its own.
It tells you before it bites
When an item drops to the level you set, the owner gets a notification in the dashboard and a card in the ops chat. Every movement is recorded with a reason, so "we had sixty, we have twelve" is a question with an answer.
The day, in numbers you can act on.
Money in, orders, and where they came from, across every channel at once. Not one report per place you sell.
Every channel counted together. Pick any range and the whole screen follows it.
- WhatsApp148
- Storefront104
- QR service point60
And what to do about it
Best sellers, the customers who come back, and what is about to run out, on the same screen as the takings. Export any of it when your accountant asks.
The people doing the work get a ticket, not a notification.
The same order lands in your team's Telegram with the buttons that move it along. Whoever packs it, prepares it or takes it out acts from there. Nobody opens a dashboard mid-shift, and the board updates wherever the tap came from.
One tap, everywhere at once
Tapping Ready here moves the order on the dashboard, tells the customer on the channel they ordered through, and rewrites this card so nobody taps a button that has already been pressed.
| Fulfilment | Delivery · Amara O. |
| Payment | Paid · Paystack |
| Total | ₦38,000 |
| Cold Brew, 1L | ×2 | ₦24,000 |
| House Granola | ×1 | ₦14,000 |
Customer notePlease leave it with the concierge if I am out.
You name the groups. Each one sees only the buttons its role is allowed to press.
Everyone sees their own job, and nothing else.
A role decides which screens a person opens, which buttons they see on a ticket, and which group their work lands in. Caluchi ships the roles most shops need and lets you rename them to whatever you actually call them.
What you can do to a role
Owner, finance, driver
The ones the platform depends on
- Rename
- No
- Change permissions
- No
- Delete
- No
Kitchen, waiter, manager, cashier
Shipped with your store, yours to reword
- Rename
- Yes
- Change permissions
- Yes
- Delete
- No
Anything you make
Wash floor, pickers, front desk
- Rename
- Yes
- Change permissions
- Yes
- Delete
- Yes
| Role | Rename | Change permissions | Delete |
|---|---|---|---|
| Owner, finance, driverThe ones the platform depends on | Owner, finance, driver: Rename, No | Owner, finance, driver: Change permissions, No | Owner, finance, driver: Delete, No |
| Kitchen, waiter, manager, cashierShipped with your store, yours to reword | Kitchen, waiter, manager, cashier: Rename, Yes | Kitchen, waiter, manager, cashier: Change permissions, Yes | Kitchen, waiter, manager, cashier: Delete, No |
| Anything you makeWash floor, pickers, front desk | Anything you make: Rename, Yes | Anything you make: Change permissions, Yes | Anything you make: Delete, Yes |
Rename it and every screen follows
Call the kitchen Production and it reads Production on the roles screen, on the workflow that routes to it, in the channel picker and on the order itself. Underneath, the routing key never moves, so renaming a group cannot quietly send its tickets somewhere else.
Two people, one shift, different screens
A cashier sees payments and no catalogue. A driver sees the run and no takings. The dashboard hides what a person cannot use rather than offering doors that answer no, and the API checks the same rule again behind it.
Every change is on the record
Who renamed what, who was given which permission, and when. A rename is logged with both names AND the key that did not change, because the key not changing is half of what the entry means.
It knows when to stop and fetch you.
A refund, a complaint, or anyone asking for a person, and the agent steps out of the conversation. It does not keep replying alongside you, so a customer is never talking to a person and a machine at the same time.
| Customer | Amara O. |
| Came in on | Telegram |
| Telegram id | 5512309871 |
Amara O.This is the second time. Can I speak to someone please
No direct line on Telegram. Reply in the dashboard and it reaches them in the same chat.
The same card your team already gets for orders, in the group you chose for this.
You are told twice, on purpose
In the dashboard, so every store sees it whether or not they use Telegram, and in your ops chat if you have one connected. Both carry a link into the conversation and a way to reach the customer directly.
You reply as the shop
Answer from Conversations and it goes out on the channel they were already using, under your name. Nobody is moved to email and nobody starts again. Close it and the chat goes back to the agent, with the whole exchange kept.
You decide what counts
Which situations trigger a handover is a knowledge topic you write. The templates include one covering what most shops escalate: anything about illness or safety, disputed money, and anyone who has asked twice.
A code on the table, the room, the locker.
One scan and the phone already knows which shop, which point, and what that point is allowed to take payment in. No app, nothing to type, no asking a customer which table they are sitting at.
- 01
They scan
A camera and a printed code. Nothing to install, and nothing to type, which is what makes it work for the customer who would otherwise wave someone down.
- 02
The point identifies itself
The code resolves to one point, so the order arrives already labelled Table 12 or Room 407. Nobody writes it down and nobody guesses.
- 03
A session opens
Scan again an hour later and it is the same session, so a second round joins the first order rather than starting a stranger's.
- 04
They keep a link
Checkout hands back a tracking link, minted before payment so the gateway returns them to their own order rather than your home page.
- The shop
- Name, currency, logo
- The point
- Table 12 · seats 4
- Look and feel
- Your theme, colours and typeface
- Payment
- Only what this point allows
- Session
- Open · started 19:42
- Requests
- Call someone, ask for the bill
All of it from the code alone. A scan carries no sign-in and no store header, so anything not resolved here is something a customer would have to be asked.
One session, however many rounds
A point holds one open session at a time. Everything ordered from it joins that session until somebody closes it, so the bill is the evening rather than the last thing anyone tapped. Close it and the next scan starts clean.
The customer can watch it themselves
The tracking link works without an account and follows the same steps your team taps, so nobody has to ask how long it will be. It is the same link whether they scanned a code, ordered on WhatsApp or bought from your storefront.
One engine. Your words for the work.
You set the steps an order moves through, who may take each one, and what the customer hears when it happens. Five trades below, the same Caluchi, nothing in common but the shape.
Orders land with the kitchen, the front of house serves, and a rider takes what is going out.
- 1Accepted✅ Acceptgoes toKitchencustomer hears“We have got your order.”
- 2Cooking🍳 Start cookinggoes toKitchencustomer hears“It is on the stove.”
- 3Ready🛎️ Readygoes toFront of housecustomer hears“Ready in about 5 minutes.”
- 4On its way🛵 Picked upgoes toRiderscustomer hears“Your rider is on the way.”
Measured from the taps themselves, so it is what the shop actually does rather than what it meant to do.
Nobody presses the wrong button
Every step names the roles allowed to take it, so a group only ever sees the buttons it may press. Change a step and orders already in progress keep the version they started on, because an order halfway through should not lose its next step because you edited the workflow.
The studio makes it to order, the bench packs it, and the courier collects. Same board, different trade.
- 1Accepted✅ Acceptgoes toStudiocustomer hears“Thank you, we have your order.”
- 2In the studio✂️ Start makinggoes toStudiocustomer hears“We are making yours now.”
- 3Packed📦 Packedgoes toPacking benchcustomer hears“Packed and labelled.”
- 4With the courier🚚 Handed overgoes toDispatchcustomer hears“On its way, tracking below.”
Measured from the taps themselves, so it is what the shop actually does rather than what it meant to do.
Nobody presses the wrong button
Every step names the roles allowed to take it, so a group only ever sees the buttons it may press. Change a step and orders already in progress keep the version they started on, because an order halfway through should not lose its next step because you edited the workflow.
A bag is collected, weighed, washed and pressed, then dropped back, with the customer told at every turn.
- 1Booked✅ Acceptgoes toFront deskcustomer hears“Booked. We will collect today.”
- 2Collected🚗 Collectedgoes toDriverscustomer hears“We have your bag.”
- 3Washing🧺 Start washgoes toWash floorcustomer hears“In the machines now.”
- 4Out for return🚗 Out for returngoes toDriverscustomer hears“On the way back to you.”
Measured from the taps themselves, so it is what the shop actually does rather than what it meant to do.
Nobody presses the wrong button
Every step names the roles allowed to take it, so a group only ever sees the buttons it may press. Change a step and orders already in progress keep the version they started on, because an order halfway through should not lose its next step because you edited the workflow.
A guest orders from the room or the poolside, the kitchen sees the room number, and it lands on the folio.
- 1Accepted✅ Acceptgoes toRoom servicecustomer hears“Thank you, we are on it.”
- 2Preparing🍳 Start preparinggoes toKitchencustomer hears“Your order is being prepared.”
- 3On the way up🛎️ Taking it upgoes toRoom servicecustomer hears“On the way to your room.”
- 4Charged to the room🧾 On the foliogoes toFront deskcustomer hears“Added to your room bill.”
Measured from the taps themselves, so it is what the shop actually does rather than what it meant to do.
Nobody presses the wrong button
Every step names the roles allowed to take it, so a group only ever sees the buttons it may press. Change a step and orders already in progress keep the version they started on, because an order halfway through should not lose its next step because you edited the workflow.
A picker walks the aisles, substitutes what is out, and the customer approves the swap before anyone drives anywhere.
- 1Accepted✅ Acceptgoes toStore teamcustomer hears“We have your list.”
- 2Picking🛒 Start pickinggoes toPickerscustomer hears“We are walking the aisles.”
- 3Swap approved🔁 Ask about a swapgoes toPickerscustomer hears“The oat milk is out. This one instead?”
- 4Out for delivery🛵 Out for deliverygoes toDriverscustomer hears“On the way, about 20 minutes.”
Measured from the taps themselves, so it is what the shop actually does rather than what it meant to do.
Nobody presses the wrong button
Every step names the roles allowed to take it, so a group only ever sees the buttons it may press. Change a step and orders already in progress keep the version they started on, because an order halfway through should not lose its next step because you edited the workflow.
Drag your own workflow into shape.
Your shop does not run the way ours does, and it should not have to. Open the builder, drag the stages where you want them, draw an arrow from one to the next, and name each one in your own words. Start from a template if you would rather not start from nothing.
- PendingWhere an order lands
- AcceptedKitchen, Manager
- PreparingKitchen
- ReadyKitchen
- Picked upRider
- DeliveredRider
Your words, not ours
Rename Kitchen to Press room and it reads Press room everywhere an owner looks — including the screen that routes tickets to it. The routing key underneath never moves, so a rename can never quietly reroute a ticket.
One arrow, not the whole step
Cancelled is reachable from four stages, and that is one step with four arrows. Delete one arrow and the other three stay — the step only goes when its last arrow does.
Start from a template
Deliver, collect or serve on the premises. Preview any of them on the same canvas first, then adopt it and change whatever does not fit.
It refuses to let you build something broken
A stage nothing leads to, a step that starts nowhere, two stages with the same name: the builder marks them before you can save, rather than the API refusing the whole thing afterwards with one message that does not say which step was wrong. Orders already in progress keep the version they started on — editing your workflow should never strand an order halfway through it.
Live in three steps.
Built for the way local businesses actually run.
One platform, tuned per vertical: a table QR at a restaurant, a rider run from a pharmacy.
Get paid your way.
Every major processor for online payments, plus cash, bank transfer and POS for paying in person, on every plan including the free one. Settlement in your country and currency, per store.
Stop juggling tools. Start taking orders.
Fewer missed orders, one screen, paid faster. Start free, and bring your team when you're ready.