Introduction
Bundle Drop lets you ship over-the-air updates for your React Native app without sending a new App Store or Play Store release for every JavaScript or asset change.
What Bundle Drop Is For
- Shipping fixes and improvements faster.
- Rolling updates out by channel or audience.
- Staging updates before they are applied.
- Keeping native app releases separate from JS and asset updates.
- Delivering updates efficiently with binary patches, with an automatic full-bundle fallback so a device always gets a complete, verified update.
How It Works
At a high level, the flow looks like this:
- You install the Bundle Drop module in your React Native app.
- You connect the app to your Bundle Drop project with
bundle.drop.config.js. - You upload OTA bundles to a channel, such as
develop,beta, orproduction. - The app checks for a compatible update at runtime.
- If an update is available, the app downloads it — a small binary patch when one is available, or the full bundle otherwise — and either applies it immediately or on the next launch, depending on your policy.
Important Constraint
Bundle Drop updates JavaScript and bundled assets. Native code changes still require a normal store release.
If you make a native change, you should ship a new app binary and keep your OTA updates compatible with that native build.
Core Pieces
Installation: package install and project-aware setup for Expo or bare React Native.Expo: config plugin, managed/CNG builds, development behavior, and runtime authority.Channels: how release tracks likedevelop,beta, andproductionwork.SDK Integration: startup control withBundleDrop.init, manual UI withuseBundleDrop, and lower-level runtime APIs.Update Policies: when updates should download and apply in automated flows.CLI: local auth, project setup, upload commands, and CI usage.Runtime Version: the compatibility boundary between your native build and OTA bundles.Staged Rollouts: release gradually instead of pushing a new bundle to everyone at once.Rollback: move users back to the previous working bundle when a release needs to be reverted.
Typical Workflow
- Install the SDK and complete setup.
- Upload a bundle with the CLI.
- Point your app at the right channel.
- Let the app check, stage, and apply updates based on your chosen policy.
If you are setting this up for the first time, start with the Installation page.
