1---
2title: Installation
3description: Learn how to get started creating a new universal app with Expo.
4---
5
6import { Terminal } from '~/ui/components/Snippet';
7import { BoxLink } from '~/ui/components/BoxLink';
8import { ExpoGoLogo } from '@expo/styleguide';
9import { CALLOUT } from '~/ui/components/Text';
10import { BookOpen02Icon } from '@expo/styleguide-icons';
11
12To develop applications with Expo, make sure to check out the following requirements and recommended tools.
13
14## Requirements
15
16To use Expo, you need to have the following tools installed on your machine:
17
18- [Node.js LTS release](https://nodejs.org/en/) - Only Node.js LTS releases (even-numbered) are recommended.
19  <CALLOUT theme="secondary">As Node.js [officially states](https://nodejs.org/en/about/releases/), "Production applications should only use Active LTS or Maintenance LTS releases". You can install Node.js using a version management tool (such as `nvm` or `volta` or any other of your choice) to switch between different Node.js versions.</CALLOUT>
20- [Git](https://git-scm.com) for source control.
21- [Watchman](https://facebook.github.io/watchman/docs/install#buildinstall) (for Linux or macOS users).
22
23## Get started
24
25After installing Node.js, you can use `npx` to create a new app.
26
27<Terminal cmd={['$ npx create-expo-app --template']} />
28
29<BoxLink
30  title="Create a new project"
31  description="Learn how to create a new Expo project and run it on your device."
32  href="/get-started/create-a-project"
33  Icon={BookOpen02Icon}
34/>
35
36## Expo CLI
37
38[Expo CLI](/more/expo-cli/) is part of the `expo` package, and you can use it by leveraging `npx` &mdash; a Node.js package runner. To start your app, open the terminal on your development machine and run the `npx expo` command:
39
40<Terminal
41  cmd={[
42    '# Start the development server',
43    '$ npx expo',
44    '',
45    '# See a list of commands in Expo CLI',
46    '$ npx expo --help',
47  ]}
48  cmdCopy="npx expo"
49/>
50
51> **info** You don't need macOS to build an iOS app. You only need an iOS device to run a development build. Learn what are [development builds](/develop/development-builds/introduction/) and how you can leverage them to build your projects.
52
53## Recommended tools
54
55- [Yarn](https://classic.yarnpkg.com/en/docs/install) for faster and more reliable dependency management. Use this instead of `npm` and `npx`.
56- [VS Code Editor](https://code.visualstudio.com/download) and [VS Code Expo Extension](https://marketplace.visualstudio.com/items?itemName=expo.vscode-expo-tools) for easier debugging and app config autocomplete.
57- [PowerShell](https://docs.microsoft.com/en-us/powershell/scripting/install/installing-powershell-core-on-windows) (the default terminal in VS Code) or Bash via WSL for developers who prefer Windows.
58
59If you are using Yarn, you can bootstrap a new app using the following command:
60
61<Terminal cmd={['$ yarn create expo']} />
62
63## Next step
64
65<BoxLink
66  title="Expo Go"
67  description="Now that Expo CLI is working, in the next step, let's learn about one of the fastest ways to test your project using Expo Go."
68  Icon={ExpoGoLogo}
69  href="/get-started/expo-go"
70/>
71