Microsoft retired Visual Studio App Center, including CodePush, on March 31, 2025. Since then, most React Native teams choosing a CodePush alternative end up comparing three paths:
This page was updated on April 18, 2026 and uses current public pricing and documentation from Microsoft, Expo, and Revopush. Pricing and plan limits can change over time.
| Capability | Open Source CodePush Server | Expo Updates | Revopush |
|---|---|---|---|
| Migration from classic CodePush | Familiar CodePush model, but fully self-hosted | Different runtime and release model | CodePush-compatible migration path |
| Managed cloud | No | Yes | Yes |
| React Native 0.76+ / New Architecture path | No actively maintained Microsoft client path | Works through expo-updates and the supported Expo stack | Yes. Supports React Native 0.76+ and the New Architecture |
| Publicly documented diff updates | No | Not publicly documented as bundle diffing | Yes. Diff updates can reduce egress by up to 90% |
| Analytics and team collaboration | You build and maintain it yourself | Available through the Expo ecosystem | Built-in admin panel, analytics, and collaboration |
| Pricing model | Infra, storage, CDN, and DevOps costs | Subscription + updated users + bandwidth overages | Subscription + included egress + $0.03/GB over limit |
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 mature hosted OTA service inside the Expo ecosystem. It is a strong option for teams already aligned with 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.
Revopush is the most direct managed alternative if you want to keep the CodePush workflow but move to a modern OTA platform built for today's React Native stack.
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.
The main pricing change on this page is not just the subscription number. It is the combination of:
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. In practice, that means the rollout can fit inside the Revopush Growing plan with 1 TB included egress for $100/month.
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. That figure is an inference from public pricing and the assumptions above, but it shows why diff updates and cheaper egress matter so much once you ship frequently.
Revopush is a strong fit for teams that want:
If you want to go deeper, also see: