When Hiragana Doesn't Match Katakana — Japanese-Aware In-App Search for Rork Apps
A hiragana query silently missing katakana titles is a UX failure users never report. How I fixed Japanese search in my wallpaper app with NFKC normalization, kana folding, and precomputed search keys.
Android 17 Will Ignore Your Portrait Lock — Getting Rork-Built Expo Apps Ready for Large Screens Ahead of Time
Android 17 stops honoring orientation locks and resizability restrictions on large-screen devices. Here is how I assessed the impact on my Rork-built Expo apps, reworked the layouts, and verified everything with nothing but an emulator.
Adding a Home Screen Widget to a Rork App — Making WidgetKit Work Within Expo's Constraints
Rork generates Expo apps, and home screen widgets can't be written in React Native. Here's how to wire up WidgetKit with a config plugin and App Groups — including the parts that tripped me up.
Keeping a wallpaper app's binary small: moving images out of the bundle
Wallpaper apps bloat every time you add images. Here is where I draw the line between bundled and remote assets, how I keep first paint fast with prefetching, and the format work that cut transfer size to a third — with real numbers.
expo start --offline Says 'forbidden'? Corporate Proxy (403) vs Dependency Validation
Two different failures make 'expo start --offline' or EXPO_OFFLINE=1 die with 'forbidden': an HTTP 403 from a corporate proxy, and Expo CLI validateDependenciesVersions guard. How to tell them apart, when to set HTTP_PROXY to route through the proxy, and when to go fully offline with pre-generated caches instead.
Putting a Wallpaper Shuffle in Control Center — a ControlWidget in a Rork (Expo) App, Rebuilt for iOS 26
Field notes on bolting a Control Center control (ControlWidget) onto a Rork-built React Native wallpaper app — App Group sharing, AppIntent, the Expo config plugin that survives prebuild, and what changed when I rebuilt it for iOS 26 accented rendering.
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.
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.
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.
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 Native Settings Across Rork-Exported Apps with a Custom Expo Config Plugin
Tired of re-typing your AdMob ID and ATT string every time prebuild wipes your Info.plist? Here is how I made native settings reproducible with a custom Expo config plugin and shared it across six wallpaper apps.
Fixing 'TurboModuleRegistry.getEnforcing could not be found' in Rork
A practical walkthrough of the 'TurboModuleRegistry.getEnforcing(...): could not be found' error that became common once the New Architecture went default. Covers Expo Go vs. dev builds, when a native rebuild is required, and how to isolate libraries that aren't New Architecture-ready.