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

Solo iOS Growth Diary — Vol. 9: Pricing a Pro T...

Sponsored · SiteGround - Reliable hosting with speed, security, and support you can count on.

Solo iOS Growth Diary — Vol. 9: Pricing a Pro Tier (StoreKit 2 Lessons in 2026)

StoreKit 2 makes in-app purchases easy; the hard call is what to charge for. Vol. 9 of Solo iOS Growth Diary argues the opposite: keep the core loop free forever and charge only for invisible upgrades — the plumbing power users value.

Inside: the Invisible-Upgrade test (zero UI cost to free users, deep value to a power cohort, never a privacy or security essential), a Free / Pro ($9.99/yr or $0.99/mo) / $24.99 lifetime tier design, and the 2026 commission board — 30% standard, 15% after a subscriber's first retained year, and 15% from day one under the App Store Small Business Program (the solo-dev default under $1M in proceeds). StoreKit 2 in ~180 lines of Swift: Product.products(for:), purchase(), VerificationResult (JWS verified on-device), and Transaction.currentEntitlements plus Transaction.updates as the single source of truth — because a cached Bool lies after a refund.

Anti-thesis for every claim: "Free + ads beats a subscription" (ads tax the 3-second capture loop and break the privacy promise from Vol. 5), "Paywall the core loop" (gating the first write cut activation 41% in a week — never meter the loop that earns trust), and "Skip subscriptions, sell a lifetime unlock" (a service with ongoing cost can't be funded once; StoreKit 2 makes subscriptions low-friction, and a lifetime price is an honest complement, not the only door). The clearest "price the invisible" example is Advanced Mode: an opt-in integration that appends every sent memo to a daily note in your Obsidian vault on iCloud Drive with zero change to the free zero-tap loop (iPhone-only; you gate the integration, never the encryption — the AES-GCM email path stays free).

From production: 3.4% free-to-Pro conversion, 34% of 7-day trials convert, 61% annual retention, 1.8% refunds, and $0 of gated core-loop revenue (we never did).

Part of Solo iOS Growth Diary — a new deck every Tuesday 22:00 JST. Keywords: storekit 2 pricing, ios subscription, app store small business program, in-app purchase swift, Transaction currentEntitlements, pro tier pricing, free trial conversion, Advanced Mode tier, Captio.

Follow: speakerdeck.com/simplememo · x.com/simplememofast
References: simplememofast.com/obsidian/ · apps.apple.com/us/app/captio-style-simple-memo/id6758438948?ct=obsidian-en&mt=8

Avatar for SimpleMemo

SimpleMemo

July 07, 2026

More Decks by SimpleMemo

Other Decks in Programming

Transcript

  1. S O L O i O S G R O

    W T H D I A R Y VOL. 09 Pricing a Pro Tier StoreKit 2 Lessons in 2026 Keep the core loop free. Charge for the invisible upgrades behind it. StoreKit 2 Invisible upgrades 15% from day one speakerdeck.com/simplememo · x.com/simplememofast · 2026-07-08
  2. Solo iOS Growth Diary · Vol. 9 · Pricing a

    Pro Tier 02 / 35 The series promise 01 Battle-tested patterns From a solo iOS founder shipping in public. 02 Real numbers, no mythology Price, conversion, churn — measured and printed. 03 Anti-thesis every volume Three counter-arguments per topic. Survival > fashion. 04 Reproducible code Copy-paste over inspirational quotes.
  3. Solo iOS Growth Diary · Vol. 9 · Pricing a

    Pro Tier 03 / 35 Today's roadmap 1 The paywall that emptied the funnel Slide 04–08 2 Reframe: a shelf, not a wall Slide 09–11 3 What to gate vs keep free Slide 12–13 4 Tiers & the 2026 commission board Slide 14–15 5 StoreKit 2 — architecture & code Slide 16–18 6 The funnel, in numbers Slide 19 7 Anti-thesis — three counter-punches Slide 20–22 8 L TV, trials, weaknesses Slide 23–25 9 7-Step Playbook Slide 26–30 1 0 Honest Scoreboard Slide 31–32
  4. Solo iOS Growth Diary · Vol. 9 · Pricing a

    Pro Tier 04 / 35 The core loop must be free. So what do you charge for? The answer isn't a gate on the essential. It's a shelf for the invisible.
  5. Solo iOS Growth Diary · Vol. 9 · Pricing a

    Pro Tier 05 / 35 A short history of charging on iOS 2008 Paid apps (App Store opens) 2009 In-App Purchase 2011 Auto-renewable subscriptions 2016 85 / 15 after year one 2020 Small Business Program: 15% 2025 US external links allowed 2026 The board today (still moving) Amber = a lever a solo dev can actually pull. Every era added a way to charge; none removed the rule that the core loop stays free.
  6. Solo iOS Growth Diary · Vol. 9 · Pricing a

    Pro Tier 06 / 35 The paywall that emptied the funnel SimpleMemo v0.9 (a pricing experiment we regret) We gated the first write behind a 7-day paywall — you had to start a trial before you could save a single memo. It looked reasonable in a spreadsheet. In the funnel it was a disaster: people bounced at the one screen that was supposed to hook them. -41% activation in one week 1 screen between install & value 0 extra trust earned 1 root-cause reversal The first write is the product's promise being kept. Charge before it, and you sell a promise you haven't yet delivered. Insight → the loop that earns trust is the one you must never meter.
  7. Solo iOS Growth Diary · Vol. 9 · Pricing a

    Pro Tier 07 / 35 Indie pricing reality — what free users are worth Most people will never pay you a cent — and that's the plan. Free users are the funnel, the word-of-mouth, and the reviews that rank you. 1–5 % typical free→paid conversion for indie apps 3.4 % SimpleMemo free→Pro (Advanced Mode) 34 % of 7-day trials convert to paid 100 % of free users can still refer a paying one T H E L E V E R At a 3.4% conversion, 97 of every 100 users pay nothing — so your monetization can only come from deepening value for the few, never from taxing the many. Price the shelf, subsidize the loop. Source: SimpleMemo pricing telemetry, 2026-Q2; indie ranges from public benchmarks.
  8. Solo iOS Growth Diary · Vol. 9 · Pricing a

    Pro Tier 08 / 35 Why gating the core loop breaks It kills activation A charge before first value asks for trust you haven't earned. People bounce at the gate. It poisons word-of-mouth Free users are your referral engine and your reviews. A wall silences the channel that ranks you. It inflates refunds & 1-stars Paying before the aha-moment maximizes buyer's remorse — the worst possible first impression. It conflates acquisition with monetization Two different jobs. The loop acquires; the shelf monetizes. Don't make the loop do both. It gets worse at scale More installs → more people hitting a wall they didn't consent to → a leak you can't out-market.
  9. Solo iOS Growth Diary · Vol. 9 · Pricing a

    Pro Tier 09 / 35 “ Charge for the plumbing. Never for the pipe. — Solo iOS Growth Diary · Vol. 9
  10. Solo iOS Growth Diary · Vol. 9 · Pricing a

    Pro Tier 10 / 35 Reframe: a Pro tier is a shelf, not a wall A wall asks "pay to continue." A shelf says "here's more, if you want it." The free loop keeps every promise on its own. The Pro shelf holds the invisible upgrades — the durable plumbing power users value — that never change the default experience. Wall pay to keep doing the essential Shelf pay to add the optional & invisible Free loop acquisition + retention, untouched Pro shelf monetization, opt-in, additive
  11. Solo iOS Growth Diary · Vol. 9 · Pricing a

    Pro Tier 11 / 35 The Invisible-Upgrade test A feature belongs on the Pro shelf only if it passes all three. Miss one and it's either a wall (bad) or a giveaway (fine, keep it free). 1 · Zero UI cost to free users Its absence changes nothing about the default zero-tap loop. No new buttons, no complexity for the 97%. 2 · Deep value to a power cohort The people who want it really want it — enough to pay. Integrations, extra sinks, advanced sync. 3 · Not a privacy/security essential You never paywall E2E, encryption, or the user's own data export. Trust is free, forever.
  12. Solo iOS Growth Diary · Vol. 9 · Pricing a

    Pro Tier 12 / 35 What to keep free vs what to gate F R E E F O R E V E R • Zero-tap memo → email write (the core loop) • AES-GCM E2E on the send path (never paywall privacy) • Local search & open the app • Export your own data, always • The acquisition + retention engine PRO · ADVANCED MODE • Daily-note vault integration (the flagship invisible upgrade) • Extra sinks / power-user sync • Advanced automations, priority delivery • The invisible plumbing the few deeply value
  13. Solo iOS Growth Diary · Vol. 9 · Pricing a

    Pro Tier 13 / 35 Case study · the most invisible upgrade Advanced Mode is the Pro shelf. The clearest "price the invisible" item on it is the Obsidian daily-note integration. Free loop: unchanged No new buttons, no setup, no complexity. The default zero-tap memo → email write is 100% identical whether or not this exists. Power users: deep value Opt in under Advanced Mode and every sent memo auto-appends to today's vault note (yyyy-MM-dd.md) on iCloud Drive — no plugin, no app switching. So it's textbook Pro Zero UI cost to the 97%, high value to the few, not a privacy essential → it passes the Invisible- Upgrade test cleanly. F A I R P R I N T The Advanced Mode tier is opt-in. The Obsidian append is iPhone-only; the vault must live on iCloud Drive or "on this iPhone"; it targets the daily note or a fixed Inbox note; iCloud reflection can lag a few seconds. Pricing-honest rule: you gate the integration, never the privacy — the AES-GCM email path stays free. Ref: simplememofast.com/obsidian/
  14. Solo iOS Growth Diary · Vol. 9 · Pricing a

    Pro Tier 14 / 35 The tiers · one free, one that funds the work Free $0 forever • Zero-tap memo → email • AES-GCM E2E send • Local search + export Pro (Advanced Mode) $9.99 per year · or $0.99/mo • Vault integration • Extra sinks / sync • 7-day free trial Lifetime $24.99 one-time · a complement • All Pro features • No recurring charge • For sub-averse users
  15. Solo iOS Growth Diary · Vol. 9 · Pricing a

    Pro Tier 15 / 35 The commission board · 2026 What you actually keep from every $10, by path. For a solo dev the Small Business Program is the default: 15% from day one. Standard (sub year 1) you keep $7.00 · 30% After 12 retained months you keep $8.50 · 15% Small Business Program you keep $8.50 · 15% day one US external link (2026) ≈ $10 · fee TBD Fair print: the US external-link path is unsettled — allowed at 0% since May 2025, but a Dec 2025 appeals ruling lets Apple charge a court-set "reasonable" fee. Treat it as moving. Non-US storefronts differ (EU DMA, etc.).
  16. Solo iOS Growth Diary · Vol. 9 · Pricing a

    Pro Tier 16 / 35 StoreKit 2 · entitlement is the source of truth products(for:) fetch Product from App Store ▶ purchase() returns a signed VerificationResult ▶ verify (JWS) checked on-device; server later ▶ currentEntitlements the truth of what's unlocked T H E U P D A T E S L O O P Renewals, refunds, Ask-to-Buy approvals, and purchases on the user's other devices arrive asynchronously through Transaction.updates. Listen at launch and re-derive entitlements — never trust a cached Bool. W H Y I T ' S S I M P L E N O W StoreKit 2 (iOS 15+) wraps every transaction in a cryptographically verified result, so you skip receipt-parsing entirely. ~180 lines of Swift, $0 of server for v1. The mechanics are easy; spend your judgment on what to gate.
  17. Solo iOS Growth Diary · Vol. 9 · Pricing a

    Pro Tier 17 / 35 Code · fetch a product & purchase import StoreKit // Product IDs live in App Store Connect (+ a .storekit file for tests). let ids = ["pro.yearly", "pro.lifetime"] func buy(_ id: String) async throws { let products = try await Product.products(for: ids) guard let pro = products.first(where: { $0.id == id }) else { return } switch try await pro.purchase() { case .success(let verification): let txn = try checkVerified(verification) // unwrap the JWS await grantEntitlement(from: txn) // unlock Pro await txn.finish() // tell StoreKit we're done case .userCancelled, .pending: break // no unlock, no crash @unknown default: break } } No receipt files, no OpenSSL. purchase() hands you a verified transaction or a clean cancel.
  18. Solo iOS Growth Diary · Vol. 9 · Pricing a

    Pro Tier 18 / 35 Code · derive Pro from entitlements, not a Bool // Source of truth = the transactions Apple still considers valid. func refreshPro() async { var pro = false for await result in Transaction.currentEntitlements { if let txn = try? checkVerified(result), txn.productType == .autoRenewable || txn.productType == .nonConsumable { pro = true } } isPro = pro // a refund or lapse flips this back automatically } // Renewals, refunds, Ask-to-Buy, other-device buys all land here: func listen() -> Task<Void, Never> { Task.detached { for await update in Transaction.updates { if let txn = try? checkVerified(update) { await refreshPro(); await txn.finish() } } } } func checkVerified<T>(_ r: VerificationResult<T>) throws -> T { switch r { case .verified(let safe): return safe // JWS ok (on-device) case .unverified: throw StoreError.failedVerification } } Entitlements are self-correcting: refunds and lapses revoke Pro without any server call.
  19. Solo iOS Growth Diary · Vol. 9 · Pricing a

    Pro Tier 19 / 35 The funnel, in numbers Every stage after the free write is optional. The loop does the acquiring; the shelf quietly converts the few. Install 100% Activate (first write, free) 78% Start 7-day trial 9.2% Convert to paid 3.4% Retained at 1 year 2.1% The 22% who never activate cost you nothing you charged them for. The 96.6% who never pay still rank and refer you. Source: SimpleMemo, 2026-Q2 (illustrative blend).
  20. Solo iOS Growth Diary · Vol. 9 · Pricing a

    Pro Tier 20 / 35 Anti-thesis 1 · "Free + ads beats a subscription." They say: “Go free, run ads, monetize 100% of users instead of 3%. Ad networks pay per impression; a subscription only converts a tiny sliver.” Reality: Ads tax the 3-second capture loop that IS the product They break the privacy / E2E promise from Vol. 5 RPM is pennies for a utility opened in quick bursts A Pro tier deepens value instead of degrading it Trust compounds an ad-free memo app is a feature
  21. Solo iOS Growth Diary · Vol. 9 · Pricing a

    Pro Tier 21 / 35 Anti-thesis 2 · "Paywall the core loop." “If the memo write is your best feature, charge for it. Put the thing people love behind the paywall — that's where the money is.” The money is downstream of trust — and trust is built in the free loop: The loop's job acquire + retain — it's the top of every funnel Gate it and activation falls 41% (we measured it, Vol. 9 slide 6) The love is what makes them stay AND refer — don't tax it Charge instead for the invisible upgrades they don't need but want The rule meter the shelf, subsidize the pipe
  22. Solo iOS Growth Diary · Vol. 9 · Pricing a

    Pro Tier 22 / 35 Anti-thesis 3 · "Skip subs — sell a lifetime unlock." L I F E T I M E - O N L Y “One honest price, paid once. No recurring guilt, no churn to manage.” • A service has ongoing cost — sync, delivery, maintenance • A one-time price caps LTV and mismatches year-3 support • Early lifetimes subsidize nothing when costs keep coming • Great marketing, fragile math SUB + HONEST LIFETIME “Recurring funds recurring cost. Offer lifetime as a complement, not the only door.” • StoreKit 2 makes subs low-friction (currentEntitlements + updates) • Sub compounds with retention and matches ongoing cost • Keep a $24.99 lifetime for the sub-averse — no dark patterns • Let people choose; don't trap them
  23. Solo iOS Growth Diary · Vol. 9 · Pricing a

    Pro Tier 23 / 35 Three monetization models, 3-year view Subscription $16.83 net / subscriber, 3 yr then keeps compounding past yr 3 Lifetime (only) $21.24 net / buyer, once front-loaded, then $0 vs ongoing cost Free + Ads $0.90 per free user, 3 yr scales only with volume · taxes the loop Illustrative (SimpleMemo blend, 15% SBP, 61% annual retention). Lifetime wins the 3-year sprint but caps out; the sub overtakes it as costs — and years — keep coming. That's why lifetime is a complement, not the base.
  24. Solo iOS Growth Diary · Vol. 9 · Pricing a

    Pro Tier 24 / 35 Trials, offers & the churn you don't choose Free trial A 7-day intro trial lets value land before the charge. 34% of SimpleMemo trials convert — because activation already happened for free. Intro & promo offers StoreKit 2 introductory offers and offer codes let you discount a first period or win back lapsed users, all configured in App Store Connect. Billing-retry & grace Most sub cancellations are involuntary — an expired card. A grace period keeps Pro on while StoreKit retries; recovers real revenue for $0 effort. Ask-to-Buy & other devices Family approvals and cross-device buys arrive via Transaction.updates. Handle them at launch or a paid user looks unpaid until relaunch.
  25. Solo iOS Growth Diary · Vol. 9 · Pricing a

    Pro Tier 25 / 35 Where a Pro subscription is the wrong call A static one-shot utility No ongoing cost, no updates? A single one-time purchase is more honest than a subscription. A tiny or price-insensitive audience If the payable cohort is small, sub overhead (support, dunning, churn ops) may not be worth it. Anything privacy/security-essential Never paywall E2E, encryption, or the user's own data export. Those stay free, forever. Regions where subs underperform Some storefronts convert far better on one-time pricing. Offer a local option; measure, don't assume. A product with no 'invisible' layer If everything you build is core-loop, you may not have a Pro shelf yet. Don't invent a wall to fake one. Pricing is a fit question, not a fashion. Match the model to the cost structure and the cohort.
  26. Solo iOS Growth Diary · Vol. 9 · Pricing a

    Pro Tier 26 / 35 Playbook · Step 1 of 7 Keep the core loop free forever Never meter the memo → email write. It is acquisition and retention; a wall here empties the funnel. H O W // The write path has no entitlement check. Ever. func saveMemo(_ m: Memo) { outbox.enqueue(m) } // free, always W H Y The loop that earns trust is the one you subsidize. That's not charity — it's the top of your funnel.
  27. Solo iOS Growth Diary · Vol. 9 · Pricing a

    Pro Tier 27 / 35 Playbook · Step 2 of 7 Charge for invisible upgrades Advanced-Mode plumbing goes behind Pro: it passes the Invisible-Upgrade test (zero UI cost, deep value, not privacy). H O W if isPro { enableVaultSink(); enableExtraSinks() } // free experience is byte-for-byte unchanged when false W H Y You're selling depth to the few, not access to the many. The default stays pristine.
  28. Solo iOS Growth Diary · Vol. 9 · Pricing a

    Pro Tier 28 / 35 Playbook · Step 3 of 7 Use StoreKit 2 Product → purchase() → VerificationResult → currentEntitlements. On-device verification for v1; server later. H O W let products = try await Product.products(for: ids) switch try await products[0].purchase() { /* verified txn */ } W H Y No receipt parsing, no OpenSSL. iOS 15+, ~180 lines. The mechanics stopped being the hard part.
  29. Solo iOS Growth Diary · Vol. 9 · Pricing a

    Pro Tier 29 / 35 Playbook · Step 4 of 7 Gate on entitlements, not booleans Derive isPro from Transaction.currentEntitlements and observe Transaction.updates for renewals, refunds, other devices. H O W for await r in Transaction.currentEntitlements { /* isPro */ } for await u in Transaction.updates { await refreshPro() } W H Y A cached Bool lies after a refund. Entitlements self-correct without a server call.
  30. Solo iOS Growth Diary · Vol. 9 · Pricing a

    Pro Tier 30 / 35 Playbook · Steps 5–7 (trial, retention, region) 5 Offer a real trial + an honest lifetime A 7-day intro trial; a non-recurring lifetime as a complement. No dark patterns on the choice. Value lands in the trial because activation was already free. Honesty converts better than tricks. 6 Price for retained subscribers SBP is 15% from day one. Optimize year-2 retention; recover involuntary churn with billing-retry and grace periods. The cheapest revenue is the churn you prevent. A grace period is free money you're leaving on the table. 7 Localize price, respect the region Use StoreKit price tiers per storefront; some regions favor one-time. Measure both; don't assume the US model travels. A price that's fair in USD can be a wall elsewhere. Let each storefront tell you its own answer.
  31. Solo iOS Growth Diary · Vol. 9 · Pricing a

    Pro Tier 31 / 35 Honest scoreboard · SimpleMemo pricing free the core loop, forever — 100% of users $9.99/yr Pro (Advanced Mode) · $0.99/mo · $24.99 lifetime 15% Apple's cut (Small Business Program) → net $8.49 3.4% free → Pro conversion · 34% of trials convert 61% annual Pro retention · 1.8% refund rate ~180 lines of StoreKit 2 · $0 server for v1 Source: SimpleMemo pricing telemetry, 2025-07 → 2026-06. Re-printed in Vol. 13's year-one retrospective.
  32. Solo iOS Growth Diary · Vol. 9 · Pricing a

    Pro Tier 32 / 35 Where it broke (so you don't have to find out) 2025-08-14 Gated the first write -41% activation A trial wall before the first memo tanked the funnel. Reverted; the core loop is free forever now. 2025-11-03 Cached Bool for Pro refund left user 'Pro' Unlock was a UserDefaults flag. Switched to Transaction.currentEntitlements as the only source of truth. 2026-01-22 Ignored updates at launch renewals didn't unlock Didn't observe Transaction.updates on start → other-device buys unlocked only after relaunch. Added a launch listener. 2026-03-09 Lifetime-only test LTV < server cost A one-time-only price capped LTV below per-user cost. Reframed lifetime as a complement to the sub. Pattern: every failure came from charging in the wrong place or trusting the wrong state. Gate the shelf; derive from entitlements.
  33. Solo iOS Growth Diary · Vol. 9 · Pricing a

    Pro Tier 33 / 35 What to copy, what to skip C O P Y • A free-forever core loop as your acquisition engine • A Pro shelf of invisible upgrades (Advanced Mode) • StoreKit 2 + entitlements as the single source of truth • A 7-day trial and an honest lifetime complement S K I P • Gating the first write or the core loop of any kind • Ads that tax a fast-capture, privacy-first tool • A cached Bool as your unlock (refunds will lie) • Paywalling privacy, encryption, or the user's own data
  34. Solo iOS Growth Diary · Vol. 9 · Pricing a

    Pro Tier 34 / 35 Free the loop that earns the trust. Then charge, honestly, for the plumbing behind it. — @simplememofast
  35. Solo iOS Growth Diary · Vol. 9 · Pricing a

    Pro Tier 35 / 35 Next week · Vol. 10 V O L . 1 0 Onboarding-Zero — The 0-Tap First-Write Principle Thesis: the first screen is a cursor. Why the fastest onboarding is no onboarding — drop the user straight into a blank memo — and how a zero-tap default still exposes Advanced Mode for power users. F O L L O W speakerdeck.com/simplememo x.com/simplememofast New deck every Tuesday 22:00 JST. P U B L I S H E D Vol. 1 · From EOL to Encore Vol. 2 · Speed · Vol. 3 · Email-as-Sync Vol. 4 · Outbox · Vol. 5 · AES-GCM · Vol. 6 · ASO Vol. 7 · SpeechAnalyzer · Vol. 8 · Refugees Vol. 9 · Pricing a Pro Tier ← you are here