A modern, high-performance artisanal e-commerce web platform for a boutique bakery. Features small-batch slot scheduling, bespoke cake customization, multi-tier pricing, Razorpay checkout, and an admin operations hub with drag-and-drop media reordering.
- 0
- technologies
- 0
- shipped features
- 0
- screens
- 0
- decisions logged
No public repository for this project

7 sections below
A bespoke e-commerce platform engineered specifically for Ani Bakes, a premium artisanal boutique bakery. Designed to solve complex logistical challenges unique to fresh-baked goods, the platform handles small-batch delivery scheduling, interactive bespoke cake customization, multi-tier pricing calculations, and fully automated order notifications via WhatsApp and SMS. Built with React 19 and TanStack Start, the application achieves sub-second page loads through server-side rendering while delivering a fluid, responsive client experience styled with a tailored Tailwind CSS design system.
- Engineered an interactive cake customizer with real-time price calculations across tiers, flavors, and add-ons.
- Integrated Razorpay checkout with webhook-verified payment reconciliation and automated refund handling.
- Implemented a small-batch capacity scheduling engine that prevents overbooking on high-demand dates.
- Designed an admin operations hub with drag-and-drop media reordering and real-time inventory toggling.
The section above says what this does. This one says why it is built the way it is — including the parts that did not come free.
- Calculate on the server from the raw selectionsoverCalculate the price in the browser and send it to RazorpayFix the price per tier, no live customisationBecause
A price computed in the browser can be edited in the browser. Recomputing it server-side before it reaches Razorpay means the number a customer pays is the number the bakery actually meant to charge.
What it costThe customiser feels a beat slower than a pure client-side calculator would — every price update is a real request to the server, not instant local arithmetic.
- Lock and re-check capacity inside the order transactionoverTrust the client not to double-bookCheck availability once, on page loadBecause
A slot that was available when the page loaded can be gone thirty seconds later. The only way to guarantee no overbooking is to make the availability check and the booking the same atomic operation.
What it costOn a genuinely busy day, checkout on a popular slot serialises — the second customer's request waits for the first one's transaction to finish.
- Treat the webhook as the only source of truthoverMark the order paid as soon as the checkout redirect returns successPoll Razorpay's API after redirectBecause
A checkout redirect can report success even when payment later fails verification, or the reverse on a flaky connection. The webhook is Razorpay's own signed confirmation, so trusting only that keeps 'this order is paid' meaning exactly what it says.
What it costThere's a short window — usually seconds, occasionally more if webhook delivery lags — where a customer has paid but the order still shows pending in the admin panel.



Every page of the design on one canvas — zoom and pan to explore.







// documentation is hidden by default to keep the page light
// slide deck is hidden by default to keep the page light
Seen enough?
There are more where this came from — or skip the browsing and just say hello.