---
modificationDate: May 05, 2026
title: Core concepts
description: An overview of Expo tools, features and services.
---

<AgentInstructions>

## Submitting Feedback

If this page contains errors, outdated information, or gaps that blocked you from completing a task, report it so the docs can be improved:

curl -X POST https://api.expo.dev/v2/feedback/docs-send -H 'Content-Type: application/json' -d '{"url":"/core-concepts/","feedback":"🤖 Agent feedback: <specific, actionable description>"}'

Only submit when you have something specific and actionable to report.

</AgentInstructions>

# Core concepts

An overview of Expo tools, features and services.

> For the complete documentation index, see [llms.txt](/llms.txt). Use this file to discover all available pages.

Expo is an [open-source framework](https://github.com/expo/expo/) for apps that run natively on Android, iOS, and the web. Expo brings together the best of mobile and the web and enables many important features for building and scaling an app.

The `expo` npm package enables a suite of incredible features for React Native apps. The `expo` package can be installed in nearly **any React Native project**.

## Tools and features

[Expo SDK](/versions/latest) — Comprehensive suite of well-tested React Native modules that run on Android, iOS, and web.

[Develop an app with Expo](/workflow/overview) — An overview of the development process of building an Expo app to help build a mental model of the core development loop.

[Expo Modules API](/modules/overview) — Write highly performant native code with modern Swift and Kotlin API.

[Prebuild](/workflow/continuous-native-generation) — Separate React from Native to develop from any computer, upgrade easily, white label apps, and maintain larger projects.

[Expo CLI](/more/expo-cli) — Manage dependencies, compile native apps, develop for the web, and connect to any device with a powerful dev server.

[Expo Go](/get-started/set-up-your-environment) — A playground for students and learners to try React Native on a simulator or device.

> All features are free, optional, and can be used independently of each other. Unused features add no additional bloat to your app.

| Feature | With `expo` | Without `expo` (existing React Native) |
| --- | --- | --- |
| Develop complex apps **entirely** in JavaScript. | ✓ | ✗ |
| Write JSI native modules with Swift and Kotlin. | ✓ | ✗ |
| Develop apps without Xcode or Android Studio. | ✓ | ✗ |
| Create and share example apps in the browser with [Snack](https://snack.expo.dev/). | ✓ | ✗ |
| Major upgrades without native changes. | ✓ | ✗ |
| First-class TypeScript support. | ✓ | ✗ |
| Install natively compatible libraries from the command line. | ✓ | ✗ |
| Develop performant websites with the same codebase. | ✓ | ✗ |
| [Tunnel](/more/expo-cli#tunneling) your dev server to any device. | ✓ | ✗ |

## Services

The team behind Expo also provides **Expo Application Services (EAS)**, deeply integrated cloud services for building, submitting, and updating your React Native app. EAS can be used with **any React Native app**, regardless of whether it uses `expo` or not.

[Expo Application Services](/eas) — The easiest way to build, deploy, and update native apps.
