Microsoft App Center is gone: migrating to OtaKit
Microsoft retired App Center, taking CodePush distribution with it. A practical migration path from App Center to OtaKit for Capacitor live updates, with the config and API mapping.
Microsoft retired App Center, and with it went the CodePush distribution that a lot of hybrid and React Native teams relied on for over-the-air updates. If you were pushing web-layer updates through App Center on a Capacitor app, you need a new home for that flow. This guide maps App Center's update model onto OtaKit and gives you a clean cutover.
CodePush itself is open source, but the hosted service that made it convenient is gone. Self-hosting a CodePush server is one option; moving to a purpose-built Capacitor OTA service is usually less work and less to maintain.
What maps cleanly
App Center's core concepts translate directly:
- Deployment keys (Staging / Production) become channels in OtaKit. A channel is the stream of bundles a device checks.
- codepush release becomes an OtaKit CLI release.
- Mandatory updates map to force-immediate releases — see forced and mandatory updates.
- Rollback maps to OtaKit's automatic rollback plus channel roll-forward — see rollback strategies.
The release command
Where you ran a CodePush release against a deployment key, you now build your web app and run:
otakit upload --release staging # validate on staging, then promote the same bundle otakit upload --release production
The promotion pattern — release to staging, verify, promote the exact bundle to production — is the same discipline App Center encouraged, and it's covered in channel promotion.
Plugin swap
Remove the CodePush/App Center SDK and install @otakit/capacitor-plugin. On the app side, the important call is notifyAppReady() after a successful boot — it's the signal that arms automatic rollback, the equivalent of CodePush's notifyApplicationReady.
Cutover plan
- Ship one store release that swaps the SDK to OtaKit. This is the only review you need.
- As users update, their devices start checking OtaKit channels.
- Keep any self-hosted CodePush endpoint alive until the old binaries age out, then retire it.
One upside of the move: no per-MAU or bandwidth metering. App Center pricing was generous, but its replacement market mostly meters usage. OtaKit's CDN-direct model doesn't — most apps pay $0–25/mo regardless of install base.
Where to go next
Start at Setup and the CLI reference. If you're also replacing App Center's native cloud builds, our GitHub Actions iOS and Android guides cover that half.