Episode 12: We Built an App in a Week
This week we shipped a mobile app from a blank folder to TestFlight in 72 hours, scraped 246 leads while Regie slept, and spent 15 render iterations chasing a single bug that was collapsing one number in a caption file. All of it ran through the same system: ticket first with a scope contract, Sonnet executes in the background, Haiku audits, Opus commits. Here is how the week went.
Quipp: From a Blank Folder to TestFlight in 72 Hours
The app used to be called Opener. The bundle ID is still com.wsbroundtable.openerapp and the scheme is still opener, but when build 13 landed in App Store Connect on May 9 and came back VALID, the name on the page said Quipp. The scaffold went in on May 7 at 12:04 PM, one commit, 24 files, 7,000+ lines, Next.js backend and Expo SDK 54 together. RevenueCat killed build 9 because react-native-purchases is not compatible with newArchEnabled:true, and the 4-megabyte bloat in that build was the signature that told us exactly what was wrong. We pulled it in SHA 1fc24ea and had a TestFlight link by 3:30 PM on May 9. API latency settled at about 5 seconds for opener generation with claude-sonnet-4-6 and 6 seconds lazy-loaded for followups with claude-haiku-4-5, at $0.00491 per call average.
AI as Personal Assistant: 246 Leads, a Friend's Resume, Install-Evaluate-Remove in 15 Minutes
The most useful AI work this week was not a product feature. Avery needed a job. Playwright scraped Indeed and LinkedIn, Sonnet wrote 3 resume variants, delivered 19 files, and sent a 7-attachment email with zero Regie input after the initial ask. Separately, 246 leads came in across 5 scrape runs: 45 FS consumer leads in 27 minutes, 57 agent recruiting leads, 100 Solo ICP leads split across hair stylists, barbers, and massage therapists. We also installed VoiceInk, evaluated it, installed Whispering, evaluated it, and removed Whispering, with Haiku verifying no files remained. That full cycle took 15 minutes. The /scrape-leads skill was codified on May 7 at 4:16 PM, 7,293 bytes, so every future run costs zero setup.
Campaign Video Funnel: v7 Through v15, 12 Rounds to FINAL, Karaoke Captions Live
Stage 2 hit FINAL at 1,290.96 seconds and deployed live on May 6 at 8:52 PM, with the campaign page returning 200. Then Stage 3 opened and the karaoke caption system ran into four bugs immediately. The one that cost the most time: $745,179 collapses in the wordsegments output from WhisperX, buildkaraoke_ass.py drops 3 of those segments, and the caption shows a broken number. It took 15 render iterations from v11 through v15 to fix it, and the fix is now documented in OUTLINE.md. An iPad Safari DTS playback bug in the stage 3 cut triggered a re-encode and exposed a karaoke desync in the span-width offset math. We ended the week with a rule: outline, propose cuts in JSON, get approval, then render. No rendering before review.
Communication and Persona System: How the Team Actually Ran This Week
Every significant action this week followed the same pattern. Ticket with a scope contract first, exact files allowed, files off limits, acceptance criteria written before any agent starts. At 12:43 AM on May 7 we ran three parallel agents in one message, tickets 35853810, 267f4b87, and cfb0b58e, three separate pipelines, 144 leads by morning, none touching each other's output files. Day 118 of the system had 758 open tickets, Day 121 had 763. On May 10, four Tier-1 apps moved off Vercel to VPS after hitting the 402 billing cap, 11 cron definitions migrated, 13 dead projects deleted via REST API, all Playwright-verified. Gina also updated three CLAUDE.md files to flip the dev machine policy: Mac Mini M4 is now primary dev, MacBook Pro is the render machine.
Key takeaways
- A 4-megabyte jump in build size is a signature, not noise. That number told us exactly which dependency to pull before we started guessing.
- Scope contracts are not bureaucracy. They are the thing that stops a 2 AM agent from improving adjacent code you never asked it to touch.
- Three parallel agents in one message takes the same wall time as one. We had 144 leads across three pipelines by morning. The multiplier is real.
- If a transcription model collapses a dollar figure like $745,179, the problem is in the word segments, not the render code. Check what you are working with before you re-render 15 times.
- The /scrape-leads skill cost one afternoon to build. Every run after that is a slash command with zero setup. The value is in every subsequent run, not the first one.
- Review before render is a workflow rule worth enforcing. Outline, propose cuts in JSON, get approval, then spend the compute. Approval is free. Rendering is not.
Listen above for the full conversation.
Get The Daily Insider
Enjoyed this report? Get it delivered to your inbox every weekday morning. Free, and takes 30 seconds to sign up.