All Articles
Two Weeks Tightening Up iPad Support for a Rork-Generated Wallpaper App
Notes from spending two weeks tightening up iPad support for a wallpaper app I scaffolded with Rork. Coming from an iPhone-centric indie practice since 2014, I cover where Rork's defaults stopped, how the AdMob adaptive banner misbehaved on iPad, and what changed in retention afterwards.
Aggregating App Store Connect, RevenueCat, and AdMob into One Morning Digest with Cloudflare Workers — A Six-App Indie Architecture
A practical architecture for indie developers running multiple Rork apps: aggregate App Store Connect API, RevenueCat REST, and AdMob Reporting API in a Cloudflare Workers Cron job and ship a single daily Slack digest each morning.
Fixing Layout Bleed on Android 15 (API 35) in Rork Apps
Once you bump targetSdkVersion to 35, Android 15 enforces edge-to-edge display, and Rork-generated tab bars and headers start sliding under the system bars. Here are the patterns I use with react-native-edge-to-edge and useSafeAreaInsets to fix it properly.
One Month of Reading Xcode Organizer Hang Reports Only on Friday Afternoons
I switched to reading Xcode Organizer Hang Reports for only thirty minutes every Friday for a month. Here is how it compared with Crashlytics and what actually improved across my wallpaper apps.
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%.
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.
Clearing the Red Errors in Xcode After Rork Max Generates Swift Code: A Priority Order
A priority order I use to clear the wall of red errors that Rork Max-generated Swift projects show on first open in Xcode, drawn from ten-plus years of indie iOS work.
expo-haptics Silent on Production Builds in Rork — Simulator, Device, and Low Power Mode Pitfalls
Your Rork-generated app taps the favorite button and nothing happens on TestFlight — but Expo Go works fine. Lessons from a wallpaper indie shop on the five most common reasons expo-haptics goes silent, with working call patterns for each.