Two CodePush successors, compared
Both continue the CodePush workflow. RevoPush forks the CodePush client; HotCodePush, the over-the-air (OTA) update service for React Native, Expo, Capacitor and Cordova, ships an SDK of its own.
Where HotCodePush and RevoPush differ
Verified on 2026-10-21; RevoPush figures from revopush.org/pricing, docs.revopush.org and its GitHub repository.
| Feature | HotCodePush | RevoPush |
|---|---|---|
| Client SDK | Written for HotCodePush, MIT | A fork of the CodePush client, MIT |
| React Native | 0.82 and newer, New Architecture only | 0.76 and newer; older apps are pointed to the legacy Microsoft client |
| A bad update on a device | Rolled back when the first render misses a 10-second gate; no call needed | The CodePush pattern: notifyAppReady() confirms a launch |
| Update size | Deltas on every framework; a byte-level patch for the main bundle | Byte-level diffs, 10 to 100 times smaller depending on the change, per RevoPush |
| Published limits | Bundle size, rate limits and retention on one page | Not on the pricing or documentation pages |
Last verified 2026-10-21.
Based on RevoPush's public pricing, documentation and repository pages; names are trademarks of their owners.
A static check path and the fingerprint
RevoPush's server answers every check and matches a target binary version. A HotCodePush device reads a static index and matches its fingerprint.
RevoPush's client is a fork of the CodePush SDK, which its documentation calls fully compatible with the existing CodePush SDK, and its server answers every check; a release targets a binary version by semver range. A HotCodePush device reads one static index from the CDN and decides itself which release fits the fingerprint of its native layer, read from your lockfile at release time. While our control plane is down, your users keep receiving the updates you already published.
Diagram: the RevoPush server answering an update check beside a HotCodePush device reading the static index from the CDN.
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.
Switching from RevoPush
A package swap, not a rewrite.
Swap the package in your next store release.
Questions? Join our Discord or contact us.