All posts
NextPush Team10 min read

CodePush after App Center: your options in 2026

App Center and CodePush were retired on March 31, 2025 and the server repo was archived two months later. Here is the verified timeline, every current option by name with its pricing model and free tier, and what a move to NextPush involves.

If your React Native app still ships JavaScript updates over the air, you dealt with the App Center shutdown in one of three ways: a hosted CodePush-compatible service, the archived server on your own infrastructure, or a different protocol. A year and a half later the options have settled enough to compare them honestly. This post lists what exists in late 2026, what each one bills for, and what a migration to NextPush involves. We run NextPush, so read the last section with that in mind; the table is meant to be useful whichever way you go.

The timeline, verified

The retirement happened in stages, and several of the dates still get mixed up in forum threads.

Date What happened
August 22, 2024 Expo publishes "What to do without CodePush", pointing to microsoft/react-native-code-push issue #2675 as the place where Microsoft discussed the standalone CodePush future.
October 23, 2024 React Native 0.76 ships with the New Architecture enabled by default. Microsoft's react-native-code-push never supported it; its compatibility table stops at React Native 0.71 and its README says it will not support the New Architecture.
December 19, 2024 react-native-code-push 9.0.1 is the last release of the Microsoft SDK. Every version on npm is now marked deprecated.
March 31, 2025 Visual Studio App Center is retired. CodePush is retired with it: sign-in and API calls stop.
May 20, 2025 microsoft/code-push-server, the open-sourced standalone server, is archived and read-only. The README states that Microsoft will not provide support services.
April 15, 2026 Microsoft extends App Center Analytics and Diagnostics again, from June 30, 2026 to the end of March 2027, for the Azure Monitor migration. This extension covers Analytics and Diagnostics only. There was never a separate extension for CodePush.

Two consequences matter for the rest of this post. First, "CodePush" is now three separable things: a wire protocol (/updateCheck, reportStatus, deployment keys), a client SDK, and a server. Microsoft stopped maintaining the SDK and the server, but the protocol is open and still works. Second, the client most teams use today is not Microsoft's. @code-push-next/react-native-code-push (10.4.3 as of August 2026, maintained by the Codemagic team) speaks the same protocol, exposes the same JavaScript API, and supports React Native 0.76 and later on both architectures. Any server-side option that says "CodePush-compatible" is really saying "works with that client".

The options, by name

Prices are list prices from each vendor's public pricing page at the time of writing; two marked "third-party" come from pricing aggregators because the vendor publishes no number. Free tiers are as published. "New Architecture" says what we could verify from the vendor's own documentation or package; "not verified by us" means we did not find a statement, not that it does not work.

Option Billing model Free tier Entry paid plan Client SDK New Architecture
Self-hosted code-push-server (archived) Your cloud bill: storage, Redis, compute Software is free n/a @code-push-next/react-native-code-push Yes, via the community client (v10+)
Expo Update (formerly EAS Update) Monthly active users plus bandwidth 1,000 MAU, 100 GiB Starter $19 for 3,000 MAU, then $0.005 per MAU; Production $199 for 50,000 MAU and 1 TiB; $0.10 per extra GiB expo-updates Yes (default since SDK 52)
Revopush MAU plus egress 1,000 MAU, 10 GB $25 for 50,000 MAU and 100 GB; $100 for 300,000; $250 for 500,000; $500 for 1,000,000 Own SDK Not verified by us
Codemagic Patch MAU First 100,000 MAU free; self-hosted edition free up to 1,000,000 MAU $99 per 100,000 MAU Own SDK; same team maintains code-push-next Not verified by us
Bitrise CodePush MAU About 100,000 MAU (third-party) About $294 per month for Pro (third-party); GA March 2026, sold alongside Bitrise CI Own SDK Not verified by us
Cresc Update-check queries per day 1,000 queries per day, 3 apps $19 for 10,000 per day; $99 for 1,000,000 per day Own SDK; also targets Expo Not verified by us
Stallion MAU 10,000 MAU, 50 GB About $51 to $64 for 100,000 MAU; on-premises option Own SDK Not verified by us
Hot Updater Open source, bring your own infrastructure MIT with a hosted-service clause; about 1.8k GitHub stars Your cloud bill Own SDK; Expo supported Not verified by us
NextPush Update downloads 1 app, 1,000 updates per month Plus $24 for 25 apps and 100,000 updates per month; Enterprise $60 for 1,000,000 updates per month; each additional 1,000,000 updates $15 @code-push-next/react-native-code-push (CodePush protocol) Yes, via the community client (v10+)

AppZung, a CodePush fork, also exists at €20 for 10,000 MAU and €400 for 500,000 MAU; it has no free tier, which is why it is not in the table.

Who each one fits

Self-hosting the archived server. The code still runs and the protocol has not changed, so if you have a platform team and already pay for blob storage plus Redis, this is the cheapest option at scale. The cost is ownership: no upstream fixes, dependency upgrades are yours, and you answer the pager when updateCheck falls over during a release.

Expo Update. If you build with EAS Build, use Expo Go in development, or want enterprise SSO and a vendor on the hook, the integration is the best in the ecosystem. The bill scales with monthly active users, not with how often you ship: good for teams that ship rarely to large audiences, expensive for teams that ship often to the same audience. We work through the arithmetic in a separate post later this month.

Revopush, Codemagic Patch, Bitrise CodePush, Stallion. All four are MAU-priced hosted services with their own client SDK, which means a code change in the app and a new store release to switch. Codemagic Patch is the natural choice if you already run Codemagic CI, and its self-hosted edition is generous. Bitrise CodePush is sold together with Bitrise CI and reached general availability in March 2026. Stallion sells an on-premises option, which matters for some regulated industries.

Cresc. The only option in the table billed by update-check queries per day rather than by users or downloads. Worth modelling if your app checks for updates often.

Hot Updater. The most-cited open-source choice when people ask on r/reactnative. You bring the storage and the database, you own the deployment, and you accept an MIT licence with a clause about offering it as a hosted service. If you wanted Firebase or Supabase plus a thin update layer, this is it.

NextPush. A hosted server for the CodePush protocol, priced by update downloads. It fits teams that want to keep the release-react workflow, the deployment-key model, and the community SDK, and whose monthly download count is predictable. It is run by one engineer, which is either a reason to pick it (fast answers, no sales process) or a reason not to (bus factor); we think you should know that before signing up.

How a migration to NextPush looks

The whole point of staying on the CodePush protocol is that the migration is small. The CLI is a fork of Microsoft's code-push CLI, so the commands are the ones you already know with nextpush in place of appcenter codepush.

npm install -g nextpush-cli
nextpush login
nextpush release-react -a companyName/AwesomeApp -d Production

A note on App Center import. The dashboard has an "Import data from App Center" flow that pulled apps, deployment keys, release history and metrics from App Center with a read-only API token. It was the one-click path for teams that moved before the shutdown, and it kept deployment keys unchanged so no new binary was needed. App Center's API stopped answering on March 31, 2025, so in 2026 it cannot fetch anything new. If you are moving now, you create the app in the dashboard, take the deployment keys it generates, and ship one store release that points the SDK at NextPush. Installs on the old binary keep running; they simply never see an update again, which is already the case today.

What to check in your app

Three things change in the app itself, all of them in configuration rather than code.

1. The server URL. The SDK defaults to Microsoft's endpoint, which is gone. Point it at NextPush.

Android, android/app/src/main/res/values/strings.xml:

<string moduleConfig="true" name="CodePushServerUrl">https://api.nextpush.center</string>

iOS, ios/<YourApp>/Info.plist:

<key>CodePushServerURL</key>
<string>https://api.nextpush.center</string>

2. The deployment keys. Each deployment (Staging, Production, or your own names) has a key shown on the app page in the dashboard. They go next to the server URL:

<string moduleConfig="true" name="CodePushDeploymentKey">YOUR_DEPLOYMENT_KEY</string>
<key>CodePushDeploymentKey</key>
<string>YOUR_DEPLOYMENT_KEY</string>

3. The SDK package. If you are still on react-native-code-push, swap it for the community package. The JavaScript API is the same, so this is a dependency change and an import rename:

npm install @code-push-next/react-native-code-push
cd ios && pod install

Then replace every from "react-native-code-push" with from "@code-push-next/react-native-code-push", re-run pod install, and rebuild. On React Native 0.76 and later this is not optional; the Microsoft package does not load on the New Architecture.

After the new binary is in the stores, releases work as before: nextpush release-react bundles, optionally compiles Hermes bytecode, uploads, and the next codePush.sync() on a device picks it up. Rollouts, rollbacks, promotion between deployments and the patch command are all there.

Choosing

One rule: pick by what you are willing to own and by what your bill should scale with.

  • You own servers and want the lowest marginal cost: self-host the archived server or Hot Updater, with the community client.
  • You build on EAS and value the integration more than the price: Expo Update.
  • You want a vendor and your bill should scale with users: Revopush, Codemagic Patch, Bitrise, Stallion, in roughly ascending order of how much CI they expect you to buy with it.
  • You want a vendor, your bill should scale with downloads, and you want to keep the CodePush CLI and SDK: NextPush.

Whichever you choose, do the SDK swap first. The Microsoft package is deprecated on npm, archived on GitHub, and does not run on the architecture React Native has shipped by default for two years. That part of the migration is the same for everyone who stays on the protocol.

Sources