Patch-Sized Downloads
When a safe patch is available, users download only the JavaScript and assets that changed instead of the whole bundle, reducing transfer size on constrained mobile networks.
Why patches need a full-bundle fallbackA complete look at how Bundle Drop delivers, controls, and safeguards over-the-air updates for React Native — from patch-sized downloads to staged rollouts and instant rollback.
Replacing App Center CodePush? See the CodePush alternative overview.
When a safe patch is available, users download only the JavaScript and assets that changed instead of the whole bundle, reducing transfer size on constrained mobile networks.
Why patches need a full-bundle fallbackEvery upload is validated and optimized before it's served, and bundles are delivered over signed, time-limited links and verified on-device before they're applied — so only integrity-checked code ever runs.
Read the uploading guideIf a device cannot safely use a patch, Bundle Drop tries the signed full bundle. The update is staged only after the complete target verifies; otherwise the current bundle remains active.
How patch and full-bundle delivery fit togetherDeliver JavaScript and bundled asset changes supported by the installed native binary without submitting a new store build for every update.
Why React Native teams use OTA updatesShip platform-specific bundles for iOS and Android. Target updates by device platform automatically.
Understand runtime compatibilityUpload bundles from your terminal or CI pipeline with our CLI. Supports PAT tokens for automation.
Automate uploads with CI/CDManage production, staging, beta, and custom channels. Each channel gets its own release track.
Separate channels from environmentsDecide which uploaded bundles actually become eligible on a channel. Nothing goes live until you stage it, so uploads and releases stay separate.
Configure managed publishingRoll out updates to a specific percentage of users, then gradually increase as confidence grows.
How staged rollouts workLimit a release to users who match rules like plan tier, country, or role, then apply a rollout percentage on top of that matched audience.
How targeting and rollout composeIf native-recorded launch attempts remain incomplete, the SDK can restore the last healthy bundle and block that failed update on the installation.
Understand startup recoveryChange what future update checks select for a channel so eligible devices can return to a safe compatible release on their next check.
How rollback fits the release flowBundle Drop only delivers a bundle to the native binary it's compatible with. Older builds keep getting their last compatible update, never JS that expects native code they don't have.
Understand runtime versionsMonitor installs, active devices, rollout status, and platform splits from a comprehensive analytics dashboard.
Read the observability guideOTA won't break your crash reporting. Every bundle gets a unique hash and optional source maps, so Sentry, Bugsnag, or Datadog still map stack traces to the exact JavaScript that shipped.
Connect source maps and release identityCreate organizations, manage team members with fine-grained roles, and collaborate across multiple projects.
Create a project and organizationWorks with your existing error stack
OTA doesn't break crash reporting. Unique per-bundle hashes and source maps keep stack traces accurate across every update.
From uploading bundles to monitoring rollouts — all the tools your team needs in one place.
Upload once, let Bundle Drop validate the release, optimize what changed, and deliver platform-ready updates with patch-sized downloads.
Tiny updates
Generate patch delivery so users download only the changed JavaScript and assets when a safe patch is available.
Verified before delivery
Validate and optimize every upload before it is served to compatible iOS and Android installs.
Smart fallback
Fall back to a full verified bundle automatically when a patch is not the right path for that device.

Use channels like production, beta, QA, or feature-specific tracks to ship safely, test in parallel, and treat release paths like branch alternatives.
Independent tracks
Separate stable releases, QA passes, and internal experiments inside the same project.
Feature-driven development
Publish a branch to its own channel and validate work without disturbing your main release path.
Promote forward
Move proven bundles from testing tracks into wider release channels when they are ready.

Control bundle eligibility per channel, expand releases in stages, narrow delivery to the right audience, and revert to the last stable version without shipping a reverse build.
Staged rollout
Start small, watch install health, then move from early percentages to a full rollout when the release proves itself.
Managed targeting
Use managed publishing as the channel gate, then narrow rollout eligibility to the audience you want to expose first.
Instant rollback
Return users to the previous working OTA bundle, or all the way back to the native build, without publishing a special reverse release.

Track how every release performs across installs, devices, channels, platforms, and regions from one dashboard.
Active install tracking
See install volume, active devices, and rollout progress as updates move through each channel.
Global visibility
Follow where updates are landing with region and city breakdowns for live installs.
Adoption signals
Compare adoption over time, platform split, and target progress before expanding a rollout.

Compatibility
Bundle Drop supports Expo and bare React Native across iOS and Android, with Hermes and both the Old and New Architecture.
Bundle Drop gives you everything you need to deploy React Native updates instantly. Join developers shipping with confidence.