Codemagic ships binaries. HotCodePush ships what's between them.
Codemagic hosts a CodePush server for the community client. HotCodePush, the over-the-air (OTA) update service for React Native, Expo, Capacitor and Cordova, runs the workflow on an SDK we maintain.
Where HotCodePush and CodePush by Codemagic differ
Verified on 2026-10-21; Codemagic's hosted CodePush service, from codemagic.io/ota and docs.codemagic.io/rn-codepush.
| Feature | HotCodePush | CodePush by Codemagic |
|---|---|---|
| Client SDK | @hotcodepush/react-native-code-push, written and maintained by us | @code-push-next/react-native-code-push, published under the @code-push-next scope |
| React Native | 0.82 and newer, New Architecture only | 0.76 and newer, New Architecture setup documented |
| Self-hosting | Codemagic Patch, a separate self-hosted product | |
| Frameworks | React Native, Expo, Capacitor, Cordova | React Native and Capacitor |
Last verified 2026-10-21.
The table compares Codemagic's hosted CodePush service. Codemagic Patch is a separate product with CDN checks, fingerprinting and binary diffs.
The Frameworks row was verified on 2026-10-25.
Based on Codemagic's public pricing and documentation pages; names are trademarks of their owners.
A static index instead of a server check
Codemagic's hosted CodePush relies on the client checking its server. A HotCodePush device reads a static index and matches its fingerprint.
Codemagic's hosted CodePush service relies on the client SDK in your app checking its server, and a release targets a binary version. A HotCodePush device reads one static index per app, channel and platform from the CDN, takes the newest release that fits the fingerprint of its native layer, and downloads the pack it needs; the promote, rollout and rollback workflow stays. While our control plane is down, your users keep receiving the updates you already published.
Diagram: Codemagic's hosted CodePush 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 CodePush by Codemagic
A package swap, not a rewrite.
Swap the package in your next store release.
Questions? Join our Discord or contact us.