Shubh Restaurant & Takeaway
SHUBH
Product design and build for an Auckland Indian restaurant, working with the owner as a design partner. The work spans both sides of the business: an editorial ordering site with weekly tiffin subscriptions, and an internal operations cockpit that turns invoice and POS chaos into spend, margin and forecasting intelligence.
Project Overview
Shubh is a long-running Indian restaurant and takeaway in Sandringham, Auckland. The kitchen was thriving, but the business ran on whiteboards, spreadsheets and memory. Stock was reordered only when someone noticed it running low, vendor price rises went unnoticed until the invoice landed, and there was no clear view of spend or margins. I partnered with the owner to design and build a single system that serves customers out front and runs the business behind the scenes.
Role & Responsibilities
I led product design and built the platform end to end: discovery and user research, UX and interface design across both the customer site and the internal tools, and the full-stack build in Next.js, Payload CMS, Postgres and Stripe, with AI-assisted coding. The brand identity was supplied; I designed and built every screen and system around it, from the ordering flow to the operations cockpit and the automation behind it.
Discovery with a real design partner
I started by shadowing the operation: three kitchens, a walk-in line of takeaway customers, low-stock notes scrawled on a whiteboard, and a year of vendor invoices sitting in an inbox. The owner's priorities became clear once I listened for them. Forecast what to buy and when, see how vendor prices were drifting, and stop running the business in permanent catch-up. Those conversations set the scope for everything that followed, including the move to a modern POS the data could build on.
An editorial storefront
The customer site treats a neighbourhood takeaway like a restaurant worth lingering on: warm, unhurried, photography-forward. It carries the menu, the story, a gallery of the day's cooking and the practical details, all editable by the owner through a headless CMS.



Online ordering and the Tiffin Club
Two revenue paths sit on the same site: pickup ordering from today's kitchen, and a weekly tiffin subscription with skip-a-week and cancel-anytime built in. Both run on Stripe, with the cart, plans and availability driven by the same data the kitchen sees.



Shubh Ops: the operations cockpit
Behind the login is Shubh Ops, an internal cockpit built for the way the owner actually works. The dashboard answers the morning's questions at a glance: what needs handling today, which deliveries have exceptions, how much capital is tied up in stock that needs reordering, and what to act on before the lunch rush.

Spend, vendors, purchases and the menu
Vendor invoices and POS sales flow into a set of intelligence views: spend over time with price-drift alerts, vendor scorecards ranked by spend and concentration, a searchable invoice ledger, and a live menu where every dish's price and availability is managed in one place. Work that used to live in a shoebox and a spreadsheet now answers questions in seconds.




Invoices in, intelligence out
The intelligence is only as good as the data feeding it, so the system ingests invoices automatically: pulling PDFs from the inbox, extracting line items, prices and GST with a vision model, and normalising the same product across vendors into a single canonical item. A year of paper in an inbox becomes structured, queryable history that nobody has to type in.
Hermes: the back office in a Slack message
The cockpit answers questions if you go and look; Hermes brings the answers to where the owner already is. It is a Slack agent, built on the Hermes agent framework and wired into the same data and the CMS, so running the business can happen in a sentence or a voice note. Ask it a plain-language question and it queries the live data: what paneer cost last month, which vendors are creeping up, how the week sold. Send it a voice message and it updates the website through the CMS, adding a dish, changing a price or swapping a gallery photo, and shows each change back for a one-tap confirm before anything goes live, so nothing is altered between the request and the approval. It also posts the week's maintenance tasks into a shared Slack channel where any staff member can claim and tick off a job as they see fit, turning a whiteboard nobody owned into a visible, accountable list. Customer details are stripped out before the model ever sees them.