Skip to content

Guide · Open source

How to use Expo: install, create an app and run it

Updated · written with AI from the project's own documentation and checked against our catalogue data

Expo is an open-source platform for building native apps for Android, iOS and the web from one codebase, written with React and JavaScript. This guide explains what you need before you start, how to create a new Expo app, and where to find the documentation and tools for the next steps. By the end you will know how to start a project and where to look for help.

Expoexpo/expo · ★ 53.3k · MIT

Quick start

  1. 1Install Node.js. Install Node.js, which the source lists as the prerequisite for Expo.
  2. 2Open a terminal. Open a terminal in the folder where you want your project to live.
  3. 3Create the app. Run npx create-expo-app to generate a new Expo project.
  4. 4Try it in Snack if you prefer. Visit snack.expo.dev to experiment in the browser without a local setup.
  5. 5Read the docs. Use the official documentation at docs.expo.dev to learn the APIs and workflows.
  6. 6Ask for help when stuck. Use the Expo Discord and forums or the FAQ at docs.expo.dev/faq.

What Expo is and who it is for

Expo is a framework for making universal native apps with React. It includes a universal runtime and a set of libraries so that one codebase can produce apps for Android, iOS and the web.

It suits developers who already know React and JavaScript and want to build mobile apps, teams that want one codebase covering mobile and web, and people who want to try Expo quickly in the browser via Snack. It is not aimed at non-programmers, and if you only need a website with no mobile plans, a simpler web framework may be enough.

What you need before installing Expo

The main prerequisite named in the source is Node.js. Install Node.js first, then use your package manager to create an Expo app.

Expo expects you to know React and JavaScript. If you are new to those, learn the basics before starting.

  • Node.js installed on your computer
  • Basic knowledge of React and JavaScript

Create your first Expo app

Open a terminal and run the command below. It creates a new Expo app from the project's templates. The source does not list further setup options, so follow the prompts that appear, or see the official docs for details.

npx create-expo-app

Try Expo in the browser with Snack

If you want to experiment before installing anything, the project offers Snack, a browser-based way to try Expo. Visit https://snack.expo.dev to start there.

Understand the Expo project layout

The repository is organised into folders. If you are a user building an app, the most useful ones are the templates folder, which holds the projects created by npx create-expo-app, and the docs folder, which is the source for the official documentation. If you want to change Expo itself, the packages folder holds the source code for Expo modules.

  • templates: the template projects you get when you run npx create-expo-app
  • docs: the source code for the official documentation
  • packages: the source code for Expo modules
  • apps/expo-go: the source code for the Expo Go app

Where to get help and build or release your app

The official documentation at https://docs.expo.dev covers getting started, the API reference and custom native modules. Questions can be asked on the Expo Discord and forums or on X at @expo. Expo Application Services (EAS) is a set of hosted services for building, shipping and iterating on apps, as an individual or a team.

  • Getting Started guide: https://docs.expo.dev/
  • API reference: https://docs.expo.dev/versions/latest/
  • Custom native modules guide: https://docs.expo.dev/workflow/customizing/

What people use it for

  • Building an iOS and Android app from one React and JavaScript codebase
  • Sharing one codebase between a mobile app and a web version
  • Prototyping an app idea quickly in the browser with Snack
  • Running a team's app builds and releases through hosted EAS services

Frequently asked questions

Is Expo free to use?

Expo's source code is released under the MIT license, as stated in the repository. Some dependencies are licensed differently, such as under the BSD license. Check the license files of any dependency you use.

What do I need to install Expo?

The source lists Node.js as the prerequisite. You create an app with npx create-expo-app from your terminal. You also need to know React and JavaScript.

Can I build an app for both iOS and Android with Expo?

Yes. Expo is described as a framework for making universal native apps that run on Android, iOS and the web, from one codebase.

Do I need to know native code to use Expo?

The project assumes React and JavaScript knowledge. The README points to custom native modules as a separate workflow, so you may need that later if you need deeper native control.

What is the difference between Expo and React Native CLI?

The source lists React Native CLI as a comparable project but does not compare the two in detail. Read the official docs at docs.expo.dev to weigh them for your project.

Where can I get help if something breaks?

Check the FAQ at docs.expo.dev/faq, ask on the Expo Discord and forums at chat.expo.dev, or contact @expo on X.

New agent skills, repos and AI tools — every week

The best new skills and open-source projects, the fastest-growing repos, and one free prompt. Five minutes to read. Unsubscribe anytime.

Our verdict

Expo suits developers who know React and JavaScript and want iOS, Android and web apps from one codebase, or who want hosted build services through EAS. If you only need a website, or you need full control over native code from the start, a simpler web framework or a different tool such as React Native CLI, Flutter, Ionic or Capacitor may fit better.

Install options & downloads