Microsoft retired Visual Studio App Center, including CodePush, on March 31, 2025. React Native teams now have several managed, self-hosted, and Expo-native alternatives:
For the delivery model itself, including full bundles, binary diffs, compatibility, and rollback, read the React Native OTA updates guide.
Revopush is a managed, CodePush-compatible service with two capabilities that change how OTA releases are delivered: binary diffs can use the bundle in an IPA, APK, or AAB as their baseline, and release analytics record what users download and install.
Stallion and Hot Updater both document patch delivery after an initial full OTA. Revopush can generate a diff from the native app bundle, so the first OTA after a new store release does not have to bootstrap with a complete OTA bundle.
This page was updated on August 23, 2026 using current public product documentation. Pricing, plan limits, and patch behavior can change over time.
| Option | Operating model | First OTA after a native release | Migration model | Best fit |
|---|---|---|---|---|
| Revopush | Managed OTA platform | Can be a diff from the IPA/APK/AAB baseline | CodePush-compatible SDK and familiar deployments | Teams that need first-release diffs, release analytics, and managed delivery |
| Stallion | Managed OTA cloud | Full first OTA bundle, then patch updates | Replace CodePush with the Stallion SDK and CLI | Teams that prefer Stallion's testing, bucket, and promotion workflow |
| Hot Updater | Open-source and self-hosted | Full first OTA archive, then file reuse and Hermes patches | Configure a new plugin-based OTA stack | Teams that want to own and customize infrastructure |
| Expo Updates | Managed Expo/EAS service | Expo Updates runtime and update model | Move to expo-updates and EAS workflows | Teams already centered on Expo and EAS |
| AppZung | Managed CodePush-compatible service | No publicly documented first-release binary-diff flow | CodePush-style migration | Teams evaluating another hosted CodePush path |
| Codemagic CodePush | Managed OTA inside a CI/CD platform | No publicly documented first-release binary-diff flow | Original CodePush SDK compatibility | Teams already using Codemagic CI/CD |
| Standalone CodePush Server | Fully self-hosted archived server | Classic full-bundle delivery | Keep the old CodePush model | Teams prepared to own server, storage, CDN, security, and maintenance |
Microsoft published the standalone CodePush Server source code, so you can continue to run a CodePush-compatible backend yourself. That keeps the original model alive, but it also moves the entire operational burden to your team. Microsoft has since archived the repository, so this path is now community-driven and self-maintained.
Read more in our guide to self-hosting the standalone CodePush Server.
Expo Updates is a hosted OTA service inside the Expo ecosystem. It fits teams already using Expo tooling, EAS workflows, and the Expo update model.
For existing React Native apps, Expo documents a migration path through expo-updates, but their CodePush migration guide recommends moving to the latest supported Expo SDK and update workflow. For some React Native CLI teams, that is a bigger change than swapping OTA providers.
According to Expo pricing and Expo billing docs:
Expo is a real production option, but on active OTA workloads the bill is shaped by both MAU and bandwidth.
Read the detailed Revopush vs Expo Updates comparison.
React Native Stallion is a managed OTA platform with its own SDK, CLI, testing workflow, patch updates, rollouts, rollback, analytics, Expo integration, and enterprise deployment options.
Stallion supports differential delivery, but its official patch documentation states that the first OTA release on an app version is a full bundle. Later releases can be delivered as patches after a Stallion OTA bundle exists on the device. Its migration guide also replaces the CodePush SDK with react-native-stallion, so this is a product migration rather than a drop-in server change.
Read the detailed Revopush vs Stallion comparison.
Hot Updater is an open-source, self-hosted OTA framework with plugin-based storage and database integrations. Version 0.31.0+ supports bundle diffing: later OTA releases can reuse unchanged files and use .bsdiff patches for changed Hermes bundles.
Its documented first OTA after a native install still downloads a normal compressed archive. Your team also remains responsible for selecting, deploying, securing, and maintaining the backend infrastructure.
Read the detailed Revopush vs Hot Updater comparison.
AppZung offers a hosted CodePush-compatible service with Expo integration, CDN delivery, team permissions, and higher-tier security controls. Review the full Revopush vs AppZung comparison.
Codemagic CodePush provides managed CodePush hosting inside the broader Codemagic CI/CD platform. Review the full Revopush vs Codemagic CodePush comparison.
Revopush keeps CodePush's familiar integration model, deployment concepts, and release workflow. It also changes the OTA baseline from a previous OTA bundle to the bundle embedded in the native app.
The first capability reduces payloads; the second shows whether an update reached devices and installed successfully.
In one recent production release, the complete OTA package was 18.7 MiB, while generated JavaScript patches ranged from 117.26 KiB to 611.49 KiB. See the measured React Native OTA binary diff results.
Our current public pricing is:
| Plan | Included MAU | Included egress | Price |
|---|---|---|---|
| Starter | 1K MAU | 10 GB | Free |
| Startup | 50K MAU | 100 GB | $25/month |
| Growing | 300K MAU | 1 TB | $100/month |
| Business | 500K MAU | 2 TB | $250/month |
| Professional | 1M MAU | 5 TB | $500/month |
| Enterprise | Custom | Custom | Contact us |
Egress over the included allowance is billed at $0.03/GB.
Monthly cost depends on the plan, included egress, overage rate, and payload size:
Here is one simple example using the same workload across providers:
That full-bundle workload equals roughly 9,765.6 GiB of monthly traffic if every updated user downloads every release.
If Revopush diff updates reduce that traffic by 90%, the same workload drops to roughly 976.6 GiB. The Revopush Growing plan includes 300K MAU and 1 TB of egress for $100/month. This traffic estimate is in GiB, while the plan allowance is in GB/TB; any usage above the included allowance is billed at $0.03/GB.
Using the same assumptions with public Expo pricing, Expo Production starts at $199/month, includes 50K MAU and 1 TiB, and then charges for:
Based on those public rates, that example lands at roughly $1,237/month on Expo. It is an estimate from the stated assumptions and public prices; actual usage varies with adoption, payload size, and release frequency.
Revopush suits teams that need to migrate from CodePush while changing how React Native OTA updates are generated, delivered, and measured:
Related reading: