Edit this page
Learn how to deploy your Expo Router web app to EAS Hosting.
EAS Hosting allows you to deploy an exported Expo web build to a preview or production URL.
This guide will walk you through the process of creating your first web deployment.
EAS Hosting is available to anyone with an Expo account, regardless of whether you pay for EAS or use the Free plan. You can sign up at expo.dev/signup.
Paid subscribers can create more deployments, have more bandwidth, storage, requests, and may set up a custom domain. Learn more about different plans and benefits at EAS pricing.
If using an existing project, ensure that in your project's app config, the web output (expo.web.output
) is set to either static
or server
(single page apps are not supported on EAS Hosting).
Don't have a project yet? No problem. It's quick and easy to create a "Hello world" app that you can use with this guide.
Run the following command to create a new project:
-
npx create-expo-app@latest my-app
1
EAS CLI is the command line app you will use to interact with EAS services from your terminal. To install it, run the command:
-
npm install --global eas-cli
You can also use the above command to check if a new version of EAS CLI is available. We encourage you to always stay up to date with the latest version.
We recommend using
npm
instead ofyarn
for global package installations. You may alternatively usenpx eas-cli@latest
. Remember to use that instead ofeas
whenever it's called for in the documentation.
2
3
In your app config file set expo.web.output
to either static
or server
.
static
: Exports your Expo app to a statically generated web appserver
: Supports server functions and API routes as well as the static pages for your websiteDon't worry if you're not sure which output mode you need, you can always change this value later and re-deploy.
4
Now publish your website to EAS Hosting:
-
eas deploy
The first time you run this command, it will:
A preview subdomain name is a prefix used for the preview URL of your app. For example, if you choosemy-app
as your preview subdomain name, your preview URL would look something like this:https://my-app--or1170q9ix.expo.app/
, and your production URL would be:https://my-app.expo.app/
.
Once your deployment is complete, the CLI will output a preview URL for where your deployed app is accessible, as well as a link to the deployment details on the EAS Dashboard.