Skip to content

Alternatives

CodePush was a service of Visual Studio App Center (Microsoft). In 2024 Microsoft announced the retirement of all of App Center, which shut down on March 31, 2025 together with hosted CodePush. It was a product decision (Microsoft focusing on Azure and GitHub), not a technical problem with CodePush. Microsoft published a standalone code-push-server for self-hosting, but its repositories were archived in May 2025 (read-only, unmaintained). The react-native-code-push SDK stopped evolving too and has growing incompatibilities with the New Architecture.

solution model strengths limitations
EAS Update (Expo) SaaS the market standard; rollouts, channels, runtime fingerprint, Hermes bytecode diffing billed per MAU; the expo-updates SDK pulls in the Expo ecosystem; no official self-hosting
hot-updater (gronxb) open source, self-hosted plugins for Supabase/AWS/Cloudflare; web console small project, API still changing
Revopush, Stallion CodePush-style SaaS easy migration from CodePush vendor dependency, usage-based pricing
Codemagic Patch self-hosted dashboard + installer tied to Codemagic
code-push-server (Microsoft) self-hosted compatible with the old SDK archived; no support

Every option updates JavaScript and assets only.

Not in a way the stores allow:

  • Apple: the Developer Program License Agreement (§3.3.1(B)) and guideline 2.5.2 forbid downloading executable code; interpreted code (JS) is allowed as long as it doesn’t change the app’s primary purpose. iOS code signing also prevents loading new native binaries.
  • Google Play: the Device and Network Abuse policy forbids downloading executable code (DEX, .so) from outside Google Play. It would technically work on Android, but the app would be removed.

The right approach, and the one Airdrop takes, is to make native changes safe: every update is bound to a runtime version, so older binaries keep receiving compatible JS and new binaries only receive JS built for them.

  1. Runs on Cloudflare (Workers + D1 + R2): very low cost, no R2 egress fees, edge caching.
  2. Per-file diff downloads: files are addressed by SHA-256; a device downloads only what changed and copies the rest from the update it’s running.
  3. End-to-end code signing (ECDSA P-256) with the public key inside the binary: even a compromised server can’t publish code.
  4. Automatic rollback on launch crashes, with the update blacklisted on that device and reported.
  5. React Native 0.71+ (old and new architecture), no Expo required.
  • Binary diff of the Hermes bundle (bsdiff) for even smaller updates.
  • Web dashboard with adoption and rollback charts.
  • Multi-tenant accounts and organizations.
  • Automatic fingerprint runtime-version policy (a hash of the native dependencies).
  • Expo integration (expo export:embed already works through --bundle-dir).

Sources: Codemagic: React Native OTA tools in 2026, Bitrise: CodePush alternatives, Microsoft code-push (archived), Expo: OTA updates, Bitrise: what the app stores allow, hot-updater.