Migration guide

Migrate from Expo EAS
to Ubriot

Move EAS Build and EAS Update to Ubriot in one command. You keep your existing Expo app, and get native builds, TestFlight and Google Play submission, OTA updates, and AI failure diagnosis on one flat plan, with no per-user or bandwidth meter.

Keep your Expo app as-is One-command config repoint Flat pricing, no per-MAU meter

Why teams move off EAS

EAS Update is metered by users and bandwidth

Costs scale with monthly active users and CDN bandwidth. Double your users, double that line item, with no efficiency gain as you grow, and a busy release month can spike the bill.

A one-line hotfix re-downloads the whole bundle

Every user pulls the full JS bundle again for a small change, which is what makes the bandwidth component climb.

Builds and updates are priced as separate products

EAS Build and EAS Update bill on different models. Ubriot puts builds, store submission, and OTA on one flat plan.

No release memory across builds

When a build fails, you read the log. Ubriot keeps a per-app history and diagnoses new failures against your app's own past.

Migrate in four steps

1

Install the Ubriot CLI and log in

One npm install, then authenticate. Your Expo config and app code stay as they are.

npm install -g @ubriot/cli
ubriot login
2

Preview the migration

The command detects EAS usage (eas.json, an EAS update URL, eas-cli) and prints exactly what it will change. Dry-run is the default.

ubriot migrate eas
3

Apply it

Ubriot repoints expo.updates.url and the channel header from EAS to Ubriot, and backs up app.json. Your Expo app is unchanged otherwise.

ubriot migrate eas --apply --channel production
4

Build and update on Ubriot

Swap eas build / eas update for ubriot ship / ubriot update. Same Expo app, new release surface.

ubriot ship ios --app <your-app>
ubriot update --app <your-app> --channel production

What this does and does not change

This runs your Expo app on Ubriot, it does not remove Expo. Ubriot OTA uses the expo-updates protocol, so migrating is a config repoint, not a rewrite. You switch the build and update commands from eas toubriot, and keep everything else.

What you gain on Ubriot

  • Builds, TestFlight and Google Play submission, and OTA on one flat plan
  • No per-MAU or bandwidth metering on updates
  • AI diagnosis: failed builds are diagnosed against your app's own history
  • Named channels, instant rollback, and a runtime-safety check before you publish
  • Push notifications (Ubriot Notify) in the same platform

Move off EAS

14-day full trial, then from $19/mo. Flat pricing, no per-MAU meter.