All Articles
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.
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.
Auditing Privacy Manifests for Rork-Generated Expo Apps — A One-Day Pre-Submission Workflow for Indie Developers
A pre-submission workflow for indie developers shipping Rork-generated Expo apps. Walks through how to enumerate every dependency, detect missing PrivacyInfo.xcprivacy files, and ship without ITMS-91053 rejections — based on twelve years of personal app development.
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.
Why FlatList's onEndReached Fires Multiple Times — and How to Stop It
After wiring up infinite scroll in a Rork-generated FlatList, you may notice the same paginated request hitting your API two or three times in a row. Here's why onEndReached fires more often than you expect and how to add a two-layer defense that survives production.
Picking Rork Max Over FlutterFlow and Replit Agent — Selection Criteria from an Established App Business
I ran Rork Max, FlutterFlow, and Replit Agent in parallel for six weeks while adding a new AI-wallpaper feature to an existing wallpaper app business at Dolice (cumulative ~50M downloads since 2014). Greenfield comparisons are everywhere; this one is from the rarer angle of fitting an AI app builder into an existing app business — and why Rork Max won.
Three Months of Letting Claude in Chrome Help with App Store Review Replies
For most of my twelve years as an indie developer, App Store and Google Play review replies kept slipping to the bottom of the list. I spent three months letting Claude in Chrome help with the drafting, and the way I face one-star reviews changed in ways I didn't expect.
Designing an Observability Stack for Rork Max — Unifying Sentry, Crashlytics, and Cloudflare Logs from a Solo Developer's View
A practical observability stack design for apps shipped with Rork Max, covering Sentry, Crashlytics, and Cloudflare Logs role separation, scenario-based incident tracing routes, and how a solo developer can sustain it over years.
Rork iOS App Rejected with ITMS-90683 on TestFlight — How to Fix Missing Purpose Strings via app.json
If your Rork-built iOS app passes upload but gets an email titled ITMS-90683: Missing Purpose String in Info.plist, this guide walks through the real cause and the permanent fix via app.json, based on 12 years of shipping personal iOS apps with the same problem appearing across new SDK updates.
Putting AdMob Bidding into Production for a Rork App — Five Networks Bidding in Parallel, eCPM Trends, and Daily Operations
I moved the AdMob mediation layer of my Rork-generated apps from waterfall to bidding, with five ad networks bidding in parallel. Here are my real-world numbers after three weeks of production, the SDK pitfalls, and how I delegate daily monitoring to Claude in Chrome.