Custom cake orders with deposits and date caps
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 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
-
Invoicing for freelance film crew
Freelance film crew hand-build invoices with day rates, kit fees, OT, and per diems; generates production-ready invoices from a simple call-time log.
Market read pendingWe are still researching this idea. -
Auto-generated graphics for youth sports leagues
Youth leagues wrangle Canva every single week; auto-generates schedule, matchup, and result graphics for every team straight from the fixture list.
Market read pendingWe are still researching this idea. -
Lead-first analytics for local businesses
Plausible tells local businesses pageviews, not jobs; cookieless analytics that ties visits to calls and quote forms so owners see which channel pays.
Market read pendingWe are still researching this idea. -
Restaurant websites built from the menu
Restaurant sites rot because menus change weekly; snap the menu and get a full site with schema markup, hours, and ordering links that stay in sync.
Market read pendingWe are still researching this idea.