Bitrise builds your app. HotCodePush updates it.

Bitrise ships CodePush updates beside its CI. HotCodePush, the over-the-air (OTA) update service for React Native, Expo, Capacitor and Cordova, pauses a failing rollout on its own.

Compared

Where HotCodePush and Bitrise CodePush differ

Verified on 2026-10-21; Bitrise figures from bitrise.io/pricing, docs.bitrise.io and Bitrise's blog.

Feature HotCodePush Bitrise CodePush
A failing rollout Pauses itself on the failure rate, with typed reasons per device A staged rollout schedule paused by hand; no failure metric in its documentation
Code signing Free on every plan Free on every plan
Frameworks React Native, Expo, Capacitor, Cordova React Native, New Architecture included, and Expo

Last verified 2026-10-21.

Based on Bitrise's public pricing and documentation pages; names are trademarks of their owners.

Architecture

A rollout that pauses itself, with reasons

Bitrise CodePush stages a rollout on a schedule you pause. HotCodePush pauses a failing rollout on its failure rate and names every device's reason.

Bitrise CodePush runs staged rollouts and a staged rollout schedule you can pause; its documentation ties no pause to a crash or failure metric. A HotCodePush release carries a percentage that moves both ways while a device keeps its release. Every device reports whether the release applied, failed or was skipped, with a typed reason, and auto-pause halts the release the moment the failure rate crosses the bound, so a device that checks after it skips the release.

How rollouts work

Diagram: a Bitrise staged rollout schedule paused by hand beside a HotCodePush rollout that pauses itself on the failure rate and reports a typed reason per device.

Switch in four steps

  • 1 · Install the SDK

    Add the HotCodePush SDK for your framework, React Native, Expo, Capacitor or Cordova, and remove the previous update client. The SDK is MIT-licensed and replaces the update layer alone; your native code, your plugins and your store listing stay as they are.

  • 2 · Create your channels

    Create one channel per audience you ship to today, production first, then staging or beta. A preview channel lets you test the new path on your own devices before anyone else; whoever holds its link follows it, and nobody else reaches it.

  • 3 · Ship one store release

    Ship one store release with the new SDK inside. The binaries before it keep taking their old updates until their users move, so nothing breaks in the field, and devices on the new binary use HotCodePush from their first start.

  • 4 · Run the release step

    In your pipeline, replace the old release command with hotcodepush release create. It packages the bundle, signs it, works out what changed and releases to the channel you name, so every merge to main reaches devices without a store review.

Full migration guide

Switching from Bitrise CodePush

No. HotCodePush builds no binaries; the SDK and the CLI run inside the native build you already have, in Bitrise or anywhere else, and both products release from any CI. The difference is what happens after: a HotCodePush rollout pauses itself when failures climb. Ship from CI
Yes. The migration guide maps CodePush deployments, commands and calls onto HotCodePush; the switch ships in a native release, and Bitrise CodePush keeps serving the binaries before it. Migrate from CodePush
Yes. The switch ships inside a store release; binaries before it keep taking their old updates until their users move. A preview channel lets you test the new path on your own devices first. Preview channels
Nothing native. HotCodePush updates the JavaScript, markup, styles and assets your app already ships; the native layer, the plugins and the store listing stay as they are, and the fingerprint keeps an update off a binary it was not built for. Compatibility
Yes. Every framework gets deltas, built by our delta service when you release, so a device downloads only the files it lacks. React Native and Expo also get a small patch of the main JavaScript bundle inside the pack. How an update reaches a device
Your data is yours. The API lists everything, so a full export is a script, and the usage and audit log pages download CSV. The SDKs are MIT-licensed and the update format stays backward compatible, so an app on an old SDK keeps updating. API reference

A package swap, not a rewrite.

Swap the package in your next store release.