Chad Holdorf
← All case studies
Bakery Buddy · AI SaaS, Built Solo

A full AI SaaS running a real bakery, live in 12 days.

Orders, inventory, recipes, payments, and an assistant on every screen. I built it alone with Claude Code, and it has run a working cake studio in San Rafael ever since.

RoleProduct, design, and every line of code
WhenJun 2026 to now
Next.jsSupabaseClerkStripe ConnectClaude APIVercel
12 daysfirst commit to live
860commits
111Klines of code
91app pages

The problem

My wife Lindsay runs Marin Cake Studio. Her business ran on Intuit for invoicing, MailChimp for email, a paper calendar, and her phone for everything else. She complained about all of it, constantly and correctly.

A customer texts at 9pm asking for a cake for Saturday. That message has to become a quote, an invoice, a deposit, a place on the calendar, a shopping list, and eventually a review request. Every one of those steps was manual, and every one happened after she had already worked a full day.

Bakery Buddy home screen: Buddy has drafted a reply to an overnight cake inquiry, waiting for approval
Two inquiries came in overnight. Buddy drafted the replies.

What I owned

All of it. Product, design, schema, code, deploys, and the support conversation with the one user who matters.

The thing I care about is not the feature list. It is that a product exec who ships code can now build and operate real B2B SaaS alone, and I wanted to know exactly where that claim breaks. Building it against a real business rather than a demo is the only way to find out.

How it actually went

  1. 01

    Live on day 12

    First commit to a real bakery running its real orders on it, in twelve days. Not a prototype in a branch. Her actual business.

  2. 02

    The assistant became the product

    I built the dashboard everyone builds: orders, customers, inventory, recipes, calendar, campaigns. Then I watched her use it and realized she does not want to click through six pages to learn she is low on butter. She wants to ask, or be told. Buddy calls real tools and returns live business data, so the numbers are real rather than generated.

  3. 03

    Automations that email real customers

    A daily engine drafts review requests and reminders, and she approves them. In the first week the review automation went out to nine customers and eight of them left a review. Nothing sends without her yes.

  4. 04

    Then it broke, in the ways real software breaks

    A nightly sync quietly marked paid customers unpaid. An agent ran out of tokens mid-tool-call and silently created nothing at all, which is worse than failing loudly. I found both and fixed both. That is the part a demo never teaches you.

Bakery Buddy Counter Mode: a voice-driven order ticket being built at the counter
Counter Mode. Take the order out loud, hands covered in flour.

What I would do differently

I shipped Counter Mode, a voice-first way to take an order at the counter without touching a keyboard, and I cannot prove a single counter sale has ever happened through it. Orders do not record where they came from.

I instrumented nothing, because instrumenting is boring and shipping is fun. So I have a feature I like, a story I want to tell about it, and no evidence. I would put source attribution on the order record before building the flow, not after.

What it is made of

Next.js on Vercel, Supabase with row-level security, Clerk for auth, Stripe Connect for direct charges onto the bakery's own account, Resend and AgentMail for mail, and the Claude API for everything Buddy does.

118 schema files and 8 scheduled jobs running nightly. It is a real application, with the boring parts included.