Skip to main content

Comparison

How Patch compares

Codemagic Patch sits alongside other React Native OTA options. This page summarizes where they overlap and where they differ. For Patch-specific concepts, see Core concepts.

info

Products change over time. Treat this as a high-level guide when evaluating options, not a feature matrix with guaranteed parity.

What most OTA tools share

Patch, CodePush-compatible services and forks, Expo Updates, and Hot Updater all target the same core problem: ship JavaScript and asset changes to installed apps without a full store release.

Common ground includes:

  • Rollout and rollback controls, to ship JavaScript or asset changes with minimal risk
  • Binary diffs: prefer smaller patch downloads when only part of the bundle changed
  • Deployment channels: separate Staging from Production (or equivalent) so you can test before wide release
  • Client SDK: check, download, install, and apply updates on device with rollback when something goes wrong

Differences show up in hosting, licensing, how much you operate yourself, and how tightly integrated a vendor stack is.


vs Expo Updates

The headline difference is build vs buy.

Expo UpdatesCodemagic Patch
HostingHosted-only (EAS)Self-hosted; you run the stack
PricingFree tier, then usage-based pricingFree to self-host under 1 million MAU, commercial pricing at scale
Bare React NativeWorks, but needs Expo modules in bare projectsBare RN and Expo (prebuild plugin)
FingerprintingYesYes
Binary diffsYesYes
ChannelsEAS channels and branchesStaging and Production deployments
Rollout and rollbackYesYes
DashboardExpo / EAS web UIPatch web dashboard
MetricsRelease history, installs, failuresRelease history, installs, failures
Team accessEAS org rolesUser roles
Local evaluationAgainst EASFull stack on localhost
SourceClient SDK open source; update server is proprietarySDK, CLI, and server are source-available

Expo Updates is a strong default if you already use EAS Build and EAS Update together; channel wiring is largely handled inside that ecosystem with minimal setup.

Costs can climb quickly past free limits if you ship often or have a large install base. That is the main trade-off against running Patch yourself.

Patch does not require EAS. You operate the server (Docker Compose or your own deployment), use cmpatch from CI or locally, and point the SDK at your API and storage domains. Setup is more involved, but you control hosting, scaling, and data.

Both offer a team-facing UI for managing releases, not only CLI workflows.

Migrating? See Migrating from Expo Updates.


vs CodePush forks

After App Center CodePush, a family of compatible forks and hosted successors remains (Codemagic CodePush, Revopush, @code-push-next, and self-hosted CodePush servers). They share a familiar mental model with Patch (apps per platform, Staging / Production, release-react-style CLI, sync() install modes), but delivery and operations differ.

CodePush forksCodemagic Patch
HostingHosted SaaS or a self-hosted CodePush-compatible serverAll-in-one Compose stack (Postgres, MinIO, API, dashboard)
ArchitectureCodePush-compatible control plane (often access-key based)Integrated server product you deploy anywhere Docker runs
Local devVaries by fork; many assume a remote serverFull stack can run locally
Update checkTypically server API checksStatic manifest on storage or CDN
Bundle downloadStorage behind the service or your configured CDNStorage or CDN URLs from the manifest
Web consoleVaries (hosted dashboard or limited tooling)Dashboard with release management, metrics, and IAM
Team accessAccess keys / org settings on the forkRBAC managed in the dashboard
Audit trailVariesCLI identity tied to your OAuth provider (GitHub or Bitbucket)
Backups and DRBuild your own if self-hosting; hosted forks handle theirsBuilt-in backup.sh, restore.sh, and upgrade.sh
StewardshipCommunity forks or third-party hostsBuilt and maintained by Codemagic
License / termsVaries by forkCodemagic Server License

Choose a CodePush fork when you want drop-in CodePush compatibility or a managed host. Choose Patch when you want an integrated self-host stack with dashboard, metrics, and CDN-oriented delivery, without staying on the CodePush wire protocol.

Migrating? See Migrating from CodePush.


vs Hot Updater

Hot Updater is a community-driven OTA toolkit with a different architecture and ops profile, plugin-based backends rather than a single integrated server product.

Hot UpdaterCodemagic Patch
HostingProvider plugins (Supabase, Cloudflare, and others)All-in-one Compose stack (Postgres, MinIO, API, dashboard)
ArchitectureBring-your-own backendIntegrated server product you deploy anywhere Docker runs
Local devUnsupportedFull stack can run locally
Update checkServer polling databaseStatic manifest on storage or CDN
Bundle downloadYour storage (often CDN-backed)Storage or CDN URLs from manifest
Web consoleLocal console for editing releasesCloud dashboard with release management, metrics and IAM
Adoption metricsNot built inDashboard and CLI (downloads, installs, success / failure)
Team accessShare backend credentialsRBAC with management in the dashboard
Audit trailNo built in audit loggingCLI identity is tied to your OAuth provider (GitHub or Bitbucket)
Backups and DRBuild your own backup/restore processBuilt-in backup.sh, restore.sh, and upgrade.sh
MigrationsRequired for new major featuresOnly for management changes
StewardshipCommunity open sourceBuilt and maintained by Codemagic
LicenseMITCodemagic Server License

Hot Updater is a good fit if you want MIT licensing and are comfortable assembling storage and hosting yourself. Patch targets teams that want an integrated server with dashboard and metrics, and optional vendor support for licensed deployments.


Licensing

Patch uses the Codemagic Server License for the server (based on FSL 1.1, converting to Apache 2.0 after two years on each version), and Apache 2.0 for the SDK and CLI. You may use, modify, and self-host without a paid license while monthly active users stay at or below one million. Above that, you need a commercial license from Codemagic. Details and pricing: Pricing.

Hot Updater is MIT. Expo Updates is tied to EAS pricing, not a source license on the client SDK. CodePush forks use their own hosted terms or upstream licenses.


Install behavior and mandatory updates

All of these tools support forcing critical updates and deferring apply timing on non-mandatory releases, but defaults and APIs differ (e.g. CodePush sync() install modes, Patch sync() + mandatoryInstallMode, Expo's Updates.reloadAsync() patterns).

Those details are worth comparing during integration, not at the hosting layer. For Patch behavior, see Checking for updates, Applying updates, and Production control.


Choosing a path

If you…Consider
Already live on EAS and want minimal setupExpo Updates
Want CodePush-compatible APIs or a managed CodePush hostA CodePush fork
Want to self-host with dashboard, metrics, and team IAMCodemagic Patch
Want MIT and BYO storage via pluginsHot Updater

To try Patch locally, start with the Local quickstart or Install.