App Center CodePush alternatives for React Native

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 for first-release binary diffs, OTA analytics, and a CodePush-compatible migration
  • Stallion for a managed OTA platform with its own SDK and release workflow
  • Hot Updater for an open-source, self-hosted OTA stack
  • Expo Updates for an Expo-native OTA workflow
  • AppZung and Codemagic CodePush as other managed options
  • the archived standalone open-source CodePush Server for teams willing to operate everything themselves

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.

Quick comparison

OptionOperating modelFirst OTA after a native releaseMigration modelBest fit
RevopushManaged OTA platformCan be a diff from the IPA/APK/AAB baselineCodePush-compatible SDK and familiar deploymentsTeams that need first-release diffs, release analytics, and managed delivery
StallionManaged OTA cloudFull first OTA bundle, then patch updatesReplace CodePush with the Stallion SDK and CLITeams that prefer Stallion's testing, bucket, and promotion workflow
Hot UpdaterOpen-source and self-hostedFull first OTA archive, then file reuse and Hermes patchesConfigure a new plugin-based OTA stackTeams that want to own and customize infrastructure
Expo UpdatesManaged Expo/EAS serviceExpo Updates runtime and update modelMove to expo-updates and EAS workflowsTeams already centered on Expo and EAS
AppZungManaged CodePush-compatible serviceNo publicly documented first-release binary-diff flowCodePush-style migrationTeams evaluating another hosted CodePush path
Codemagic CodePushManaged OTA inside a CI/CD platformNo publicly documented first-release binary-diff flowOriginal CodePush SDK compatibilityTeams already using Codemagic CI/CD
Standalone CodePush ServerFully self-hosted archived serverClassic full-bundle deliveryKeep the old CodePush modelTeams prepared to own server, storage, CDN, security, and maintenance

Open Source CodePush Server

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.

Pros

  • Familiar CodePush deployment model
  • Full control over infrastructure and data
  • Possible to customize the backend for internal needs

Cons

  • You own uptime, storage, CDN, security, scaling, and upgrades
  • No managed analytics, collaboration, or release dashboard out of the box
  • No publicly documented diff-update delivery in the classic CodePush model
  • Infrastructure and traffic still create costs even though the software is free

Expo Updates

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.

Current public pricing

According to Expo pricing and Expo billing docs:

  • Starter: $19/month, includes 3K MAU and 500 GiB of global edge bandwidth
  • Production: $199/month, includes 50K MAU and 1 TiB of global edge bandwidth
  • Extra updated users are billed at $0.005 per user
  • Extra bandwidth is billed at $0.10 per GiB

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

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

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.

Other managed CodePush alternatives

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 capabilities after a CodePush migration

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.

  1. Diff updates from the native app baseline. Revopush processes the bundle and assets already shipped inside the IPA, APK, or AAB. The first OTA release can therefore be a small diff instead of a full bootstrap bundle.
  2. OTA analytics connected to real release outcomes. Teams can track downloads, successful installs, installation errors, adoption, and differential-update delivery by deployment and release.

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.

Revopush feature set

  • CodePush-compatible migration
  • Supports all React Native versions starting from 0.76
  • Supports the New Architecture
  • Supports Expo SDK integration
  • Supports diff updates from the first release
  • Bundle diffing with embedded bundle support can reduce egress by up to 90%
  • Includes multi-cloud CDN delivery
  • Admin panel with team collaboration
  • Release-level analytics for downloads, installs, errors, adoption, and differential delivery
  • Includes CI/CD integrations, team workflows, and security features

Current Revopush pricing

Our current public pricing is:

PlanIncluded MAUIncluded egressPrice
Starter1K MAU10 GBFree
Startup50K MAU100 GB$25/month
Growing300K MAU1 TB$100/month
Business500K MAU2 TB$250/month
Professional1M MAU5 TB$500/month
EnterpriseCustomCustomContact us

Egress over the included allowance is billed at $0.03/GB.

Cost example with diff updates

Monthly cost depends on the plan, included egress, overage rate, and payload size:

  • low base plan pricing
  • included monthly egress
  • $0.03/GB overage pricing
  • diff updates that can reduce egress by up to 90%

Here is one simple example using the same workload across providers:

  • 200,000 users
  • 5 OTA releases per month
  • 10 MiB full update payload

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:

  • 150,000 additional updated users at $0.005 each
  • bandwidth beyond the included allowance at $0.10/GiB

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.

Summary

Revopush suits teams that need to migrate from CodePush while changing how React Native OTA updates are generated, delivered, and measured:

  • CodePush compatibility
  • React Native 0.76+ support
  • New Architecture support
  • Managed cloud OTA delivery
  • Diff updates beginning with the first OTA release
  • Payload reductions demonstrated from 18.7 MiB to 117-611 KiB in a production release
  • OTA analytics covering delivery, installs, errors, adoption, and differential updates
  • More predictable OTA economics with $0.03/GB overage pricing
  • CI/CD integrations and release-management workflows

Related reading: