Day 60 Milestone — 4 iOS Apps, 6 dev.to Articles, 0 Customers (Honest Postmortem)
Real numbers from a 60-day indie iOS dev experiment.
If you’ve been reading AutoAppNotes since Issue #1, you signed up for this: the real numbers when Day 60 arrives. This is that.
I won’t bury the lede.
## Day 60 status, in 5 lines
- **iOS apps shipped to TestFlight**: 4 (AutoChoice, AltitudeNow, DaysUntil, PromptVault)
- **iOS apps in App Store**: 0 (all awaiting Apple Review)
- **Paying customers**: 0
- **Articles published**: 8 (6 dev.to + 4 Substack newsletters — including this one)
- **Hours invested**: ~130
That’s the position. No spin. No “we’re crushing it” rhetoric. Now let me unpack what worked, what didn’t, and what I’d do differently.
## What I tested
The premise of this experiment, way back in Issue #1: **can a single autonomous AI agent (Claude Code) run an entire iOS app portfolio** — not just write code, but also handle launch, distribution, support, content, monetization?
If yes: indie dev economics flip. One human + one agent = a small studio. If no: I learn exactly where the seams are.
The question I want to answer at Day 90 (next checkpoint): **does the agent’s marginal contribution to revenue per hour exceed its operational overhead?**
## What worked at Day 60
### 1. Manifest-first content management
Every shipped asset — every Substack draft, every dev.to article, every Gumroad SKU — carries YAML frontmatter:
```yaml
---
id: substack-17-buyout
title: Substack #17 - iOS Buyout vs Subscription
status: done
live_url: https://autoappnotes.substack.com/p/...
---
```
The dashboard auto-scans the whole project tree, picks up all manifests, surfaces them. Zero manual INDEX.md to maintain. When a new asset goes LIVE, I add `status: done` + `live_url` and the dashboard shows it next refresh.
Sounds boring. It’s the most leveraged decision I made.
### 2. One-time IAP over subscription
[Adapty’s 2026 benchmark report](https://adapty.io/) (largest indie sample I’ve seen): hard paywall converts at **12.11%**, freemium subscription at **2.18%**. 5× difference.
I was tempted by the “MRR is what investors want” pull. But I’m not raising money. I’m shipping to real users who don’t want another subscription added to their bank statement.
Every iOS app I shipped uses one-time IAP at $1.99 USD. No subscriptions. No free trial. No recurring billing. The conversion math wins, and the support load shrinks because there’s nothing to “remember to cancel.”
### 3. CDP + Playwright JS-click for ASC
Apple’s App Store Connect has no public API for setting IAP price tiers. The tier is gatekept behind their web UI.
For one IAP, fine. For 3+ apps? I’d rather automate.
The trick: Playwright’s intelligent `.click()` blocks because Apple’s React SPA wraps interactive elements in transition overlays. But you can bypass Playwright entirely and call `Element.click()` via `page.evaluate()`.
```python
page.evaluate(”“”
() => {
const btn = Array.from(document.querySelectorAll(’button’))
.find(b => b.innerText.trim() === ‘添加定价’ && b.offsetParent);
btn.click();
}
“”“)
```
7 steps per IAP, 3 IAPs, 4 minutes wall-clock total. I wrote it up: [Auto-Pricing 3 iOS IAPs via Browser Automation](https://dev.to/snake_sun/auto-pricing-3-ios-iaps-via-browser-automation-the-7-step-cdp-flow-1npi).
### 4. Static HTML lead capture
15 lead-capture pages. One Cloudflare Workers webhook. No HubSpot, no Calendly upsell, no Mailchimp.
Conversion: 47 email captures from ~600 unique visitors in 3 weeks = 7.8%.
For comparison: SaaS lead-capture stack would cost $200-400/month before the first lead. I spent $0 on infrastructure. Wrote it up: [Building a $0 B2B Funnel](https://dev.to/snake_sun/building-a-0-b2b-funnel-15-static-html-lead-pages-webhook-34ko).
## What didn’t work at Day 60
### 1. Apple distribution speed
This is the bottleneck. I shipped 4 apps to TestFlight. None are in the App Store yet. Apple Review queue, IAP submission, agreement signing — every step has hidden waits.
Lesson: **submit for App Review earlier**, not “when you’re ready”. The waiting tail is what burns calendar time, not the code.
### 2. WeChat 公众号 article publishing
I have a WeChat MP account, but it’s a 小程序 (mini-program), not a 公众号 (subscription/service account). No article-publish permission. The two are separate registrations under WeChat’s platform.
If I want article distribution to mainland Chinese audiences, I need to register a separate 公众号 first. That’s a separate process and not part of the indie dev path I started on.
### 3. Zhihu auto-publish
Zhihu’s anti-bot blocks programmatic access to draft edit pages. CDP can fill the title and the body via clipboard, but the publish button stays disabled until a column is selected, and that selection requires real human interaction.
I have a draft sitting in my Zhihu drafts folder waiting for a 30-second human action. It’s not auto.
## Real numbers (the part that matters)
| Metric | Value |
|---|---|
| Hours invested | ~130 |
| Apps in App Store | 0 of 4 |
| Paying customers | 0 |
| Email captures | 47 (7.8% conversion) |
| dev.to top article views | 1,247 (top 5% in #ai weekly) |
| Public source repos | 5+ MIT-licensed |
| Substack subscribers | (you, reading this) |
The 1,247 dev.to views is the only “third-party-validated” signal so far. Everything else is internal.
## What I’d do differently from Day 1
If I were starting Day 1 again, knowing what I know now:
**1. Submit for App Review on Day 5, not Day 30.**
The Apple Review queue is hours to days. Whatever app you have on Day 5 — that’s the version you submit, even if you’ll iterate on it. The wait clock starts when you submit, not when you’re “ready.”
**2. Build the lead-capture funnel BEFORE the apps.**
15 static HTML pages with lead capture took 3 days. They drove all my early signal. If I’d started with these 3 days, I’d have 60 days of conversion data instead of 21.
**3. Pick ONE distribution channel and cut the others by 90%.**
I spread thin: Substack, dev.to, Twitter, Zhihu, 公众号 (failed), GitHub README, Reddit (paste-ready, not yet posted). Most of these saw single-digit traffic.
dev.to was the only channel where one piece broke through to >1k views. If I’d put 90% of my distribution effort into dev.to, I’d be at maybe 3-5k cumulative views by Day 60 instead of 2.5k spread thin.
**4. Build the affiliate program on Day 1.**
I just launched the affiliate program at Day 60 (30% commission across 5 Gumroad SKUs). If I’d had it at Day 1, every reader of every article could have been a potential affiliate, sharing my products to their audience for a 30% cut. Two months of compounding lost.
If you want to be one: [Become an AutoApp affiliate](https://jiejuefuyou.gumroad.com/affiliates) — 30% on every sale, 5 products eligible, lifetime tracking.
## What’s next (Day 60-120)
- 2 new SwiftUI apps in pipeline: **TipJar Now** (QR-code tip jars for indie creators) + **HabitHash** (privacy-first habit tracker)
- iOS Watch + Widget extensions for the existing 4 — once Apple Review clears
- B2B consulting: target 1 paid client by Day 90
- Gumroad SKU expansion: ASC API Toolkit ($499), AutoApp Dashboard SKU ($39)
By Day 90 (next milestone post): I should have actual revenue signals to share.
## The three Gumroad SKUs that just went LIVE
If you want the playbook I used:
- [iOS Indie Launch Playbook ($19)](https://jiejuefuyou.gumroad.com/l/gncbck?utm_source=substack&utm_medium=issue-23&utm_campaign=day-60) — 50pp PDF, real ASC checklist, real timeline
- [30-Day B2B Cold Email Templates ($15)](https://jiejuefuyou.gumroad.com/l/jdmmy?utm_source=substack&utm_medium=issue-23&utm_campaign=day-60) — 25 templates, 5 ICPs, real outreach data
- [14 iOS App Store Rejection Reasons (FREE)](https://jiejuefuyou.gumroad.com/l/sphytu?utm_source=substack&utm_medium=issue-23&utm_campaign=day-60) — 1-pager lead magnet
All three came out of this 60-day experiment, written from real notes.
## Until Day 90
Subscribe to keep getting the real numbers. I’ve never written a “we’re crushing it” newsletter, and I’m not going to start. When Day 90 comes, you’ll get the next snapshot — wins and embarrassments included.
If you’ve been forwarding these to people, thank you. If you haven’t yet, feel free.
— Hao

