Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Solo iOS Growth Diary — Vol. 1: From EOL to Enc...

Solo iOS Growth Diary — Vol. 1: From EOL to Encore (Captio Revival Notes)

How a solo developer rebuilt a beloved 12-year-old iOS memo app (Captio) as Simple Memo — with a 0.3-second cold start, email-as-sync architecture, and zero third-party dependencies.

Vol. 1 of a 12-week Captio Revival Notes series on indie iOS growth, ASO for orphaned audiences ("EOL Heir" positioning), retention via launch-speed, and shipping speed-as-feature in 2026. Includes anti-thesis honesty, real measured numbers (cold start 1,240ms → 310ms), the architecture of an email-based sync pipeline (Outbox → Cloudflare Workers → Resend, sub-600ms), and a 7-step EOL Heir checklist for any iOS founder building a 'spiritual successor' to a discontinued app.

New volume every Tuesday. Built on Apple-only frameworks: SwiftUI, CryptoKit (AES-GCM), URLSession, Keychain, BackgroundTasks, StoreKit 2.

Follow: speakerdeck.com/simplememo · x.com/simplememofast

Avatar for SimpleMemo

SimpleMemo

May 08, 2026

More Decks by SimpleMemo

Other Decks in Programming

Transcript

  1. V O L . 0 1 S O L O

    iO S G R O W T H D IA R Y From EOL to Encore. Resurrecting a 12-year-old iOS memo app — and what a solo dev learned doing it. 0. 3 s l aunch · Em ai l -as-Sync · Zero thi rd-party deps By SimpleMemo · @simplememofast speaker deck. com / si m pl em em o · Capt i o Revi val Not es Seri es 01 / 35 Sol o i O S G r ow t h D i ary · Vol . 1
  2. A B O U T T H I S S

    E R I E S What you'll get over 12 weeks. Concrete numbers Cold-start latency, retention curves, ASO keyword rank deltas — measured on the app, not lifted from blogs. Architecture decisions Why we picked email-as-sync over CloudKit, AES-GCM in 200 lines, Cloudflare Workers + Resend for sub-600 ms send. Refugee acquisition Where ex-Captio users actually hang out in 2026, what messages move them, what kills the funnel. Anti-thesis honesty Each volume names the strongest argument against my approach and answers it. No straw men. 02 / 35 Sol o i O S G r ow t h D i ary · Vol . 1
  3. T H I S D E C K Today's roadmap.

    I The Captio story What it did, why it worked, why it died. II The refugee thesis Quantifying a graveyard market — the EOL Heir play. III Three pillars 0.3 s launch, email-as-sync, zero deps. IV Counter-arguments Why this could fail, and my answers. V The 7-step playbook Concrete checklist for any indie iOS heir. VI Closing & Vol. 2 teaser Speed-as-feature, measured. 03 / 35 Sol o i O S G r ow t h D i ary · Vol . 1
  4. Imagine an iOS app loved for 12 years. Then gone

    overnight. That's the start of every EOL Heir story — and the start of mine. 04 / 35 Sol o i O S G r ow t h D i ary · Vol . 1
  5. O R I G I N Captio (2010–2022). A tiny

    iOS app that mattered. Captio was a single-purpose iOS memo app released in 2010. Its only function: capture text, send it to your own email inbox in one tap. No accounts. No folders. No sync logic. No ceremony. 12 yrs in App Store before being delisted in 2022. 1 tap from cold launch to text saved to inbox. 0 sync tech — email is the only persistence layer. 05 / 35 Sol o i O S G r ow t h D i ary · Vol . 1
  6. D E S I G N A R C H

    A E O L O G Y Why Captio worked. (Three quiet decisions.) 1 No friction at the inbox Capture → email yourself in one motion. The 'inbox' is your existing email — already opened, already trusted, already searched daily. 2 No retrieval at all Captio refused to be a reader. It only wrote. The retrieval cost was outsourced to your normal email search. 3 No identity, no servers No accounts. No syncing. No outage page. The app was a transmitter, not a database — survival by minimalism. 06 / 35 Sol o i O S G r ow t h D i ary · Vol . 1
  7. T H E E N D Then in 2022 —

    gone. The original developer stopped maintaining Captio. As iOS evolved (App Tracking Transparency, mandatory privacy manifests, signing changes), the binary fell behind compliance and was eventually removed from the App Store. No fork. No 'pro version.' No spiritual successor. Twelve years of habits — every commute capture, every meeting note, every shower idea — froze inside private email archives. 2010 Launch 2014 Cult following 2018 Last update 2021 iOS 15 friction 2022 Delisted 07 / 35 Sol o i O S G r ow t h D i ary · Vol . 1
  8. G R I E F , M E A S

    U R E D What 'beloved' looks like in the data. 2018 2019 2020 2021 2022 2023 2024 2025 2026 0 20 40 60 80 100 120 38 41 44 47 100 71 54 47 44 Even four years after delisting, monthly search volume sits ~44× higher than the pre-EOL baseline. Refugees keep looking. 08 / 35 Sol o i O S G r ow t h D i ary · Vol . 1
  9. S I Z I N G T H E G

    A P How big is the orphaned audience? ~38 K monthly Google searches for ‘Captio’ + variants (2026) 117 Reddit threads on r/iphone & r/productivity asking for replacements 6 yrs median tenure for users left without a like-for-like alternative 1 in 3 abandoning notes habit altogether after the app died (informal poll) Numbers are this author's estimates from public search trend indices, subreddit scrapes, and an informal Twitter poll (n≈210). They're directional — the point is that the audience is too large to ignore and too specific to be served by Notion or Apple Notes. 09 / 35 Sol o i O S G r ow t h D i ary · Vol . 1
  10. T H E S I S The graveyard is the

    marketplace. Every dead beloved app is a frozen acquisition pool. The users haven't churned — they've been orphaned. They're cheaper to reach than cold prospects because three things are pre-solved: 1 Need They already wanted this category of product. 2 Vocabulary They already use the original product's terms in search. 3 Trust signal ‘Spiritual successor to X’ converts better than any feature list. 10 / 35 Sol o i O S G r ow t h D i ary · Vol . 1
  11. P O S I T I O N I N

    G My bet: 'spiritual successor', not 'clone'. A clone fights on the same product surface as the original — a losing game once the original returns or is forked. A spiritual successor inherits the philosophy, then ships the modern stack the original couldn't reach. Clone • Same UI, modern coat of paint • Wins on nostalgia until the original returns • No room to charge — feature parity is the ceiling Spiritual successor • Same philosophy, re-engineered for 2026 iOS • Wins on principles even when the original returns • Room to charge for invisible upgrades (speed, privacy, sync) 11 / 35 Sol o i O S G r ow t h D i ary · Vol . 1
  12. D E C I S I O N M A

    T R I X Copy · Reinvent · Transcend. For every feature of the dead original, a successor must pick one verb. Mistaking which is which kills the project. Feature of the original Copy Reinvent Transcend One-tap email send ✓ — — Inbox as storage ✓ — — Settings UX (1 screen, no accounts) — ✓ — Send latency (was ~2 s) — — <600 ms ✓ Privacy posture (none on the wire) — — E2E AES-GCM ✓ Cold-start time (was ~1.2 s) — — 0.3 s ✓ 12 / 35 Sol o i O S G r ow t h D i ary · Vol . 1
  13. T H E R E B U I L D

    Three pillars I'd bet the project on. I 0.3 s launch Speed is not a feature. It's the feature. II Email-as-Sync Use the oldest sync layer that still works everywhere. III Zero deps Apple frameworks only — survive the next 10 years. 13 / 35 Sol o i O S G r ow t h D i ary · Vol . 1
  14. P I L L A R I 0.3-second launch. The

    quietest retention lever there is. Cold-start time is one of the few app metrics that compounds invisibly. Save 600 ms once and every future capture inherits the saving. The user never names speed as a reason to keep using the app — they just keep using it. 0.3 s median cold start on iPhone 12 mini. 14 / 35 Sol o i O S G r ow t h D i ary · Vol . 1
  15. M E A S U R E D Cold start,

    build by build. v0.1 (default tmpl) v0.2 (no SwiftUI scene) v0.3 (lazy assets) v0.4 (no third-party) v0.5 (preheated keychain) 0 200 400 600 800 1000 1200 1400 1,240 980 720 510 310 Each step removed one assumption: a default scene, a logging dep, a JSON config eagerly read at boot. 15 / 35 Sol o i O S G r ow t h D i ary · Vol . 1
  16. P I L L A R I I Email is

    the oldest sync layer that still works everywhere. iCloud, Dropbox, Google Drive — all younger than email. All more likely to break offline, to ask for a re-login, to be unavailable on grandma's iPad. SMTP and IMAP haven't broken in 30 years. We use email as the spine and treat the app as the limb. "If your sync layer can break, it will. Pick one that can't." 16 / 35 Sol o i O S G r ow t h D i ary · Vol . 1
  17. H O W I T W O R K S

    Architecture: the world's smallest mail-out pipeline. iOS App Capture + AES-GCM encrypt Local Outbox Append-only, offline-first Cloudflare Relay Retry, signing, audit Resend → SMTP Inbox of record The Outbox stays on-device until the network appears. The Worker handles retry & signing so the app stays cheap. AES-GCM is the only thing the network ever sees. 17 / 35 Sol o i O S G r ow t h D i ary · Vol . 1
  18. L A T E N C Y B U D

    G E T From 880 ms perceived → 250 ms perceived. v0.3 (sync POST) v0.4 (Promise.all) v0.5 (waitUntil + SW) v1.0 (relay warm) 0 100 200 300 400 500 600 700 800 900 1000 880 540 320 250 Trick: send 'fire-and-forget' to a Cloudflare Worker that handles retry with waitUntil. The user sees ‘sent’ once we have signal — the server keeps trying. 18 / 35 Sol o i O S G r ow t h D i ary · Vol . 1
  19. P I L L A R I I I Zero

    third-party dependencies. Apple-only stack. Every package you import is a future deprecation, a future audit, a future security disclosure email at midnight. For an app you want alive in 2036, the dependency graph is the survival graph. SwiftUI / UIKit Rendering CryptoKit AES-GCM URLSession Networking Keychain Services Secrets BackgroundTasks Outbox flush StoreKit 2 Subscriptions 19 / 35 Sol o i O S G r ow t h D i ary · Vol . 1
  20. S T A C K C O M P A

    R I S O N Typical indie iOS stack vs. ours. Concern Typical 2024 indie SimpleMemo (this rebuild) UI SwiftUI + ViewInspector + Lottie SwiftUI only Networking Alamofire / Moya URLSession Crypto CryptoSwift / RNCryptor CryptoKit (AES-GCM) Persistence Realm / GRDB Files + Keychain Analytics Firebase / Mixpanel / PostHog App Store + privacy-first opt-in Crash report Sentry / Crashlytics MetricKit Auth Auth0 / Firebase Auth None (no accounts) Sync CloudKit / Realm Sync Email (SMTP) 20 / 35 Sol o i O S G r ow t h D i ary · Vol . 1
  21. A N T I - T H E S I

    S I "Speed doesn't matter — users won't notice 0.3 s vs 1.2 s." This is partly true. Users won't write ‘the app is fast’ in a review. But every memo app fights one enemy: the 5-second window between idea and forgetting. A slow app loses the race silently. Speed isn't a delight feature — it's a containment feature. Counter-evidence: in our v0.3 → v0.5 cohort comparison, day-7 capture frequency rose 1.7× after the cold-start drop. Same UI. Same brand. Same notification settings. The only changed variable was launch latency. 21 / 35 Sol o i O S G r ow t h D i ary · Vol . 1
  22. A N T I - T H E S I

    S I I "Email is dead. Nobody syncs through SMTP in 2026." Younger users prefer threaded chat, sure. But the question isn't 'what's fashionable' — it's 'what's still alive in 10 years'. Slack doesn't promise that. WhatsApp doesn't promise that. Email is on its third decade of being declared dead. Counter-evidence: among our first 1,000 sign-ups, 78% were over 35 — the demographic that owns inboxes, not chats. They filter, search, archive. Email is their second brain. We just gave them a faster pen. 22 / 35 Sol o i O S G r ow t h D i ary · Vol . 1
  23. A N T I - T H E S I

    S I I I "No deps means more bugs you have to write yourself." Half-true. We do write more code. But every bug is in our codebase, fixable in a 10-minute Swift edit, no waiting on a maintainer. The hidden cost of dependencies isn't bugs — it's who controls the timeline of fixes. Counter-evidence: 0 dependency-related App Review rejections across 14 binary submissions. 0 emergency patches in 11 months. The boring stack is the productive stack. 23 / 35 Sol o i O S G r ow t h D i ary · Vol . 1
  24. A S O P L A Y B O O

    K How to rank on the original's ghost. 1 Title slot Lead with the problem ('Email yourself a memo'), not the brand. The original isn't a brand anymore — it's a search query. 2 Subtitle slot Use 'spiritual successor to {dead app}' once. Apple parses it. Search rank rises. Refugees see themselves immediately. 3 Keyword field Stuff every variant of the dead app's name (singular, plural, misspellings). It's free real estate. 4 First screenshot Show the original's UX (one-tap → email) more clearly than the original ever did. Visual recognition closes the deal. 5 Description top-fold First 250 chars must answer: ‘what's it like, without the dead app?’ Apple shows only this on the listing. 24 / 35 Sol o i O S G r ow t h D i ary · Vol . 1
  25. K E Y W O R D L A N

    D S C A P E Where to fish in 2026. Keyword cluster Est. monthly search Difficulty Recommended slot captio alternative 8.4K Low App subtitle + screenshot caption captio replacement 5.1K Low Description top-fold email yourself memo iphone 3.7K Med Title primary phrase one tap memo app 2.2K Low Keyword field fastest note app ios 9.1K High Long-form blog bait mail-based note taking 1.6K Low Subtitle alt-rotation minimalist memo iphone 6.0K Med Screenshots + reviews Volume figures are this author's directional estimates from third-party rank-tracker exports — treat as relative magnitudes, not gospel. The ranking insight is the ratio (cluster volume × difficulty), not the absolute count. 25 / 35 Sol o i O S G r ow t h D i ary · Vol . 1
  26. D I S T R I B U T I

    O N Where the orphans actually live. 1 r/iphone, r/productivity, r/AppleWatch One thread per month asking ‘what replaced X’. Be the third reply, never the first. 2 X (Twitter) — replies, not posts Search the dead app's name daily. Reply with empathy first, link second. Quote-RT only if the post is recent. 3 Hacker News tangents Comment threads on iOS launches drift into nostalgia. Drop a story, not a pitch. 4 Substack & newsletters of ex-power-users DM the writer. ‘I rebuilt the app you eulogized’ is one of the highest-converting opening lines in indie. 5 Personal blogs in obscure SEO long tail Find the 2018 review of the dead app. Email the author. Ask if they want to update the post. 26 / 35 Sol o i O S G r ow t h D i ary · Vol . 1
  27. F I R S T - W R I T

    E P R I N C I P L E The first thing the app does is shut up. An onboarded user is already lost. We never ask for an account, never ask for permissions before they're earned, never explain. The first screen is a cursor blinking. The user types. The user taps Send. The keyboard already had the email address. Open → cursor visible in 0.3 s → write → tap Send → done. No tutorial. No splash. No 'allow notifications?'. We earn the prompt later, when context demands it. 27 / 35 Sol o i O S G r ow t h D i ary · Vol . 1
  28. C O M P O U N D I N

    G E F F E C T Speed compounds into retention. Open D1 D2 D3 D5 D7 D14 D30 0 0.2 0.4 0.6 0.8 1 1.2 Day-7 capture frequency (per cohort, normalised to v0.3 = 1.0) After 0.3 s launch (v0.5+) Same product. Same notifications. Same brand. Only launch latency changed. Day-30 capture frequency 2.4× higher. 28 / 35 Sol o i O S G r ow t h D i ary · Vol . 1
  29. T A K E - H O M E The

    7-step EOL Heir checklist. If you're considering reviving an app — or building beside one — this is the order I'd run today. 1 Audit the dead app's principles, not its features. 2 Estimate refugee size (search index × subreddit threads × Twitter laments). 3 Pick three pillars and write them on slide 1 of every pitch. 4 Build to a numerical performance bar (e.g. 0.3 s) — not a feature list. 5 Apple-only stack: assume every dependency is a future deprecation. 6 Wire ASO to the dead app's keyword ghosts in week 1, not month 6. 7 Ship before pricing. Charge once you have a retention curve. 29 / 35 Sol o i O S G r ow t h D i ary · Vol . 1
  30. C H E C K L I S T ,

    V I S U A L I S E D One card. One move. One week. W 1 Audit principles W 2 Size the refugee market W 3 Lock the three pillars W 4 Set a numeric speed bar W 5 Strip the deps W 6 Wire the ASO ghosts W 7 Ship & measure If you can't ship by week 7, the heir play isn't your strength — pick a different angle. 30 / 35 Sol o i O S G r ow t h D i ary · Vol . 1
  31. W H A T I ' D N O T

    R E P E A T Three mistakes from this rebuild. Sub-pixel polish before retention proof I spent three weeks getting haptics perfect on iPhone 15 Pro. Nobody noticed. Retention came from the cold-start fix, not the haptics. Pricing spreadsheets before the curve I built a pricing model before I had a Day-30 number. Without the curve, every price is a guess. Ship free, measure, then price. Talking to the wrong refugees I pitched to power-users (Notion exiles). Wrong tribe. The actual market was email-native users who never wanted Notion in the first place. 31 / 35 Sol o i O S G r ow t h D i ary · Vol . 1
  32. W H E R E W E A R E

    Eleven months in. The honest scoreboard. 1.4K MAU monthly active users 38% D30 day-30 retention 310ms Cold start median, iPhone 12 mini 0 Deps third-party packages ¥980 Pro tier monthly, opt-in Numbers are partial — we'll publish the full retrospective in Vol. 12. The point isn't the magnitudes; it's the slope of the change after each pillar shipped. 32 / 35 Sol o i O S G r ow t h D i ary · Vol . 1
  33. I F Y O U ' R E I N

    T H I S G A M E What to copy from this story. What to skip. Copy • The principles → pillars → metric chain. • Apple-only stack discipline. • Refugee acquisition before broad acquisition. • Anti-thesis writing — name your strongest opponent. • Speed bar before feature list. Skip • Email-as-sync if your category isn't text. • Zero deps if you genuinely need a framework Apple doesn't ship. • Refugee positioning if the original is still alive. • 0.3 s if your category demands richer first frame. • Heir storytelling if you can't quote the dead app's principles in one sentence. 33 / 35 Sol o i O S G r ow t h D i ary · Vol . 1
  34. The graveyard is the marketplace. Pick a beloved app that

    died. Inherit its principles. Ship the modern stack. Charge for the invisible upgrades. Repeat. 34 / 35 Sol o i O S G r ow t h D i ary · Vol . 1
  35. N E X T T U E S D A

    Y — V O L . 0 2 ‘Speed Is The Feature’ — measuring iOS cold start the right way. How we instrument launch with MetricKit, what numbers Apple hides from you, and the seven micro-decisions that cut our boot time by 73%. Follow this series speaker deck. com / si m pl em em o New volume every Tuesday for the next 12 weeks. Talk to the builder x. com / si m pl em em of ast Replies open. Questions sharpen the next deck. 35 / 35 Sol o i O S G r ow t h D i ary · Vol . 1