🌐
GitHub
github.com › expo › custom-expo-updates-server
GitHub - expo/custom-expo-updates-server: A simplified demonstration of expo-updates protocol use.
Expo provides a set of service named EAS (Expo Application Services), one of which is EAS Update which can host and serve updates for an Expo app using the expo-updates library. In some cases more control of how updates are sent to an app may ...
Starred by 471 users
Forked by 123 users
Languages   TypeScript 84.8% | JavaScript 7.8% | CSS 6.4% | Shell 1.0%
🌐
Expo Documentation
docs.expo.dev › versions › latest › sdk › updates
Updates - Expo Documentation
Checks the server to see if a newly deployed update to your project is available. Does not actually download the update. This method cannot be used in development mode, and the returned promise will be rejected if you try to do so.
🌐
npm
npmjs.com › package › expo-updates
expo-updates - npm
The expo-updates module enables your app to manage remote updates to your application code. This module works with a server that implements the Expo Update protocol.
      » npm install expo-updates
    
Published   Dec 08, 2025
Version   29.0.15
Author   650 Industries, Inc.
🌐
Expo Documentation
docs.expo.dev › distribution › custom-updates-server
Use expo-updates with a custom updates server
Checks the server to see if a newly deployed update to your project is available. Does not actually download the update. This method cannot be used in development mode, and the returned promise will be rejected if you try to do so.
🌐
GitHub
github.com › umbertoghio › self-hosted-expo-updates-server
GitHub - umbertoghio/self-hosted-expo-updates-server
Self Hosted Expo Update Server is a ready to use batteries included Expo updates compliant server to manage updates that you can host yourself in the cloud and have full control and visibility on the update cycle, including rollbacks!
Starred by 276 users
Forked by 40 users
Languages   JavaScript 62.7% | Java 11.3% | HTML 8.1% | Shell 4.6% | C++ 4.5% | Objective-C++ 4.3%
🌐
Expo Documentation
docs.expo.dev › bare › installing-updates
Install expo-updates in an existing React Native project - Expo Documentation
If you want to set up a custom expo-updates server instead, add your URL to updates.url in app.json.
🌐
Reddit
reddit.com › r/reactnative › sharing my first npm package: a user-friendly expo updates custom server package and cli for easy release and rollback, ahead of appcenter’s (codepush) retirement
r/reactnative on Reddit: Sharing my first npm package: a User-Friendly Expo Updates Custom Server Package and CLI for Easy Release and Rollback, Ahead of AppCenter’s (CodePush) Retirement
March 29, 2024 -

Hello React Native Enthusiasts!

I’m thrilled to introduce my very first package, born out of the necessity created by the sunsetting of AppCenter together with CodePush. My journey began with a deep dive into custom expo updates server development, and I was fortunate to stumble upon an example by the Expo team, which sparked the idea for this project.

Introducing expo-up: a CLI tool designed to streamline the release and rollback process for updates on a custom Expo updates server. Inspired by the generosity of CodePush, I’ve utilized free services like Firebase Storage and Vercel for backend deployment.

🔗 CLI Tool: expo-up 🔗 Custom Server Package (Tested for Next.js, Feel free to test with Other Node.js Server Frameworks): expo-up-server

I’m eager to hear your thoughts and suggestions. As this is my inaugural package, your feedback would be invaluable to me.

As I integrate this into my projects, I am committed to its continuous enhancement. Should any bugs or issues arise, they will be promptly addressed. Contributions through pull requests are highly appreciated, and inquiries are always welcome.

🌐
Expo Documentation
docs.expo.dev › eas-update › download-updates
Downloading updates - Expo Documentation
You can combine that approach with the strategies above to check for updates. The typical way to use EAS Update is to have a single update URL and a set of request headers (such as update channel name) embedded in a build of your app.
🌐
Expo Documentation
docs.expo.dev › eas-update › deployment
Deploy updates - Expo Documentation
The only concepts relevant to update selection that exist on the protocol level are "Runtime Version" and "Platform", and you are free to create your own concepts on top of those in the same way we built channels and branches. Learn more about creating a custom expo-updates server.
Find elsewhere
🌐
Stack Overflow
stackoverflow.com › questions › 76369721 › how-can-i-run-the-expo-updates-package-on-a-simulator-while-connected-to-my-self
How can I run the expo-updates package on a simulator while connected to my self-hosted OTA server? - Stack Overflow
The solution was to run npx react-native run-ios --configuration Release. The __DEV__ variable which is set to true when running dev clients cannot be set as this prevents expo-updates from requesting the OTA server.
🌐
Expo Documentation
docs.expo.dev › eas-update › getting-started
Get started with EAS Update - Expo Documentation
When you publish an update with the eas update command, it generates a new update bundle and uploads it to the EAS servers. The channel name is used to locate the correct branch to publish a new update from other update branches.
🌐
UNPKG
unpkg.com › browse › [email protected] › README.md
expo-updates
Fetches and manages remotely-hosted assets and updates to your app's JS bundle. ... # expo-updates `expo-updates` fetches and manages updates to your app stored on a remote server.
🌐
Expo Documentation
docs.expo.dev › eas-update › override
Override update configuration at runtime - Expo Documentation
The typical way to use EAS Update is to have a single update URL and a set of request headers (such as update channel name) embedded in a build of your app. To control which update is loaded you make changes on the server through the eas update command or the EAS dashboard.
🌐
npm
npmjs.com › package › @expo › server
expo/server
Server API for Expo Router projects. Latest version: 0.7.5, last published: 2 months ago. Start using @expo/server in your project by running `npm i @expo/server`. There are 3 other projects in the npm registry using @expo/server.
      » npm install @expo/server
    
Published   Sep 22, 2025
Version   0.7.5
🌐
Expo
expo.dev › changelog
Changelog — Expo
Check out new updates and improvements to Expo and EAS from the Expo team.
🌐
DEV Community
dev.to › nour_abdou › react-native-ota-updates-with-expo-eas-step-by-step-guide-best-practices-1idk
React Native OTA Updates with Expo EAS: Step-by-Step Guide & Best Practices - DEV Community
May 12, 2025 - This repo contains a basic server implementation built with Next.js. The key API endpoints are located in: pages/api/manifest.js – Handles the manifest file generation. ... These endpoints adhere to the Expo Updates protocol, allowing your app to fetch the latest update bundles.
🌐
GitHub
github.com › expo › expo › tree › main › packages › expo-updates
expo/packages/expo-updates at main · expo/expo
The expo-updates module enables your app to manage remote updates to your application code. This module works with a server that implements the Expo Update protocol.
Author   expo
🌐
GitHub
github.com › axelmarciano › expo-open-ota
GitHub - axelmarciano/expo-open-ota: An open-source self-hosted custom updates server implementing the Expo Updates protocol, built for production. Supports cloud storage & CDN.
An open-source self-hosted custom updates server implementing the Expo Updates protocol, built for production. Supports cloud storage & CDN. - axelmarciano/expo-open-ota
Starred by 176 users
Forked by 23 users
Languages   Go 46.1% | TypeScript 39.1% | MDX 10.5% | JavaScript 2.5% | CSS 1.1% | Smarty 0.3%