From a weekend pottery site to a 24-package iOS app.
Most case studies show the polished product. This one shows the path. Heirloom didn’t arrive in iOS finished — it crossed four prototypes and one pivot to get there. Each phase taught the next.
PHASE 0 · JAN 2026 · THE SPARK
Pottery
The first thing I built after Claude Code and Cursor arrived was a giveaway site for pieces from my pottery practice. Colleagues could browse, pick a piece, and drop a shipping address. One weekend. Static HTML + JS + EmailJS. No backend, no auth, no story arc.
The point wasn’t the site. The point was I had built something. After years of leading through others, that mattered more than I expected.
I had this power of making a thing, and it started to build up. I was always a maker before. I just missed making stuff.
PHASE 1 · FEB 2026 · WEB · THESIS TEST
Shopping Lab
Before Heirloom was an iOS app, it was a web demo. The hypothesis: people don’t have a recipe-storage problem so much as a cooking math problem — aggregating ingredients across multiple recipes, converting units, deduping the list, tracking what’s already in the pantry.
Built the parser and the shopping flow on the web first. React 19 + TypeScript + Vite. 326 tests. 108 ingredients with USDA densities, 277 synonym mappings (US/UK/AU), 34+ unit conversions.
If the parser + consolidator couldn’t earn user trust on the web, no native iOS app built around it would either. So that’s where I started.
PHASE 2 · FEB–MAR 2026 · WEB · TRUST FRONTIER
OCR Recipe Extraction
Next: getting recipes in. Photo or screenshot → ingredients and instructions, structured.
Built a Claude Vision pipeline that detects multiple recipes per image with bounding boxes, extracts the text, normalizes the ingredients through the same parser from Phase 1, and outputs a card you can edit. Plus card customization with 50+ stickers — the part that proved emotional attachment, not just functional.
This was where the validator before features discipline locked in. If the OCR mis-counted “1/2 cup” as “12 cup,” the trust of the entire app collapsed. So the validator runs web searches to verify proportions and check that the instructions are complete before a recipe lands in your library.
Cookbook scan flow as it ships today
PDF imports
PHASE 3 · MAR 2026 · iOS · PIPELINE EXPERIMENT
Video Lab
The hardest import format. TikTok and Instagram Reels are 45-second vertical videos that are nearly impossible to actually cook from. The goal: structured ingredients and instructions out, in 2.5–3.5 minutes, for $0.02–0.03 per video.
Built the iOS pipeline as its own lab target before integrating into the app. SwiftUI + SwiftData + AVFoundation + WhisperKit (on-device transcription, free) + Vision OCR (frame analysis) + Claude (recipe structuring) + similar-recipe augmentation + user review + save.
72 automated tests. Mock services for simulator. Code-complete, then merged into the main app.
Video import flow as shipped
Animated highlight
PHASE 4 · MAR 2026 – NOW · PRODUCTION
Native iOS app
Five-week initial sprint to a v1.0 beta. The next four months: refactor from monolith to 24 modular Swift packages, Swift 6 strict concurrency, full Firebase backend with Cloud Functions, FCM push, Algolia search, RevenueCat subscriptions, themed cookbook generation, real-time shared cookbooks, and a Watch experience queued for after the core lands.
Overall product intro
The features people actually use:
AI Generation
Cookbook Scan
Video Import
Cookbook Sharing
Version Tracking
Discover Feed
THE THROUGH-LINE
Each phase earned the next
Each phase tested one piece of the trust ceiling. Pottery proved I could ship at all. Shopping Lab proved the parser. OCR proved the validator-first discipline. Video Lab proved the on-device pipeline. Only after all four did the native iOS app become buildable as a real product.
Web before native saved months. Most of the trust questions could be answered in the browser. The iOS work was integration and polish on top of validated foundations.
Hat consolidation only works if you don’t lower the bar. Each phase has its own test suite, its own architecture decisions, its own quality story. The point of building solo with AI isn’t to ship faster — it’s to ship at the same bar a team would, alone.
Build journey · end of chapter
Back to the case study