My dev team was two AI agents that argued. I just shipped the app solo.
I just shipped my first real app, and I want to write the honest version - not the "look how easy, AI built it for me" one. Because it wasn't.
The itch: every morning I'd open ~20 tabs — news, crypto, markets, Twitter — just to figure out what actually happened. Exhausting, and half of it I couldn't trust. I wanted ONE calm briefing, in my language, that I could just listen to with coffee. Nothing did exactly that, so I built it: twice-daily AI market/news briefings in 6 languages, with audio.
The "team": I can barely write Swift. So my setup was weird — an AI builder for the iOS side, and two AI agents for the backend: one that wrote + deployed code, and one whose entire job was QA and telling the first one it was wrong. I basically went from "developer" to "the guy who reviews the work and makes the calls." Most of the 3 months wasn't typing. It was judgment.
Then the backend became a monster. What looks like a simple app sits on a pipeline: collect → verify against real sources → synthesize → translate into 6 languages → generate audio → publish. Twice a day, reliably, forever. War stories:
It kept silently dying. Edge functions would randomly fail to cold-start (503s) and a couple languages just… wouldn't show up. So I built a self-healing layer: a dead-man switch that pings me if a briefing doesn't appear, auto-heal that regenerates missing pieces, and a 2-min watchdog that retries cold-boot flakes before anyone notices.
The "oh no, the bill" moment. It's AI — every run costs money. One runaway loop overnight could torch my budget. So I added a circuit breaker: a daily spend cap per stage that hard-stops and alerts me. Sleep restored.
The dumbest bug I've ever shipped. The audio in one of the languages came out completely wrong — like someone reading it in a thick foreign accent — even though the English words inside (ETF, Bitcoin) sounded perfect. Spent an hour convinced I needed a whole new voice provider. The fix? One number: the app was requesting audio at sample_rate 24000 instead of 44100. Four-character diff. Instantly fixed. 🙃
Number gremlins. Big figures kept slipping through untranslated. Then I hit the "billion" trap — in Spanish/French "billion" actually means a trillion, so a lazy fix would've made every number 1000x wrong.
The meta-lesson: AI did the typing. But it'll happily hand you something that looks done and is quietly broken. The real work was being the skeptic — verifying, catching the weird stuff, owning the calls. The AI was a fast junior; I had to be the senior.
It's v1, it's solo, and it hit the App Store today. Equal parts proud and terrified. AMA about the build, the AI-agent workflow, or the sample-rate shame.
Pulse on AppStore:
https://apps.apple.com/us/app/pulse-ai-news-market-brief/id6766233287

Replies