Demonstration build
Copper Kettle Bakehouse
Copper Kettle Bakehouse is a made-up business we built to demonstrate the work. The site is live and you can try it. The numbers shown on it are illustrative sample data.

The problem
Copper Kettle Bakehouse runs a morning rush of drink and pastry orders with no way to order ahead, every customer waited in the same line whether they wanted a black coffee or a full round for the office, and there was no way to track loyalty beyond a paper punch card that got left at home half the time.
What we built
A warm café site with an order-ahead cart (drinks require a size, pastries never take one), a 15-minute pickup-slot grid with a 20-minute lead time, and a state-only loyalty punch card that fills after every 10 drinks and resets the instant a free one is earned.
Decisions & why
Inverse size validation, a drink must have a valid size, a pastry must have none, enforced as a silent no-op on either violation.
Drinks and pastries have opposite requirements, not just different ones, and the cart shouldn't half-apply a line that violates either rule. A silent no-op keeps a malformed add from ever reaching a real order, without needing a thrown error to catch it.
The same drink in two different sizes is kept as two separate cart lines, never merged.
A medium latte and a large latte are two different orders for the register to make, not one line with a confusing combined quantity. Keying lines on SKU and size together keeps the cart honest about what's being made.
Pickup slots are clamped to a 20-minute lead time on a 15-minute grid, closed Sundays, rolling to tomorrow's opening slot if the day's window has passed.
A pickup time offered with no lead time is one the kitchen can't hit during a morning rush. The lead-and-grid clamp keeps every offered slot realistic instead of quoting a pickup time that's already gone by the time the order prints.
Loyalty tracked as a pure function of lifetime drink count, with persistence kept entirely separate from the calculation.
Answering 'where does this punch card sit right now' shouldn't depend on how or where the count was stored. Keeping the math a pure fold of one number makes the exact boundaries, the 10th drink, the 20th, trivially verifiable, independent of the localStorage layer around it.
The result it aims for
The build aims to move the morning rush off the physical line into an order-ahead flow with a realistic pickup time, and to make loyalty progress something a customer can see on the spot instead of a paper card lost in a coat pocket.
This is the goal the build is designed to hit, not a measured client outcome.