Implementation Notes: Adding StoreKit 2 In-App Purchases to a Rork iOS App
Notes from grafting StoreKit 2 in-app purchases onto Swift/SwiftUI code generated by Rork, drawing on the StoreKit 1-to-2 migration done across a 50M-cumulative-download wallpaper-app portfolio. Covers ProductID design, transaction verification, paywall UI, and production gotchas.
iOS Memory Pressure on Rork Apps — A 5-Tier Release Architecture from 12 Years of Wallpaper Apps
A 5-tier memory release architecture for Rork-built iOS apps, refined while running wallpaper apps to a cumulative 50 million downloads. Includes the Instruments + MetricKit measurement flow that brought OOM rate from 4.3% to 0.36%.
Adding AppLovin MAX to a Rork-Generated iOS Project — A Field Note on Init Order, ATT Consent, and eCPM A/B Testing
A field note from an indie developer on layering AppLovin MAX on top of a Rork-generated iOS app: SDK initialization order, ATT and MAX consent flag sync, and a minimal A/B setup to compare eCPM against AdMob-only.
Why your Rork app shows a blank screen or loses state after returning from background
Your Rork app sits in the background overnight, you tap the icon the next morning, and the screen is blank — or your drafts have disappeared, or you have been silently logged out. iOS process reclamation, AsyncStorage rehydration timing, and Navigation state restoration each cause a different version of this bug. Notes from running wallpaper and wellness apps with 50M downloads as an indie developer.
Rolling Out Privacy Manifest to Six Wallpaper Apps in Parallel — Translating One Rejection into Five Clean Submissions
Operational notes from rolling out Privacy Manifest to six iOS wallpaper apps in parallel. How a single rejection on the first submission shaped the remaining five, and how phased release rings were designed for a UI-less update.
Enforcing AI Cost Ceilings at Runtime — A Budget-Guard Architecture for Rork Apps
How to stop runaway AI bills not by optimizing, but by physically enforcing budget at runtime. An indie developer's three-layer architecture using Cloudflare Durable Objects, with hard-won lessons from running 50M-download apps.
Staged migration of a Rork-generated RN project to the New Architecture — notes from running six wallpaper apps in parallel
An implementation log for incrementally enabling Fabric and TurboModules on a Rork-generated React Native project, validated in parallel across six wallpaper apps. Covers flag design, compatibility triage, and KPI comparison based on actual production data.
From a Rork-Built App to Monthly Break-Even at 100 Yen Subscription: Indie Numbers from May 2026
A small Rork-built utility app reached month-over-month break-even on a 100 yen subscription combined with AdMob. May 2026 numbers, decisions, and what I deliberately left out.
Rork-Specific 'expo start --offline forbidden': Four Causes in Rork's Template Config
When expo start --offline returns 'forbidden' specifically on a Rork-generated project, the cause is usually Rork template config: tsconfigPaths, an un-generated expo-router cache, native prebuild, or a lockfile mismatch. Four Rork-specific fixes; the generic Expo proxy and dependency-validation guide is covered separately.
Three Weeks Triaging Crashlytics Velocity Alerts With Claude in Chrome
I spent three weeks letting Claude in Chrome open Firebase and triage Crashlytics Velocity Alerts for my wallpaper app. Here is what actually got easier, and what still needs human judgment.
Minimal Customer Support Architecture for Solo Rork Devs — Running Inquiries for Multiple Apps Alone
The minimum-viable customer support stack I run as a solo developer maintaining a dozen apps with 50M cumulative downloads — in-app form with auto-attached diagnostics, Gmail filtering, reply templates, and the escalation rules that keep me under thirty minutes a day.
Designing AdMob App Open Ad Frequency Without Hurting Retention — Operational Notes from Wallpaper Apps
Implementation notes from rebuilding the AdMob App Open Ad frequency design in a recent wallpaper app update. Minimum intervals, cold-start exceptions, and post-modal suppression are controlled dynamically through Remote Config, with Claude in Chrome handling the daily dashboard review.