Documentation

Ship OTA updates to your React Native app. Guides for installation, concepts, CLI, and SDK integration.

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.

How It Works

At a high level, the flow looks like this:

  1. You install the Bundle Drop module in your React Native app.
  2. You connect the app to your Bundle Drop project with bundle.drop.config.js.
  3. You upload OTA bundles to a channel, such as General, Beta, or QA.
  4. The app checks for a compatible update at runtime.
  5. If an update is available, the app can download it and either apply 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, config, Metro, and native setup.
  • Channels: how release tracks like General, Beta, and QA work.
  • SDK Integration: startup control with BundleDrop.init, manual UI with useBundleDrop, 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.