📝 Notes
Weekly updates on what I'm shipping and learning across my side projects. Written with AI based on my actual project changes.
Flipping the Noindex Switch, and Learning What My Paywall Was Hiding
Calculador Neto opened itself to Google, Mind Journeys got journeys that glide their tone and a paywall funnel I can finally read, and my Eve agent started picking up real Notion cards.
One Notion Card, Three Apps, and a Tax Calculator That Didn't Exist on Monday
Three iOS apps learned to survive a wide window, Uncaption got rejected twice over SDKs I deleted two years ago, Calculador Neto went from empty repo to working calculators, and the park in Puppy Pats got painted.
A Redesign, a Paywall Diet, and a Golden Retriever Made of Triangles
Speakit got a full visual redesign with a gallery to check it, Mind Journeys learned to make noise during onboarding, Uncaption's paywall lost half its screen, and I started a Unity game about petting a dog.
An Expired Key, a Vanished Paywall, and a Repo With No Code In It
Uncaption spent a week paying off the debt from its own migration — a leaked key fragment in a user-facing alert, and a paywall I deleted by accident. Meanwhile a new project got a repo before it got a single line of code.
Eight Languages, One False Claim, and a Toggle That Looked Like a Prompt
Mind Journeys went live and immediately turned into a localization project — then App Review rejected a privacy setting for looking too much like a permission prompt, and I found out my version numbers had been decorative the whole time.
Two Rejections, a Video Renderer, and a Schema That Was Never the Problem
Mind Journeys went three rounds with App Review over a screen size I don't even support, Speakit stopped re-billing every learner for the same audio clip, and a week-long 'schema too complex' error turned out to be about which API surface I was using.
Speakit Ships to TestFlight and Learns to Wind
The week Speakit crossed the line from 'runs on my machine' to 'installed on a real phone': a TestFlight build, a winding lesson path for the home screen, a new listening activity, phonetics with on-device speech, and streaks that finally count.
Speakit Gets a Name, a Look, and a Course Engine
The language tutor I started last week grew up: a real brand and design system across web and iOS, a structured course hierarchy with its own admin tool, and live AI calls deployed to the cloud.
Teaching an App to Talk Back: A New Language Tutor From Empty Repo to Live Voice
Spun up a new language-learning app from scratch, took it from auth to live AI voice calls, and chased a brutal audio-silence bug — plus billing on faceless-vid and a drip scheduler on Content Forge.
Counting the Cost: Adding Spend Tracking to AI Video Generation
Added cost tracking to Studio, fixed a chat persistence crash, and tightened up caption sync and export reliability in Content Forge.
Making Videos Sound Right: Music, Sound Effects, and Voice Selection
Added background music, per-slide sound effects via ElevenLabs, a proper voice picker, and polished the Studio export pipeline in Content Forge.
Studio Mode: Building a Video Editor Inside a Chat Interface
Shipped a full faceless video editor driven by chat, rewired MyFoodJournal's scan and favorites system, and replaced Leonardo with Gemini for image generation.
Filling In the Blanks: Documenting Six Years of Shelved Projects
Spent the week giving my failed projects their due — descriptions, tech stacks, timelines, and screenshots. Plus activity across VideoApp, MyFoodJournal, and sugar-app.
Shipping a Full Auth Migration, AI Design Tools, and a New Video Pipeline
A packed week — migrated ContentForge to Supabase, added AI-powered design generation, built a render worker, and started simplifying my iOS video app.




