This article is written by Zach Goldie
React Native OTA tools in 2026 split across two clients, Expo Updates and CodePush-style, and two ways of running them, hosted or self-hosted. The clients are not interchangeable. You still need the matching SDK.
The short version
- Hosted Expo Updates: Expo’s own service. Choose it if you are already on EAS and you are fine with Expo’s pricing.
- Revopush or Stallion: hosted CodePush alternatives. Choose them if you want someone else to run a CodePush-style service.
- Codemagic Patch: a self-hosted CodePush successor. Choose it if you want to run the server yourself, with a dashboard and an installer.
- Third-party Expo Updates servers: keep the
expo-updatesclient off EAS. Choose this if you want Expo’s client without Expo’s bill, and you will keep the server in sync when Expo changes the SDK. - Hot Updater: a self-hosted CodePush alternative with a tidy installer. Very popular, but it has no dashboard or release metrics.
Hosted options
Hosted Expo Updates (EAS Update)
If you are already on Expo and EAS, hosted Expo Updates is still the default starting point in 2026. It is first-party, well documented, and it uses the expo-updates protocol along with the rest of EAS.
That is the main advantage. You are not adapting the app to someone else’s OTA model. You are using the hosted version of the update system Expo already wants you to use.
What stands out:
- Protocol: Expo Updates
- Integration: first-party for Expo and EAS
- Releases: channels and runtime versions
- Who runs it: Expo hosts the service
Pricing matters more at scale than in small projects. Expo’s Production plan includes 50,000 MAU, then applies graduated MAU overages. Based on the current public tiers, the next 150,000 MAU are billed at $0.005, the next 300,000 at $0.00375, and the next 500,000 at $0.0034. That means 1M MAU lands at about $3,575/month in MAU overages, or about $3,774/month once you include the base Production subscription, before any extra bandwidth costs.
Expo also meters global edge bandwidth. The official billing docs note that each paid overage MAU includes an extra 40 MiB of bandwidth, but teams with frequent releases or large assets can still incur additional bandwidth charges on top of MAU pricing. That makes Expo easy to start with, but the bill can get hard to predict once you have a lot of users.
Official references:
Hosted CodePush alternatives
Microsoft retired App Center, including the hosted CodePush service, on March 31, 2025. Teams that wanted to keep a managed CodePush-style workflow moved to hosted CodePush alternatives rather than Expo’s first-party model.
Revopush is the clearer CodePush-compatible hosted option. It is designed to feel familiar if you already have a CodePush client integration. Public pricing is comparatively simple: a free tier up to 1,000 MAU, then a Professional plan at $500/month for up to 1M MAU and 5 TB of egress.
React Native Stallion is another hosted CodePush alternative, with its own platform and SDK. Public pricing is more attractive at the low end, with a free tier up to 10,000 MAU and a Pro plan at $64/month with 100,000 MAU included. At 1M MAU you are looking at custom enterprise or on-premise quotes, so it is harder to price at that scale from the public site.
Both are fine if you want someone else to run a CodePush-style service. Skip them if you need to self-host.
Official references:
Self-hosted options
Codemagic Patch
Codemagic Patch is a self-hosted CodePush successor for React Native and Expo apps.
It exists because other server architectures got messy at scale, with load balancing and response caching required to manage the volume of update checks. Patch stops devices from needing to send requests to the API by pre-generating update manifests, so devices send all requests to the CDN.
What stands out:
- What it is: a self-hosted OTA service for React Native and Expo apps
- How it delivers: pre-generated manifests, CDN delivery, binary diffs, and native fingerprinting
- Setup: a local stack for development, plus an installer for production
- Support: open-source self-hosting, with paid support and managed hosting from Codemagic
It also includes a team dashboard for monitoring and controlling releases, and installers to easily set up your machine.

Official references:
Self-hosted Expo Updates servers
If you want to keep the expo-updates client but avoid the EAS bill, you’ll need a self-hosted server.
Expo only open source the Updates SDK, not the server, so you’ll need a third-party solution. Xprem is a popular options, which adds storage, CDN integration, and a web UI around the protocol.
The risk is Expo changing the updates SDK. A third-party server only works if it keeps pace with those changes, and you are the one running it.
Official references:
Self-hosted CodePush alternatives
Hot Updater is the most popular self-hosted CodePush alternative here. The installer is tidy, and it can land on providers such as Supabase, Cloudflare, AWS, and Firebase.
What it does not include is a dashboard or release metrics. If you need those, Patch is the closer fit.
Official references:
How to choose
Choose hosted Expo Updates if
- you are already on Expo and EAS
- you want the easiest setup
- you are fine with Expo’s pricing
- you do not need self-hosting
Choose a hosted CodePush alternative if
- you want someone else to run the service
- you already use CodePush, or want that style of SDK
- you do not want to run your own OTA server
- you want pricing that is easier to read than Expo’s usage bill
Choose Patch if
- you want to self-host instead of paying for a hosted OTA update server
- you want CDN delivery, binary diffs, and fingerprinting
- you want simple scaling, with architecture than handles huge user bases
- you might want developer support or managed hosting later
Choose a self-hosted Expo protocol server if
- you want to keep using
expo-updates - you would rather run the server than pay Expo
- you are ready to keep a third-party server in sync when Expo changes the SDK
Choose a self-hosted CodePush alternative if
- you want CodePush-style updates without a hosted vendor
- a tidy installer is enough
- you do not need a dashboard or release metrics
The practical takeaway
In 2026, the React Native OTA market is no longer dominated by a single default answer.
For hosted Expo teams, Expo Updates remains the obvious baseline and usually the simplest first choice. For teams that still want a managed CodePush-style workflow, hosted CodePush alternatives such as Revopush and Stallion exist. For self-hosted teams, the split is clearer: Patch if you want a modern CodePush successor with a dashboard and release metrics, an Expo protocol server if you want to keep the Expo client model.
That is a better landscape than the App Center era, but the tools are not interchangeable. The mistake is treating them as if they were.
Pick based on the client you already use, whether you want to run the server, and what the bill looks like at your scale.
FAQ
Which React Native OTA tool should I use in 2026?
If you are already on Expo and EAS, start with hosted Expo Updates. If you want a hosted CodePush-style service, look at Revopush or Stallion. If you want to self-host a CodePush-style stack with a dashboard, metrics and fingerprinting use Codemagic Patch. If you want to keep the expo-updates client without paying EAS, use a third-party Expo protocol server.
What is the default hosted OTA option for Expo teams in 2026?
For teams already using Expo and EAS, hosted Expo Updates remains the default choice in 2026. It is Expo’s own hosted updates service, it fits the rest of EAS, and it is usually the easiest option if your app is already built around Expo. The trade off is paying for the conveience, with a bill that climbs with number of users.
Can Expo Updates be self-hosted?
Yes, although not out the box. Expo documents how to run a custom updates server as long as it implements the Expo Updates protocol. In practice, teams either build their own server around that protocol or use an open-source server such as Expo Open OTA or XPREM.
What happened to Microsoft CodePush?
Microsoft retired App Center, including the hosted CodePush service, on March 31, 2025. The standalone CodePush server repository still exists in archived form for self-hosting, and several hosted or community-maintained alternatives now target CodePush compatibility.
What is a good self-hosted OTA option for React Native in 2026?
It depends whether you want to stay on Expo’s client or a CodePush-style one. Codemagic Patch is the self-hosted option if you want a dashboard, release metrics, and the option of paid support. Teams already on expo-updates often look at custom Expo protocol servers. Hot Updater is a self-hosted CodePush alternative with a tidy installer if you can live without a dashboard or release metrics.
