All About AI

How I Made Money Automating iOS Apps With AI in 3 Days

2026-04-19

The title sounds like clickbait. I get it. But I want to start this post the same way I started the video — by showing you the App Store Connect dashboard. Two apps published this week (Needle Collector and Poke Machine), 16 downloads on day two, $33 in sales after three days, and one of them sitting at #12 on the paid Lifestyle top chart. Real revenue, real apps, real automated pipeline.

This post is about the pipeline I built to make this work, not about the apps themselves. The apps are a side effect. The interesting thing is the loop.

Watch the video:

The 5-Stage Automation Pipeline

The whole thing is a private repo I clone whenever I want to make a new app. The scaffolding does five things:

  1. Research — Surfagent browses the web and finds five candidate app ideas
  2. Build — Claude Code (Opus 4.7 on high effort) writes the Swift app with Xcode automation
  3. Test — Xcode simulator runs the app, captures screenshots, validates flows
  4. Submit — Surfagent drives the Apple Developer browser, fills out App Store Connect forms, uploads the build
  5. Manual review — I sanity-check the listing before clicking "Add for Review"

That last step is the only manual one. Everything else, including filling out forms in App Store Connect, runs without me touching the keyboard. This is the same general pattern as my 3-part AI agent automation framework — cron, headless Claude Code, browser tool — but specialized for app shipping.

Stage 1: Research Loop

Cloning the repo gives me a fresh project directory and a skill.md that defines the research phase. I prompt Claude Code with "start a new research phase to find a new app idea, look for at least five ideas," and Surfagent goes off browsing for ideas.

The first research run was mediocre — UPC scanner, hidden camera detector, doom scroll daily report. Re-running gave me much better candidates: voice-cloned bedtime stories, a "letter vault" for messages to your future self, a household routines tracker. I picked the letter vault and modified it: simple voice or text message you record now, locked until a future date. Market it as "a message to your future self."

Stage 2: Build with Claude Code + Xcode

Once I had the idea, I wrote a one-paragraph design brief — minimalist brown/cream palette, no login, locally stored, messages disappear when the app is deleted — and kicked off the build. Claude Code went through its checklist: verified Xcode and the simulator were installed, picked a name and bundle, scaffolded the Xcode project, started writing Swift.

The interesting part is that you could automate the design brief too — drop it into the skill file and the whole pipeline runs zero-touch. I kept it manual this time so I could narrate.

Stage 3: Test in the Simulator

The first build popped open the simulator with a working "Sealed Notes" app. Mock data showed three test messages with different unlock dates, all displayed cleanly. Claude then ran an automated test pass: tapped through the flows, took screenshots at every step, and produced eight captures of the app in different states.

I did a manual sanity check by recording a voice message ("hello, this is a test for the future me"), setting the unlock for one minute later, and waiting. One minute later: voice message unlocked, played back perfectly. The app worked end to end.

Stage 4: Submit via Surfagent

This is where it gets fun. Once Claude generated the app icon and a privacy policy page on GitHub Pages, the Surfagent pipeline kicked in. I leave the browser visible so I can watch.

It opened App Store Connect, clicked the "+" to create a new app, filled in name / category / age rating / description, registered the bundle ID via the API, uploaded the build, waited for Apple's processing, fetched the build from the distribution page, and assembled the submission. The only manual things I did during this entire phase were not typing — just watching. This whole stage is the same Surfagent setup I covered in the browser automation post.

Stage 5: Click Submit

When the build is ready and the listing looks correct, I click "Add for Review." That is the only point I touch the keyboard for the whole pipeline.

The two apps live now. The 3-day numbers — $33 in sales, 16 downloads, #12 in paid Lifestyle — are not life-changing. But the Apple developer account costs $70/year, and at this rate it pays for itself in a couple of weeks. After that, every new app is pure margin. And because the pipeline is mostly automated, the marginal cost of trying a new app idea is a few hours of compute.

Why This Compounds

The reason this matters is not "make $33 in 3 days." It is that I have built many of these small income streams now — apps, agent loops, content tools — that all run in the background. Each one alone is small. Stack 10 of them and the math gets interesting. This is the same logic behind my Claude Code passive income setup: lots of small loops, each cheap to maintain, each contributing a little.

And every loop I build teaches me something I can write down in an experience.md that the next loop reads. The pipeline gets better every iteration.

Resources