1---
2title: Getting started
3description: Learn how to get started with EAS Update and use in your project.
4---
5
6import { Terminal } from '~/ui/components/Snippet';
7import { Step } from '~/ui/components/Step';
8
9Setting up EAS Update allows you to push critical bug fixes and improvements that your users need right away.
10
11<Step label="1">
12## Install the latest EAS CLI
13
14EAS CLI is the command line app you will use to interact with EAS services from your terminal. To install it, run the command:
15
16<Terminal cmd={['$ npm install --global eas-cli']} />
17
18You 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.
19
20> We recommend using `npm` instead of `yarn` for global package installations. You may alternatively use `npx eas-cli`; remember to use that instead of `eas` whenever it's called for in the documentation.
21
22</Step>
23
24<Step label="2">
25## Create a project
26
27Create a project by running:
28
29<Terminal cmd={['$ npx create-expo-app']} />
30</Step>
31
32<Step label="3">
33## Configure your project
34
35To configure your project, run the following commands in the order they are specified:
36
37<Terminal
38  cmd={[
39    '# Install the latest `expo-updates` library',
40    '$ npx expo install expo-updates',
41    '',
42    '# Initialize your project with EAS Update',
43    '$ eas update:configure',
44    '',
45    '# Set up the configuration file for builds',
46    '$ eas build:configure',
47  ]}
48  cmdCopy="expo install expo-updates && eas update:configure && eas build:configure"
49/>
50
51After running these commands, **eas.json** file will be created in the root directory of your project.
52
53Inside the `preview` and `production` build profiles in **eas.json**, add a `channel` property for each:
54
55```json eas.json
56{
57  "build": {
58    "preview": {
59      "channel": "preview"
60      // ...
61    },
62    "production": {
63      "channel": "production"
64      // ...
65    }
66  }
67}
68```
69
70The `channel` allows you to point updates at builds of that profile. For example, if we set up a GitHub Action to publish changes on merge, it will make it so that we can merge code into the "production" Git branch. Then, each commit will trigger a GitHub Action that will publish an update which will be available to builds with the channel "production".
71
72> **Optional**: If your project is a bare React Native project, see [Updating bare app](/bare/updating-your-app) for any additional configuration.
73
74</Step>
75
76<Step label="4">
77## Create a build for the project
78
79You need to create a build for Android or iOS. We recommend creating a build with the `preview` build profile first. See [Creating your first build](https://docs.expo.dev/build/setup/) on how to get started and set up [Internal distribution](https://docs.expo.dev/build/internal-distribution/#setting-up-internal-distribution) for your device or simulator.
80
81Once you have a build running on your device or a simulator, you are ready to send an update.
82
83</Step>
84
85<Step label="5">
86## Make changes locally
87
88After creating the build, you are ready to iterate on the project. Start a local development server with the following command:
89
90<Terminal cmd={['$ npx expo start']} />
91
92Then, make any desired changes to your project's JavaScript, styling, or image assets.
93
94</Step>
95
96<Step label="6">
97## Publish an update
98
99To publish an update to the build, run the following command:
100
101<Terminal
102  cmd={[
103    '$ eas update --branch [branch] --message [message]',
104    '',
105    '# Example',
106    '$ eas update --branch preview --message "Updating the app"',
107  ]}
108  cmdCopy={null}
109/>
110
111Once the update is built and uploaded to EAS and the command completes, force close and reopen your app up to two times to download and view the update.
112
113</Step>
114
115## Next steps
116
117You can publish updates continuously with GitHub Actions. See [Using GitHub Actions with EAS Update](/eas-update/github-actions) for more information.
118