Custom cake orders with deposits and date caps

Micro-SaaSWeb1 monthNext.jsSupabaseStripe

The idea

Custom cake ordering currently lives in Instagram DMs: thirty messages to pin down size, flavour, and price, then a Venmo request the customer may or may not pay, then a Saturday no-show that wastes ingredients and a slot another customer wanted. Cottage bakers are running real businesses through a chat interface with no deposits, no capacity control, and no record of what was agreed.

Generic form builders cannot do the two things that matter here: grey out dates that are already full, and compute a price from a size-flavour-decoration matrix. Both are straightforward to build and together they convert DM chaos into a booking system. The deposit alone sells the product, because one ghosted wedding-adjacent cake costs more than a year of subscription.

Who pays

The baker pays $15/month. The buyer is a cottage-licence baker doing 5 to 15 cakes a month who has been burned by no-shows at least once, which is nearly all of them. Distribution is Instagram itself: every order form link in a baker’s bio is an advert to the other bakers who follow them, and cake decorating Facebook groups are large, active, and constantly complaining about exactly this problem.

MVP scope

  • Public order form with capacity-aware date picker that greys out full dates
  • Pricing matrix editor and live auto-quote on the form
  • 50% Stripe deposit at submission with approve/decline and auto-refund
  • Printable pickup-day run sheet per date
  • Balance payment link emailed before pickup
  • Skip for v1: custom domains, SMS notifications, multi-baker accounts, delivery routing, and any design/sketch tools
// Build prompt — paste into Cursor / Claude Code / Lovable / Bolt
Build CakeDesk, an order intake app for home bakers. Stack: Next.js (App Router), Supabase (Postgres, auth, storage), Stripe for deposits and subscriptions.

Core flow: the baker configures their menu as a pricing matrix (size x flavour x filling x decoration tier, each with a price component) and sets weekly capacity, e.g. maximum three cakes per weekend. A customer opens the baker's public order page, picks a pickup date from a calendar where fully booked dates are greyed out, selects options, uploads inspiration photos, and sees a live auto-calculated quote. Submitting requires paying a 50% deposit through Stripe Checkout; the order only reserves capacity once the deposit clears. The baker approves or declines within 48 hours; declining auto-refunds.

Pages: baker dashboard (upcoming orders by pickup date), order detail, menu/pricing editor, capacity calendar, public order form at /b/[slug], settings, billing. Include a pickup-day run sheet: a printable page per date listing every order with flavours, decorations, photos, and balance due.

Non-obvious details: hold capacity for 20 minutes while a customer is in Stripe Checkout so two people cannot book the last slot; use a Supabase row-level lock or a reservations table with expiry. Balance payment is collected via a Stripe payment link emailed 3 days before pickup.

Pricing: $15/month for the baker, unlimited orders. Stripe fees pass through on customer payments.

// More Micro-SaaS ideas