Product design Development iOS

bakebook

An app for bakers to develop their recipes, not just store them.

I designed, built and shipped it to the App Store, solo.

Role
Designer + developer
Timeline
Designed 2024 Developed 2026
Research
3 studies 17 participants
Constraint
Self-directed, unfunded
Status
Live on iOS Android in progress

Built with

Design
Figma · Illustrator
Front end
HTML · CSS · JavaScript, no framework
App shell
Capacitor · Xcode
Backend
Firebase: Auth, Firestore, Cloud Storage, Cloud Functions, Hosting
butter
Claude Sonnet via the Anthropic API, proxied through a Cloud Function so the key never reaches the device
Development
Claude Code
Shipped via
TestFlight · App Store Connect
A recipe screen: Vegan Berry Cake, with a versions row listing two variations, and an ingredients table with cup and gram toggles.
The bakebook recipe library: a grid of the baker's own photographed bakes, several marked with a variation or bake count.
butter drafting a whole recipe in conversation, with a save card summarising its parts, ingredients and steps.
2026 rebuild

The initial design sat for two years

About three weeks from restarting to the App Store.About three weeks from Claude to shipped

Building it myself changed how I designed. I stopped asking what would be good to have and started asking what the data has to look like.

the apprebuilt from scratch, shipped on iOS
butteran AI chatbot turned recipe development agent
the identitya full redesign

User study a week in the live app

5 bakers Jul–Aug 2026

butter worked. That was the problem.

butter rewriting a recipe's method: removed steps struck through in red, added steps marked in green, ending with a confirmation that the recipe was updated.
what none of them found

Three of the five asked butter for single swaps: I’m out of sour cream, can I use buttermilk? They got good answers every time. Two never opened it. Then one found out it could read her whole tiramisu recipe and tell her how to push it brighter. It had been able to do that all week.Three asked butter for single swaps. They got good answers every time. Two never opened it. Then one found out it could read her whole tiramisu recipe and tell her how to push it brighter.

Nobody had run into a limit. Every easy question got answered, and no one pushed for a harder one. That is mine to fix, not theirs. The redesign made butter’s range visible from the recipe screen.Nobody had run into a limit, or even pushed near it. That is mine to fix, not theirs. The redesign made butter’s range visible from the recipe screen.

What it cost

I built capability into butter and failed to make it visible.

Capability that can’t be seen from the surface it lives on may as well not be built yet.

2026 identity

They were reading the app before they ever opened it.

“More like making a recipe vegan, or gluten-free.”a baker, asked what she thought butter was for

BeforeTerracotta and a friendly serif said grandma’s recipe book: cozy and homemade, not a lab.

ProblemThat identity made butter feel narrower and softer than the product actually was.

What it was

Fraunces + Nunitonine warm neutrals, a serif with history

DecisionA midpoint between precise and warm reads lukewarm, so each got a job: teal and mono hold the structure, cream and sans hold the soul.

the tablespoon lines on a stick of butter

The app icon on the App Store: a single cream lowercase b on a terracotta ground.→The redrawn app icon: the teal measurement mark as a vertical rule, a charcoal b and a terracotta b, on cream.

the redraw ships in the next release, untested so far

structure
#007E9C
ink
#1E1714
accent
#A8432B
ground
#F6F4EE

Source Code Pro + Source Sans 3together they read as a lab book

Decisions v1 → v2

01

Data model

A variation isn’t a different type of object. It’s a recipe with a parent.

Variation { … }

Recipe { parentId → Recipe }

Variations started as a separate object, then immediately needed everything recipes already had: scaling, notes, versions. Keeping two models meant building every feature twice.
Users see a file inside a folder. Underneath it’s the same object.

A storage decision, caught before any code
02

Assistant

butter needed memory before it could give better answers.

v1 2024 concept
The 2024 butter design: an empty conversation opening on a generic greeting, 'hi, baker! butter here, your friendly baking assistant, let's create something delicious together', above an empty message field.
The 2024 concept, fixed in the rebuild
v2 shipped 2026
butter open on a recipe: a conversations control, a greeting reading 'ask me anything about Black Sesame Cake — substitutions, ratios, technique, or what went wrong', and an answer reasoning about the ratio of sesame paste to yogurt.

02 why it changed

Bakers develop a recipe on and off over weeks. An assistant that forgets the thread is useless for iteration, so the conversation had to become a stored object. That is why the conversations tab exists: it came out of a storage decision, not a UI one.

butter now reads

  • the recipe
  • its versions
  • its variations
  • the conversation history

A thread can be picked back up three weeks later.

03

Navigation

Categories were a filter wearing a page's clothes.

2024 concept2026 shipped, July2026 next release
The 2024 hi-fi design: recipes and categories sit side by side as two tabs. The categories tab is selected, with a search-my-categories field and rows for cakes, cookies, vegan, specialties, pies and family, each with a recipe count.
2024 concept A page, with its own tab
The July 2026 App Store build: the same two tabs, categories still selected, rebuilt as a grid of image-backed category cards with recipe counts.
2026 shipped, July Still a page: rebuilt, not reconsidered
The current build: the categories tab is gone. A sort control reading 'by category' sits beside the search field, grouping the recipe list into rows headed Cakes, Cookies and Quick Breads.
2026 next release A value in the sort control
A page, with its own tabStill a page: rebuilt, not reconsideredA value in the sort control

The only one I shipped before I cut it

03 why it changed

I knew while I was rebuilding it that categories didn’t deserve a destination. I kept it anyway, because I wanted to watch it working before I took it out.

The home screen’s most valuable pixels should serve the highest-frequency action, browsing and opening recipes, not a filing system you touch occasionally.

The free plan caps the collection, not the quality.

butter costs money every time it answers, so the free plan has two limits: four chats a day, and fifteen recipes.

Fifteen caps what you keep, not what you do with it. Variations are free and unlimited. Chats reset every morning.

Charging for development would have been charging for the thing the product is for.

The bakebook+ paywall: 'unlock the full baking lab', listing three benefits (continuing to chat with butter, a bigger recipe library, and everything in the baking lab) above a yearly plan at $44.99 marked best value and a monthly plan at $4.99.
both limits, one upgrade
butter at the end of a long session, telling the baker it will keep helping in quick mode for now so they don't slow down, and to come back tomorrow for full deep-dive mode again.
bakebook+, past twenty chats: butter slows down instead of stopping
1designer + developer
17bakers 3 studies
2–7recipes created per participant during live-app testing
LiveiOS App Store

In the 2026 study, import-from-photos and quick scaling were both named unprompted as favorites. One baker called it something she was “very excited to use as I perfect my recipes for the farmers market.”

Usage metrics coming soon.

The original concept stored recipes. The shipped product helps bakers develop them.

Explore 2024 design
2024 concept

2024: Concept through hi-fi design

Six weeks

Bakers change things across attempts: ingredients, method, timing. Those changes are the first thing to get lost. I designed bakebook around that loop.

make→bake→log→tweak→repeat
The 2024 moodboard: vintage cookbook spines in gingham and checks, a 1920s Giggle Water cover, mid-century recipe pamphlets, and three well-used handwritten recipe binders, one with a pocket watch and reading glasses, one stuffed with loose cards, one with a birthday note taped inside.
the 2024 moodboard, where the palette came from
2024 research

Study 01 what the questionnaire decided

Asking
How do you save, change, scale, and come back to a recipe?

Cut

A social recipe feed.

  • public posting
  • comments
  • likes
  • saving other people’s recipes off a wall
3/10

interest ratingfrom the few who had any

I wrote it into the concept before I asked anyone. Seven answers ended it, and it was never built.

Kept

  1. Recipes lived on notepads and scraps, and got lost.

    “I generally write down recipes on notepads and scraps of paper because I know I’m going to make corrections. Then I tend to lose track of the recipe later.”

    Steve, 32 home baker

    a searchable library

  2. They changed recipes mid-bake, then forgot what they’d changed.

    the Log Book

  3. Scaling and substituting created uncertainty they Googled their way out of.

    scalingunit flexibilityeventually butter

They weren’t trying to publish recipes. They were trying not to lose their own work.

Study 02 what testing found

Tasks
Add a new recipe, revise it, then scale it.

Layer oneBuilt

Somewhere to keep a recipe

Structured storage: recipes, versions, variations, the Log Book.

What the test showedBakers built a recipe without help. Two asked for the Log Book without being prompted.

Layer twoDidn’t exist

Help changing a recipe

Nothing could read a whole recipe and answer what happens if I change this.

What the test showedAll five left the app to look up substitutions, then came back and typed the answer in by hand.

2024 structure

I worked out what the app was made of before I designed a single screen.

A whiteboard covered in hand-written columns: ingredient, method, category, log book, added ingredients, recipes, recipe, new log, note. Each has its properties and the actions available to it, alongside small sketched interface fragments.
every object, and what you can do to it
ingredientmethodrecipecategorylog booknote

Empty screen to finished recipe, in four steps.

Voice was designed in for accessibility and busy hands, then scoped out for a later release.

wireframe

Wireframe of the new-recipe screen: an image placeholder, recipe name and description fields each with a microphone, category selection, and an add-ingredients button.
new recipe
Wireframe: a searchable ingredient grid, the search field carrying a microphone icon.
ingredients
Wireframe: numbered method steps, each step with its own microphone icon, ending on two buttons: save in personal recipe book, and save and share with community.
method

This wireframe came after the questionnaire. Sharing is still in it. I had thought of it first, and that took a while to let go of.

Wireframe of a finished recipe: an ingredients table with cups/grams and 1x/2x/custom scaling, then the numbered method.
recipe

hi-fi

The same screen designed: a plated dessert photograph above recipe name and description fields, each still carrying a microphone, then a category dropdown and an add-ingredients button.
new recipe
The same screen designed: the ingredients already added listed as editable rows with a quantity and a name, above the same grid of ingredients, each card now carrying a unit dropdown and a quantity stepper.
ingredients
The same screen designed: the numbered steps and their microphones are unchanged, a view-ingredients link sits beside them, and the two save buttons have become one, save recipe.
method
The same recipe designed: a photograph and a one-line description, cake and frosting tabs, then the same ingredients table, cups/grams over 1x/2x/custom, and ten ingredients in grams below.
recipe