Padie's Cakes
Custom cake bakery, Greater Toronto Area
Orders now arrive fully spelled out — flavour, size, filling, date — and land in one dashboard the bakery runs from. No DMs to decode, no notebook, no wondering who still owes money.
The Problem
What they needed
Every order used to start a conversation. A customer would message on Instagram or call, and then came the back-and-forth: what flavour, what size, what filling, any allergies, what date do you need it. Ten messages later there was an order — living in a phone, a text thread, and a notebook, all at once. Nothing was in one place, so a due date could quietly slip past, and questions like "how did last month actually go?" or "who hasn't paid me yet?" meant scrolling back through months of messages to piece an answer together.
What I Built
Architecture & decisions
The technical detail behind the build — what was built, and why.
The menu belongs to the bakery, not to me. Products, categories, flavours, sizes, and fillings all live in Sanity CMS, which is a simple editing screen Padie can open on her phone. Adding a new flavour, changing a price, or retiring a product takes seconds and shows up on the live site immediately — no developer, no waiting, no version of the site that's out of date with what she's actually selling.
On the customer's side, each product is a small builder rather than a plain "add to cart" button. Flavour chips, a size selector, filling options, dietary add-ons that each carry their own price, colour and notes fields, and quantity. The point is that by the time an order reaches the bakery it is already complete. The conversation that used to take a dozen messages now happens on the product page, and Padie receives a decision instead of a starting point.
The cart remembers people. It's saved to the customer's own browser, so someone who gets distracted halfway through and comes back tomorrow still has their cake waiting. It's also smart about repeats — order the same cake in the same flavour with the same add-ons twice and it bumps the quantity to two rather than stacking two identical lines that look like a mistake.
Checkout protects the schedule. The date picker enforces a real lead time — three days for standard orders, seven for cakes — so no one can book something that physically can't be baked in time. There's also a closure window: one setting sets a date range for a vacation or a holiday rush, and during it the site stops accepting new orders and says so up front, rather than letting orders in that would have to be turned down later.
Every successful order sends two emails through Resend, both properly designed rather than raw text. The customer gets a confirmation that reads like a receipt, which is what stops the "did that go through?" follow-up message. Padie gets the full order spec in her inbox, so she knows what came in without having to open anything.
The dashboard is private, behind a single owner login. It opens on every order, newest first, with a status dropdown — pending, confirmed, completed, cancelled — that updates the moment it's clicked instead of making her wait on a page reload. Opening an order shows the whole thing, including the money side: whether it's unpaid, on deposit, or paid in full, how much the deposit was, how much has come in, and an editable date if the customer moves the pickup.
The rest of the dashboard exists to answer questions at a glance. A revenue chart shows the last six months side by side, with the totals calculated by the database itself so it loads instantly no matter how many orders have piled up. Cards across the top show orders this month, revenue this month, and the total still owed to her. A banner flags anything due in the next three days, and a monthly calendar lays out due dates so a busy week is visible before it arrives instead of during it.
Three last pieces close the loop. Manual order entry lets her add the orders that still come in by phone or Instagram DM, so those sit alongside the online ones and nothing lives outside the system. A one-click CSV export hands her accountant a clean spreadsheet of every order — correctly formatted, so it opens in Excel or Google Sheets without mangled rows. And a customers page builds itself from the order history, grouping every order by the email that placed it, so she can see who's a regular without ever maintaining a contact list.
Results
What it delivered
Orders arrive complete
Flavour, size, filling, dietary needs, and date are all captured at checkout — replacing the dozen-message back-and-forth that used to precede every single order.
Menu changes in seconds
New flavours, products, and prices are published straight from the bakery's own editing screen. No developer, no deploy, no lag between the real menu and the website.
One screen runs the bakery
Orders, payment status, unpaid balances, six months of revenue, and what's due this week — all in one place, instead of split across a phone, a notebook, and a spreadsheet.
Walkthrough
See it in action
Want to talk about a project like this?
Book a free call and let's see if I'm the right fit for what you're building.