CODEPUSH MIGRATION

App Center shut down. Your OTA updates don't have to.

Microsoft retired App Center CodePush. DeployPulse is a drop-in replacement for the service: keep the react-native-code-push SDK you already ship with, point it at DeployPulse, and keep releasing. No SDK swap, no code changes. It's a config change that goes live with your next release.

Free up to 10,000 MAU. No credit card required.

react-native-code-pushSDK unchanged
serverUrl:…appcenter.ms→apps.deploypulse.io✓
one line · no re-release

Migrate in minutes, not sprints

Three steps take you from a retired backend to shipping over the air again.

01

Install the CLI

One global install. Your application code stays exactly as it is.

npm i -g @deploypulseio/dpctl
02

Point to DeployPulse

Set your serverUrl and deployment key to DeployPulse. Both live in Info.plist and strings.xml, so they take effect in your next build. The SDK never knows the difference.

serverUrl: apps.deploypulse.io
03

Ship an update

Your first OTA release is live in seconds, across 34 global edge regions.

dpctl release-react MyApp ios -d Production

What you gain on the way out

A drop-in migration that also upgrades what CodePush could do.

Drop-in, not a rewrite

Keep react-native-code-push and the workflow your team already knows. There's nothing new to learn and nothing to re-architect.

A safety net App Center never had

Auto-rollback watches the error rate on every release and reverts to the last good version automatically when it crosses your threshold.

Analytics beyond install counts

Adoption curves, download geo breakdowns, and per-release reporting, all in one dashboard instead of a spreadsheet export.

Signed and delta by default

RS256 code signing verifies every release on-device, and diff-only bundles keep updates small and fast for your users.

Check your setup before you start

Both major OTA protocols are compatible, on one platform. If your project is on this list, the migration is a config change.

Your project
  • Supported
    Bare React NativeiOS and Android projects
  • Supported
    Expo prebuild / CNGConfig plugin, no manual native edits
  • Supported
    EAS BuildDevelopment and release binaries
  • Not applicable
    Expo GoDevelopment sandbox; no OTA provider works here
OTA protocol
  • Supported
    react-native-code-pushPoint serverUrl at DeployPulse
  • Supported
    expo-updatesPoint updates.url at DeployPulse
  • Not applicable
    EAS UpdateReplaced by DeployPulse, not run alongside it

One OTA runtime per app. Full compatibility, including React Native and Expo SDK versions →

// Migration questions

Yes. DeployPulse implements the CodePush service protocol, so an app using the react-native-code-push SDK works against it once you point it at a DeployPulse server URL and deployment key. No SDK swap and no application code changes: it is a config change that ships with your next release.

Once. The server URL lives in Info.plist on iOS and res/values/strings.xml on Android, and both are compiled into the binary, so the switch takes effect in your next build rather than in an already-shipped one. That is the only build you need: nothing in your application code changes, and once that release is out every subsequent update goes over the air with no store review.

You create your apps and deployments (Production, Staging, and any others) in DeployPulse, then update your app to use the new deployment keys or server URL. Your release history starts fresh on DeployPulse from that point forward.

Yes. Expo bare-workflow apps can use the react-native-code-push SDK exactly like standard React Native apps, and Expo managed or bare apps using expo-updates are supported natively through our Expo Updates v1 protocol implementation.

For a single app it is typically a few minutes: install the CLI, create the app and deployments, and update the server URL. Larger fleets with multiple apps and environments take a little longer, and we're happy to help you plan it.

Yes. DeployPulse is under active development with regular releases. Code signing, auto-rollback, adoption analytics, and webhook notifications all shipped in 2025 to 2026, and you can follow progress on our GitHub and status page.
START FREE

Your first update is
three commands away.

A drop-in CodePush replacement with first-class Expo support. Free up to 10,000 monthly active users, no credit card required.

  1. Install the CLI

    One command works with your existing react-native-code-push.

    npm i -g @deploypulseio/dpctl
  2. Connect your app

    Log in and link a project. Your deployment keys drop straight in.

  3. Ship an update

    Push OTA and it's live worldwide in seconds, with no app-store review.