You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
More than year ago, expo-open-ota shipped as a small, self-hosted server that spoke the Expo Updates protocol. That was the whole scope: host your own updates, keep your own bucket, your own CDN, your own domain.
Since then the project has grown well beyond that, and so has the ambition behind it.
We're doubling down. The goal is no longer "an OTA server": it's a real control plane for Expo apps: one place to manage your apps, channels, branches, releases, access, and now the health of what you ship.
Where it started: 3.0.0
3.0.0 was the turning point. It removed the dependency on Expo's own services entirely: the server now stands on its own and introduced:
Control plane mode, with a database, users, and SSO
Multi-app support, so a single deployment manages your whole portfolio
A real security model: branch protection, per-token IP whitelisting, scoped access, audit logs
That release changed the nature of the project: from a nearly headless binary to an actual product you operate.
What's coming: 3.1.0
3.1.0 brings expo-observe support: performance and runtime observability for your apps, aggregated and rendered server-side, on infrastructure you own. It's the natural companion to updates: you ship a release, and you see what it does in the wild, in the same place.
And there's a lot more in the pipeline: feature flags / progressive rollouts (regional, staged, condition-based, user groups) and deeper release tooling.
About the name
expo-open-ota was named a year ago, and the name was cleared at the time with a member of the Expo team on Discord. For a small update server, it held up fine.
It doesn't anymore. With the repo's growing adoption, enterprise support, and everything landing next, the project is going to be renamed: specifically to avoid any conflict with the Expo trademark.
To be clear about what this is not: it's not a move away from Expo. This project lives in the Expo ecosystem, it implements Expo's protocols, it's built for Expo apps, and that isn't changing. The rename is about being a good citizen, not about distance.
More on the new name shortly. Everything else: the repo, the images, the docs will keep working, and migration guidance will come with the announcement.
Thanks to everyone who has starred, filed issues, and contributed. The interesting part starts now.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
More than year ago, expo-open-ota shipped as a small, self-hosted server that spoke the Expo Updates protocol. That was the whole scope: host your own updates, keep your own bucket, your own CDN, your own domain.
Since then the project has grown well beyond that, and so has the ambition behind it.
We're doubling down. The goal is no longer "an OTA server": it's a real control plane for Expo apps: one place to manage your apps, channels, branches, releases, access, and now the health of what you ship.
Where it started: 3.0.0
3.0.0 was the turning point. It removed the dependency on Expo's own services entirely: the server now stands on its own and introduced:
That release changed the nature of the project: from a nearly headless binary to an actual product you operate.
What's coming: 3.1.0
3.1.0 brings expo-observe support: performance and runtime observability for your apps, aggregated and rendered server-side, on infrastructure you own. It's the natural companion to updates: you ship a release, and you see what it does in the wild, in the same place.
And there's a lot more in the pipeline: feature flags / progressive rollouts (regional, staged, condition-based, user groups) and deeper release tooling.
About the name
expo-open-ota was named a year ago, and the name was cleared at the time with a member of the Expo team on Discord. For a small update server, it held up fine.
It doesn't anymore. With the repo's growing adoption, enterprise support, and everything landing next, the project is going to be renamed: specifically to avoid any conflict with the Expo trademark.
To be clear about what this is not: it's not a move away from Expo. This project lives in the Expo ecosystem, it implements Expo's protocols, it's built for Expo apps, and that isn't changing. The rename is about being a good citizen, not about distance.
More on the new name shortly. Everything else: the repo, the images, the docs will keep working, and migration guidance will come with the announcement.
Thanks to everyone who has starred, filed issues, and contributed. The interesting part starts now.
All reactions