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.
- #412 iOSBuilding, Building
- #409 AndroidOn Google Play, Done
- #410 iOSNeeds you, Needs you
- #411 iOSSigning, Building
- #406 iOSOn TestFlight, Done
How the pricing models differ
EAS Update is billed per monthly active user above each plan's allowance
Expo's pricing page lists included update MAUs per plan, then tiered per-MAU rates, with bandwidth over quota billed per GiB. Ubriot includes OTA in a flat plan with no per-MAU or bandwidth charge.
EAS Build is billed per build after the included credit
Expo's paid plans include build credit, then charge a flat rate per Android or iOS build. Ubriot builds are not metered per build or per minute.
Push and release diagnosis sit in the same plan on Ubriot
Ubriot Notify push is included on every plan, and Pro and Business plans diagnose failed builds against your app's own build history.
Migrate in four steps
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
ubriot loginPreview 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 easApply 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 productionBuild 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 productionWhat 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.
When to stay on EAS
EAS is Expo's first-party service and has a free plan. EAS Update also offers bundle diffing from Expo SDK 55, which Ubriot does not. If you want Expo's own hosted services, need a free plan, or OTA download size matters most, EAS may suit you better. Pricing details checked 2026-11-07 on expo.dev/pricing; see the full Ubriot vs Expo EAS comparison.
What you gain on Ubriot
- AI diagnosis on Pro and Business: 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) included on every plan
- No per-MAU or bandwidth metering on updates
Move off EAS
14-day free trial, then from $29/mo. Flat pricing, no per-MAU meter.