All Articles
Your Rork iOS App Won't Build After Adding AdMob Mediation — Untangling Linker Errors and No-Fill Ads
Added Unity Ads, Liftoff, or InMobi mediation adapters to your Rork/Expo iOS app and suddenly hit ld linker errors or ads that never fill? Here's how to isolate the cause by symptom and fix each layer.
Unifying Onboarding Across Six Wallpaper Apps: What One Month of First-Day Retention Showed Me
I folded the onboarding flows of six wallpaper apps scaffolded with Rork into a single config-driven component and watched first-day retention and push opt-in for a month. Here is an honest, operational note on what moved and what didn't.
Guarding Analytics Events With Types Across Six Rork Apps — A Shared Event Layer
After event names drifted across six apps and quietly broke my dashboards, I built a typed event registry and a thin wrapper to centralize tracking, plus a CI check that catches schema drift. Here is the design, with the code I actually use.
Fixing 'No bundle URL present' on a Release Build to a Real iOS Device
How to read the 'No bundle URL present' error that shows up when you build a Rork-exported app locally in Xcode. We separate the Metro-connection case from the missing-embedded-bundle case, and walk through generating an offline bundle by hand with working commands.
Measuring the Real eCPM Yourself: Piping Impression-Level Ad Revenue Into Your Own Analytics
The AdMob dashboard's average eCPM hides which regions and placements actually earn. Here is how I capture per-impression revenue with paidEventListener, normalize it, and pipe it into my own analytics to compute a real eCPM by network, placement, and country.
What Localizing My Wallpaper Apps' App Store Listings Taught Me — Translation Isn't the Hard Part, Being Read Locally Is
Field notes from localizing my wallpaper apps' App Store listings across many locales: where literal translation fell short, where the keyword field and screenshot copy actually moved the needle, and how I now prioritize localization as a solo developer.
Shipping Six Wallpaper Apps From One Codebase: A White-Label Build Setup with app.config.ts and EAS
Maintaining near-identical wallpaper apps in separate repos means every fix has to be copied six times — and one day you miss one. Here is the white-label setup I moved to: one codebase that emits six apps through a single APP_VARIANT, with the real app.config.ts and eas.json, plus a validation script that catches config drift before the build runs.
When Your Android Vitals ANR Rate Climbs: Notes on Keeping the Main Thread Free in React Native
How I traced and fixed a rising Android Vitals ANR rate in a Rork-built React Native app, plus the main-thread rules I rolled out across six apps in production.
Fixing 'JavaScript heap out of memory' in Metro and EAS Builds
Your Rork or Expo build dies with 'FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory.' Here is why it happens and exactly how to fix it, both locally and on EAS Build.
Managing Startup Time as a Budget: How I Deferred SDK Init Across Six Apps
Instead of optimizing startup ad hoc, I switched to allocating a per-phase time budget and defending it. Here's how I deferred SDK init across six Rork-built apps and added a CI gate that fails the build when the budget is exceeded.
Fixing the 'Signed With the Wrong Key' Error When Uploading a Rork App to Google Play
Your Rork app builds fine but Google Play rejects the upload with 'signed with the wrong key'? Here's how to tell which signing key is involved and the exact steps to fix it for each build setup.
Retuning AdMob Mediation Priorities: Notes From Trying to Lift My eCPM
A running log of how I manually revisited the network priorities in my AdMob mediation setup to lift eCPM on an indie wallpaper app, what changed compared to leaving it on auto-optimization, and what I noticed along the way.