◉RORK LABJP
●EXPO — EAS Observe now records native crashes too (Oct 7). Check on SDK 57 at 57.0.21 or later●RORK — GPT-6.1 Sol (Sep 29) and Claude Sonnet 5.5 (Sep 28) were added to the model menu●RN 0.88 — Not out yet. The latest is rc.4 (Oct 7), and 0.87.1 is the current Latest●Q&A — A write-up lists four snags on the way to TestFlight with an Expo + Supabase app●ECOSYSTEM — With Shopify going back to native, one write-up explains why a solo developer stays on Expo●NEW — Before you write 'ship in a week', look at the breakdown of waiting days●EXPO — EAS Observe now records native crashes too (Oct 7). Check on SDK 57 at 57.0.21 or later●RORK — GPT-6.1 Sol (Sep 29) and Claude Sonnet 5.5 (Sep 28) were added to the model menu●RN 0.88 — Not out yet. The latest is rc.4 (Oct 7), and 0.87.1 is the current Latest●Q&A — A write-up lists four snags on the way to TestFlight with an Expo + Supabase app●ECOSYSTEM — With Shopify going back to native, one write-up explains why a solo developer stays on Expo●NEW — Before you write 'ship in a week', look at the breakdown of waiting days
Articles/Dev Tools
⬡ Dev Tools/2026-08-29Advanced

The Remote Config keys you add after your release path closes are invisible to the build already on devices

A record of recounting what I can still change remotely before my release path closes. A key you add in the console does nothing unless a build that reads it is already on devices. Which switches to ship in the last build, and a shared-defaults bug I measured.

Remote Config10Expo214Release Operations3Indie Development26Feature Flags4

✦ Premium Article

With August 31 approaching, I lined up my apps and went through them one at a time, asking whether each one could realistically get a new build out before the deadline. When you have been shipping as an indie developer for long enough, a few apps always end up with a slow update cadence. They still work, but you have not touched them recently — and those are exactly the ones where a build attempt turns into a dependency archaeology session.

So I changed the question. Suppose I miss the deadline on one of them and end up unable to ship a new build for a while. How much of that app can I still change from the outside?

(Added October 8, 2026. August 31 has passed, but the official requirements page says that if you need more time you can request an extension to November 1, 2026, with the forms to appear in Play Console. Extension or not, the question of what a build already on devices can still do comes back the same way on any day a review stalls or a dependency update blocks you. The rest of this article is my answer to it.)

Counting it up, the answer was narrower than I had assumed. The reason is simple: the only things you can move remotely are the branches the shipped build was already written to read. Obvious in hindsight, but when you always have a release path available, you never have to think about where that boundary sits.

Recounting what I can still reach from outside

The deadline itself splits differently depending on your situation, which I covered in August 31 Means Something Different Depending on Whether You Plan to Ship an Update. What I want to look at here is what comes after that: once you are in a period where you cannot ship, what levers are left in your hands?

In my case, adding wallpapers never required an app update. I wrote up that decision in Keeping a wallpaper app's binary small: moving images out of the bundle. Because of that structure, content keeps flowing even when releases stop.

Operational actions are a different story. Disabling a feature, showing a notice, raising the minimum supported version — all of those route through remote configuration. That is the part this article is about.

A key in the console does not exist unless a build that reads it is out there

Once you have remote config wired up, you start to feel like anything can be changed later. In practice, the only things you can change are the names a shipped binary calls getString("...") on. Add a new parameter in the console and nobody reads it, because no build on any device references it.

Normally this constraint never surfaces. When you want a new key, you ship the code that reads it in the same release. As long as key and code travel together, there is no gap.

The gap only bites when the release path closes. If you decide mid-freeze that a feature needs to be turned off, and the shipped build has no branch for turning it off, there is nothing the console can do for you.

Which means the last release before a freeze is not only about the features you are shipping. It is also the release where you plant the controls you might need for the months that follow. Adding switches you have no immediate use for is normally a habit worth resisting. When a freeze is on the table, the opposite judgment is the correct one.

✦

Thank you for reading this far.

Continue Reading

What follows includes implementation code, benchmarks, and practical content we hope you'll find useful. This site runs without ads — server and development costs are supported entirely by members like you. If it's been helpful, we'd be truly grateful for your support.

WHAT YOU'LL LEARN
✦You'll be able to ship the switches you might need during a freeze in the last build that goes out before it starts
✦You'll be able to drop in a single script that audits Remote Config keys against the shipped tag rather than your working tree
✦You'll be able to estimate the real delay between saving a value and it taking effect, given the 12-hour default fetch interval
Secure payment via Stripe · Cancel anytime
✦

Unlock This Article

Get full access to the rest of this article. Buy once, read anytime. This site is ad-free — your support goes directly toward keeping it running.

or
Unlock all articles with Membership →
Share

Thank You for Reading

Rork Lab is ad-free, supported entirely by members like you. We publish practical guides daily with implementation code, benchmarks, and production-ready patterns. If you've found it useful, we'd love to have you on board.

  • ✦Copy-paste ready implementation code
  • ✦New advanced guides published daily
  • ✦$5/mo or $15 for lifetime access
View Membership →

Related Articles

⬡ Dev Tools2026-09-01
Adding image paste with expo-paste-input, and moving the disappearing file:// URIs out of cache
How to let users paste images and GIFs into a chat input with expo-paste-input. The URIs that onPaste hands you are temporary files that can vanish before the user hits send. Here is the relocation code and the order I verify it on real devices.
⬡ Dev Tools2026-08-16
Find the Code That Trips App Store 2.5.2 Before You Submit
If a remote value can change what your app does, Guideline 2.5.2 may apply. Here is where the line actually sits, plus a script that surfaces the risky paths in your repo before submission.
⬡ Dev Tools2026-06-12
Building a Developer Debug Menu Into Your Rork App — Verify Ads, Purchases, and Remote Config Before Release
A production-safe developer debug menu for Rork apps — switch environments, force test ads, simulate entitlements, and override Remote Config, with working TypeScript code and the pitfalls I hit running six apps.
📚RECOMMENDED BOOKS
Build a Large Language Model (From Scratch)
Sebastian Raschka
LLM Dev
Prompt Engineering for LLMs
Berryman & Ziegler
Prompting
AI Engineering
Chip Huyen
AI Eng
* Contains affiliate links