Expo llms.txt · AI Docs Browser · mdream

[llms.txt Tools](https://mdream.dev/llms-txt/expo/llms-txt)

# Expo llms.txt

Browse Expo documentation as markdown. Click any page in the sidebar to view it, or copy the full llms.txt for your AI tools.

docs.expo.dev/llms.txt

[Raw llms.txt](https://docs.expo.dev/llms.txt) [Raw llms-full.txt](https://docs.expo.dev/llms-full.txt)

Copy Markdown [](https://docs.expo.dev/llms.txt)

llms.txt

Important: common misconceptions

reactnative.dev

Performance

Get started

Create a project

Set up your environment

Start developing

Next steps

AI

AI agents and Expo overview

Expo Skills for AI agents

Using Model Context Protocol (MCP) with Expo

Documentation for AI agents and LLMs

Claude Code and Expo

Codex and Expo

Cursor and Expo

agent-device and Expo

Argent and Expo

Develop

Tools for development

Navigation in Expo and React Native apps

Databases in Expo and React Native apps

Authentication in Expo and React Native apps

Unit testing with Jest

Splash screen and app icon

Safe areas

System bars

Fonts

Assets

Color themes

Animation

Store data

Next steps

Introduction to development builds

Use a development build

Share a development build with your team

Tools, workflows and extensions

Development builds FAQ

Introduction to config plugins

Create and use config plugins

Mods

Using a dangerous mod

Plugin development for libraries

Developing and debugging a plugin

Using patch-project

Errors and warnings

Debugging runtime issues

Debugging and profiling tools

Dev tools plugins

Create a dev tools plugin

Review

Overview of distributing apps for review

Share previews with your team

How to launch an update using Expo Orbit

Deploy

Build your project for app stores

Submit to app stores

App stores metadata

Send over-the-air updates

Publish your web app

Monitor

Monitoring services

More

Development process

Develop an app with Expo

Configure with app config

Continuous Native Generation (CNG)

Using Expo SDK, React Native, and third-party libraries

Privacy manifests

Permissions

Environment variables in Expo

Overview of Linking, Deep Links, Android App Links, and iOS Universal Links

Linking into other apps

Linking into your app

Android App Links

iOS Universal Links

Add custom native code

Adopt Prebuild

Build locally: Overview

Create a debug build locally

Create a release build locally

Use build cache providers

Precompiled Expo Modules

Develop websites with Expo

Publish websites

Using React DOM in Expo native apps

Using React Server Components in Expo Router apps

Testing React Server Components

Progressive web apps

Tailwind CSS

Using local HTTPS development

Metro bundler

Analyzing JavaScript bundles with Expo Atlas and Lighthouse

Tree shaking and code removal

Minifying JavaScript

Why Metro?

Work with monorepos

View logs

Development and production modes

Common development errors

Android Studio Emulator

iOS Simulator

React Native's New Architecture

React Compiler

Overview of using Expo with existing React Native apps

Install Expo modules in an existing React Native project

Migrate from React Native CLI to Expo CLI

Install expo-updates in an existing React Native project

Install expo-dev-client in an existing React Native project

Native project upgrade helper

Integrating Expo tools into existing native apps

How to add Expo to a native app using the isolated approach

How to add Expo to a native app using the integrated approach

Configuring lifecycle listeners

Expo Router

Introduction to Expo Router

Manual installation

Core concepts of file-based routing in Expo Router

Expo Router notation

Navigation layouts in Expo Router

Navigating between pages in Expo Router

Common navigation patterns in Expo Router

Stack

JavaScript tabs

Native tabs

Drawer

Authentication in Expo Router

Authentication in Expo Router using redirects

Nesting navigators

Modals

Web modals

Shared routes

Protected routes

Platform-specific extensions and module

Customizing links

Router settings

Apple Handoff

Custom tab layouts

Custom navigators

Stack Toolbar

Zoom transition

API Routes

Data loaders

Server middleware

Server headers

Static rendering

Server rendering

Async routes

Error handling and loading states

Using URL parameters

Color

Sitemap

Redirects

Link preview

Typed routes

Screen tracking for analytics

Top-level src directory

Testing configuration for Expo Router

Troubleshooting

Reserved paths

Migrate from React Navigation

Migrate from Expo Webpack

Migrate Expo Router from SDK 55 to SDK 56

Expo Modules API

Expo Modules API: Overview

Expo Modules API: Get started

Tutorial: Create a native module

Tutorial: Create a native view

Tutorial: Create an inline module

Tutorial: Generate module TS interface

Tutorial: Create a module with a config plugin

How to use a standalone Expo module

Wrap third-party native libraries

Integrate in an existing library

Additional platform support

Module API Reference

Inline modules reference

Type generation reference

Android lifecycle listeners

iOS AppDelegate subscribers

Autolinking

Using shared objects

expo-module.config.json

Mocking native calls in Expo modules

Expo Modules API: Design considerations

Push notifications

Expo push notifications: Overview

What you need to know about notifications

Expo push notifications setup

Send notifications with the Expo Push Service

Handle incoming notifications

Obtain Google Service Account Keys using FCM V1

Send notifications with FCM and APNs

Push notifications troubleshooting and FAQ

Integrations

React Native analytics SDKs and libraries

Using Sentry

Using BugSnag

Using LogRocket

Using Vexo

Using authentication SDKs and libraries

Using Clerk

Using Facebook authentication

Using Google authentication

Using a Content Management System (CMS)

Using Convex

Using Firebase

Using Supabase

Using Resend

React Native feature flag services

Using in-app purchases

Using push notifications

Using ESLint and Prettier

Using TypeScript

Build Expo apps for TV

Using Next.js with Expo for Web

More

Upgrade Expo SDK

Migrate to the new expo-media-library API

Migrate to the new expo-calendar API

Migrate to the new expo-contacts API

Authentication with OAuth or OpenID providers

Using Hermes Engine

iOS Developer Mode

Expo Vector Icons

Localization

Using Bun

Edit rich text

Create app store assets

Local-first architecture with Expo

Keyboard handling

Controlled components

Building SwiftUI apps with Expo UI

Extending with SwiftUI

Extending with Jetpack Compose

Troubleshooting overview

"Application has not been registered" error

Clear bundler caches on macOS and Linux

Clear bundler caches on Windows

"React Native version mismatch" errors

Troubleshooting Proxies

Regulatory compliance

Expo tutorial

Tutorial: Using React Native and Expo

Create your first app

Add navigation

Build a screen

Use an image picker

Create a modal

Add gestures

Take a screenshot

Handle platform differences

Configure status bar, splash screen and app icon

Learning resources

Build with AI tutorial

Tutorial: Build an app with an AI agent

Set up your tools

Create your first app

Build the home screen

Add stickers

Save your creation

Finishing touches

EAS tutorial

EAS Tutorial: Introduction

Configure a development build in cloud

Create and run a cloud build for Android

Create and run a cloud build for iOS Simulator

Create and run a cloud build for iOS device

Configure multiple app variants

Create and share internal distribution build

Manage different app versions

Create a production build for Android

Create a production build for iOS

Share previews with your team

Trigger builds from a GitHub repository

Next steps

CI/CD tutorial

CI/CD Tutorial: Introduction

Run your first EAS Workflows job

Automate development builds with EAS Workflows

Create preview builds for pull requests with EAS Workflows

Run E2E tests with Maestro on EAS Workflows

Automate production deployments with EAS Workflows

Using Git tags to trigger production deployments

Deploy web apps to EAS Hosting with EAS Workflows

Next steps

More

Environment variables in EAS

Create and manage environment variables in EAS

Using Environment variables in EAS

Using environment variables without EAS

Frequently asked questions about environment variables in EAS

EAS Workflows

Introduction to EAS Workflows

Get started with EAS Workflows

Pre-packaged jobs in EAS Workflows

Syntax for EAS Workflows

Automating EAS CLI commands

Workflows REST API

Troubleshoot EAS Workflows

EAS Workflows limitations

EAS Workflows examples

Create development builds with EAS Workflows

Publish preview updates with EAS Workflows

Clean up EAS Update branches with EAS Workflows

Deploy to production with EAS Workflows

Run E2E tests on EAS Workflows with Maestro

EAS Build

EAS Build

Create your first build

Configure EAS Build with eas.json

Internal distribution

Automate submissions

Using EAS Update

Trigger builds from CI

Trigger builds from the Expo GitHub App

Expo Orbit

App credentials

Using automatically managed credentials

Using local credentials

Using existing credentials

Sync credentials between remote and local sources

Security

Apple Developer Program roles and permissions for EAS Build

Get started with custom builds

Custom build configuration schema

TypeScript functions

Build lifecycle hooks

Using private npm packages

Using Git submodules

Using npm cache with Yarn 1 (Classic)

Set up EAS Build with a monorepo

Build APKs for Android Emulators and devices

Build for iOS Simulators

App version management

Troubleshoot build errors and crashes

Install app variants on the same device

iOS capabilities

Run EAS Build locally with local flag

Cache dependencies

Android build process

iOS build process

Build configuration process

Build server infrastructure

iOS App Extensions

Ignore files via .easignore

npx testflight command

Repack app

EAS Build Limitations

EAS Submit

Submit to the Google Play Store with EAS Submit

Submit to the Apple App Store with EAS Submit

Manually submit an Android app to the Google Play Store

Manually submit an iOS app to the Apple App Store

Configure EAS Submit with eas.json

EAS Hosting

Introduction to EAS Hosting

Deploy your first Expo Router and React app

Assign aliases and promote to production

Custom domain

API Routes

Web deployments with EAS Workflows

Caching with EAS Hosting deployments

Default responses and headers

EAS Hosting worker runtime

EAS Update

EAS Update

Get started with EAS Update

Preview updates

Channel surfing

Override update configuration at runtime

Preview updates in development builds

GitHub Action for PR previews

Deploy updates

Downloading updates

Rollouts

Rollbacks

Bundle diffing for EAS Update

Optimize assets for EAS Update

Alternative deployment patterns

How EAS Update works

Manage branches and channels with EAS CLI

Runtime versions and updates

EAS Update Debugging

Error recovery

End-to-end code signing with EAS Update

Asset selection and exclusion

Using EAS Update without other EAS services

Request proxying

Migrate from CodePush

Migrate from Classic Updates

How to trace an update ID back to the EAS dashboard

Estimate bandwidth usage

Using EAS Update in an existing native app

EAS Metadata

EAS Metadata

Get started with EAS Metadata

Configuring EAS Metadata

Schema for EAS Metadata

EAS Insights

EAS Insights

App usage

EAS Workflows insights

Maestro insights

EAS Observe

Introduction to EAS Observe

Set up EAS Observe

EAS Observe dashboard

EAS Update download performance

User-defined events

Configure EAS Observe

Expo Router integration

React Navigation integration

Metrics reference

Troubleshooting EAS Observe

Distribution

Distribution: Overview

App stores best practices

App transfers

Understanding app size

Reference

Webhooks

Account types

Two-factor authentication

Programmatic access

Single Sign-On (SSO)

Audit logs

Billing: Overview

Subscriptions, plans, and add-ons

Manage plans and billing

View payment history, invoices, and receipts

Usage-based pricing

Plans, Billing, and Payment FAQs

Configuration files

app.json / app.config.js

babel.config.js

metro.config.js

package.json

Expo Router

Router

Router Color

Router Experimental Stack

Router Link

Router Native tabs

Router Split View

Router Stack

Router UI

Expo UI

Expo UI

Drop-in replacements

Jetpack Compose

SwiftUI

Universal

Expo SDK

Expo

Accelerometer

AgeRange

AppIntegrity

AppleAuthentication

Application

Asset

Audio (expo-audio)

AuthSession

BackgroundFetch

BackgroundTask

Barometer

Battery

Blob

BlurView

Brightness

Brownfield

BuildProperties

Calendar

Calendar (legacy)

Camera

Cellular

Checkbox

Clipboard

Constants

Contacts

Contacts (legacy)

Crypto

DevClient

Device

DeviceMotion

DevMenu

DocumentPicker

FileSystem

FileSystem (legacy)

Expo Fingerprint

Font

GlassEffect

GLView

Gyroscope

Haptics

Image

ImageManipulator

ImagePicker

IntentLauncher

KeepAwake

LightSensor

LinearGradient

Linking

LivePhoto

LocalAuthentication

Localization

Location

Magnetometer

MailComposer

Manifests

Maps

MediaLibrary

MediaLibrary (legacy)

MeshGradient

NavigationBar

Network

Notifications

Pedometer

Print

ScreenCapture

ScreenOrientation

SecureStore

Sensors

Server

Sharing

SMS

Speech

SplashScreen

SQLite

StatusBar

StoreReview

Symbols

SystemUI

TaskManager

TrackingTransparency

Updates

Video (expo-video)

VideoThumbnails

WebBrowser

Widgets

Third-party libraries

Third-party libraries supported in Expo Go

@react-native-async-storage/async-storage

@react-native-community/datetimepicker

@react-native-community/netinfo

@react-native-community/slider

@react-native-masked-view/masked-view

@react-native-picker/picker

@react-native-segmented-control/segmented-control

@shopify/flash-list

@shopify/react-native-skia

@stripe/stripe-react-native

react-native-gesture-handler

react-native-keyboard-controller

react-native-maps

react-native-pager-view

react-native-reanimated

react-native-safe-area-context

react-native-screens

react-native-svg

react-native-view-shot

react-native-webview

Technical specs

Expo Updates v1

Expo Structured Field Values

More

Expo CLI

create-expo-app

create-expo-module

qr.expo.dev

Release statuses

Glossary of terms

Other Expo documentation files

/llms-full.txt

/llms-eas.txt

/llms-sdk.txt

/llms-sdk-v54.0.0.txt

## What is Expo's llms.txt?

Expo publishes an `/llms.txt` file that provides AI systems with a structured index of its documentation. It follows the [llms.txt specification](https://llmstxt.org), organizing links to guides, API references, and tutorials under section headings so that LLMs like ChatGPT, Claude, and Gemini can quickly understand what Expo offers and where to find details.

Issues

Spec

39

Sections

538

Links

52.6 KB

Size

~13.5k

Tokens

Sections: Important: common misconceptions · Performance · Get started · AI · Develop · Review · and 33 more

## Add Expo Docs to Your AI Assistant

Select your tool to see how to add Expo's llms.txt as a documentation source.

Cursor

 Windsurf

 Claude Code

 ChatGPT

 Zed

 Copilot

1. 1

   Open any chat or composer panel
2. 2

   Type @Docs and select "Add new doc"
3. 3

   Paste the URL: https://docs.expo.dev/llms.txt
4. 4

   Wait for the green dot (indexing complete)
5. 5

   Reference @Docs in chat when asking about Expo

Cursor crawls the URL and indexes all subpages. Add a trailing slash to index child pages too.

## Spec Compliance 54 errors

## Frequently Asked Questions

Where is Expo's llms.txt file?

Expo publishes its llms.txt at https://docs.expo.dev/llms.txt. This file provides a structured, markdown-formatted index of Expo's documentation that AI systems can consume to understand the project's APIs, guides, and references.

How do I use Expo's llms.txt with AI coding assistants?

Copy the llms.txt content and paste it into your AI assistant (Cursor, Windsurf, Claude, ChatGPT) as context. This gives the AI an accurate map of Expo's documentation so it can provide better code suggestions and answers about Expo.

What does Expo's llms.txt contain?

Expo's llms.txt contains 39 sections and 538 documentation links in 52.6 KB (~13.5k tokens). Key sections include Important: common misconceptions, Performance, Get started, AI, Develop, Review.

How many tokens does Expo's llms.txt use?

The concise llms.txt index is approximately 13.5k tokens (52.6 KB). Most AI assistants can fit this within their context window. For the full expanded documentation, look for an llms-full.txt variant which embeds all content inline.

What is Expo?

An open-source React Native framework. Expo's llms.txt file helps AI systems understand this by providing a structured overview of its documentation, making it easier for developers to get accurate AI-assisted help when working with Expo.

Can I generate an llms.txt for my own project?

Yes. Use the free llms.txt generator at mdream.dev/tools/llms-txt/generator to crawl your site and produce a spec-compliant llms.txt file. You can also validate existing files with the llms.txt validator.

## Browse More llms.txt Files

[AWS Amazon Web Services documentation](https://mdream.dev/llms-txt/expo/llms-txt/aws) [Render Cloud hosting for developers](https://mdream.dev/llms-txt/expo/llms-txt/render) [Payload The best way to build a modern backend + admin UI](https://mdream.dev/llms-txt/expo/llms-txt/payload) [Railway Infrastructure, made simple](https://mdream.dev/llms-txt/expo/llms-txt/railway) [Sanity The Composable Content Cloud](https://mdream.dev/llms-txt/expo/llms-txt/sanity) [Netlify Web development platform](https://mdream.dev/llms-txt/expo/llms-txt/netlify) [Storyblok Headless CMS with a visual editor](https://mdream.dev/llms-txt/expo/llms-txt/storyblok) [Supabase Open source Firebase alternative](https://mdream.dev/llms-txt/expo/llms-txt/supabase)

[View all 99 projects ](https://mdream.dev/llms-txt/expo/llms-txt)

## Related Tools

[<h3>llms.txt Generator</h3>Generate an llms.txt for your own project.](https://mdream.dev/llms-txt/expo/tools/llms-txt/generator) [<h3>llms.txt Validator</h3>Validate your llms.txt against the official spec.](https://mdream.dev/llms-txt/expo/tools/llms-txt/validator)

© 2026 [Harlan Wilton](https://github.com/harlan-zw) · [MIT](https://github.com/harlan-zw/mdream/blob/main/license)

[GitHub](https://github.com/harlan-zw/mdream) [Discord](https://discord.com/invite/275MBUBvgP)