All Articles
When EAS Build Stops at "Project archive is too big", Count What Gets Uploaded, Largest First
EAS Build warns at 150 MiB and fails at 2 GiB. Here is how to list what will be uploaded before you send it, find the culprit, and decide what goes into .easignore.
It runs in development but the iOS Release build dies on launch — checking whether a missing scheme is the cause
In an expo-router app, an app.json with no scheme can crash only the iOS Release build at launch. Why Debug and Android survive, the two ways to fix it, how to think about leaving the scheme out on purpose, and a pre-submission check.
An Image Requested Once Before Its Upload Stayed a 404 at the Edge. I Split the Retention Rules by Status Code and Made Upload and Purge a Single Step
A new wallpaper stayed missing in some regions because the CDN kept a 404, fetched once before the upload, as long as it kept the image itself. Per-status retention, a two-request diagnosis, and pairing upload with purge, tested in Node.
When DevTools Stays Silent in Expo Go on Android, Suspect the Runtime Before Your Code
In Expo Go on Android, React Native DevTools can open but never evaluate anything in the Console, and the Sources tab stays empty. Three quick checks to tell it apart from a bug in your own code, how to switch to a development build, and what to do if you can't.
Connected, but the Body Stops Halfway. Measuring Header-Only, Total, and Idle Timeouts on the Same Response
You added a timeout to fetch, yet the loading indicator never goes away. I reproduced a response whose body stalls halfway on a local server and measured header-only, total, and idle timeouts under identical conditions. Runnable test code included.
When a list is empty and no error shows, open Rork's Logs panel before asking for a fix
A Rork preview shows an empty list but no red error. Before repeating the same fix request, have the app print its values to the Logs panel and split the cause into three places.
Three One-Line Additions to Your First Budget-App Prompt: Integer Yen, Local-Date Months, Normalized Input
Adding one line each about how money is stored, where a month begins, and how input is cleaned can prevent month-end totals from drifting in a household-budget app. Behavior checked on Node 22, with a small function you can reuse.
Users Told Me They Could Not Close a Fullscreen Ad. The Entry Points Were Scattered, So I Put the Show-or-Not Check and a Safety Net in One Place
An unclosable fullscreen ad came from calls that ignored foreground state, a clash with a permission dialog, and no safety net. A single entry-point component, tested in Node.
If You Want to Rename an App After Release, Sort What the Store Keeps From What You Redo. Before Choosing a Name, Look at a Trademark Search
Being able to save a name in App Store Connect is not the same as being allowed to use it. Here is what Apple and Google Play documentation actually says about renaming after release, a small script that finds the old name left inside your project, and the order I check things before settling on a name.
"Project is incompatible with this version of Expo Go": Three Places to Check Before Blaming Your Project
When Expo Go says your project needs a newer Expo Go, there are three things to compare before you delete node_modules: the project's SDK, the SDK the app supports, and, on Android, a real mix-up in Expo Go 56.0.1. Here is the order I check them in.
Before You Change Plans, Check That Your Re-Cloned Code Can Be Rebuilt Without Rork
Exporting Rork code to GitHub doesn't guarantee you can rebuild it elsewhere. A Python script that checks lock files, app identifiers, images, import targets and env-var names in a fresh clone, plus an honest note on what was and wasn't tested.
Claude Sonnet 4.5 Leaves the API on November 30. Find the Model IDs Hard-Coded in Your App First
Claude Sonnet 4.5 is scheduled to retire from the API on November 30, 2026. A small script finds the model IDs written into your app's code and config, so you can replace them and check again.