🌐
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 › 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.
🌐
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 › 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.
🌐
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
🌐
UNPKG
unpkg.com › browse › [email protected] › README.md
expo-updates/README.md
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 › 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.
🌐
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
expo.dev › changelog
Changelog — Expo
Check out new updates and improvements to Expo and EAS from the Expo team.
🌐
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
🌐
Luanphung
luanphung.com › blog › custom-server-expo-update
Custom Expo-Update Server | luanphung.com
March 8, 2022 - <View style={styles?.container}> <View> <Text style={styles?.title}>Update Available</Text> <Text style={styles?.description}>New version is ready to install</Text> </View> <Pressable style={styles.button} onPress={updateVersion}> { loading ? <ActivityIndicator /> : <Text style={styles.buttonText}>{'INSTALL'}</Text> } </Pressable> </View> : <View></View> } </> ); } ... ... project_folder=/home/luanphung/expo-server dest_dir=$project_folder/$env/$platform/$CURRENT_VERSION/$NEW_EXPO_BUILD_NUMBER #remember to change this to your path SERVER=ubuntu@your-server-ip zipfile=expo_update #export code & copy necessary to dist folder npx expo export > /dev/null node ./scripts/exportClientExpoConfig.js > dist/expoConfig.json #zip folders & files in dist, zip will reduce time to copy files to server (cd dist && zip -r "$OLDPWD/$zipfile.zip" .
🌐
Stack Overflow
stackoverflow.com › questions › tagged › expo-updates
Newest 'expo-updates' Questions - Stack Overflow
I am trying to find solution to toggle between ltr and rtl view in react native expo. I have tried this solution: import * as Updates from "expo-updates"; import { I18nManager, } from &... ... I want to create my own OTA server that will feed updates to my client which is using the expo-updates ...
🌐
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%