OTA Update Server
Self-hosted over-the-air updates for many mobile apps, without a paid service.
Overview
Ship fixes and new features to mobile apps instantly, without waiting for App Store or Google Play review. Apps check my own server for updates instead of a paid service, and one server handles many apps.
Mobile apps normally need a new store release for every change. With over-the-air updates, the app's code is downloaded the next time it opens, so a bug fix can reach every user within minutes.
Hosted services charge for this. I built a self-hosted server that standard apps can use with no changes to their code.
Under the hood
The features that took real engineering
- 01
Works with standard apps out of the box
The server follows Expo's official update specification, so apps use their normal update client and simply point it at this server. It can tell an app there's a new version, that it's already up to date, or that it should fall back to the version built into the app.
- 02
Safe rollbacks
If an update causes problems, one command sends every app back to the previous version, or to the original version shipped in the store.
- 03
Signed updates
Each app can verify that an update really came from its publisher before installing it, so nobody can push code in someone else's name.
- 04
Channels and many apps
One server hosts many apps, each with its own channels such as testing and production. An update can be tried on testing first, then promoted to everyone.
- 05
One command to release
A command-line tool builds, uploads and publishes an update, and also manages apps, channels and signing keys.
- 06
Storage that scales
Files are stored once in cloud storage and sent either through the server or straight from storage, keeping the server fast and bandwidth low.