Expo Go vs Development Builds

When Expo Go is enough, when you need a development build, and how that choice affects MMKV, Firebase native, RevenueCat and push notifications.

Expo Go is a prebuilt app that runs your JavaScript instantly. It cannot include arbitrary native code, so some libraries need a custom development build instead.

Core concepts

  1. Expo Go: Great for learning and early UI work: scan a QR code and your app runs with the native modules bundled in Expo Go. It cannot run libraries that need their own native code. — Expo docs
  2. Development builds: A development build is your own app binary that includes the native modules you chose and still loads JavaScript from the dev server. Create one with EAS Build or a local build. — Development builds
  3. Which libraries force a dev build: Typically native-heavy libraries such as react-native-mmkv, React Native Firebase, RevenueCat's purchases SDK, and some push-notification setups. Check each library's docs against your SDK. — RN Firebase
  4. Prebuild and config plugins: Expo generates ios/ and android/ folders from your config via prebuild, and config plugins add native settings without hand-editing them. Treat the native folders as generated output. — Expo docs

Concept videos

YouTube channels and searches for these topics. On a large screen they open in the reading panel next to the roadmap.

Explanation

The practical rule

Start in Expo Go while you build screens and navigation. The moment you add a library that needs native code, create a development build once and keep using it for daily work.

Keep native folders generated

If you edit ios/ or android/ by hand, regenerating them erases your edits. Prefer config plugins so the setup is reproducible by you and by your agent.

What Is It?

A development build is a custom debug version of your app that includes your native dependencies.

Why Should I Care?

It lets you use the full native ecosystem while keeping fast refresh and the Expo workflow.

Real World Analogy

Expo Go is a rental car with a fixed feature list; a development build is your own car with the extras you chose, same road, same driving.

Visual Mental Model

text
Screens + JS only  -> Expo Go
Needs native module -> Development build (EAS) -> same dev server

Smallest Possible Example

bash
npx expo install expo-dev-client
eas build --profile development --platform ios
npx expo start --dev-client

Common Mistakes

❌ Fighting 'native module not found' errors in Expo Go.

That error usually means the library needs a development build, not a code fix.

❌ Hand-editing the generated native folders.

Use config plugins so the next prebuild does not erase your changes.

Build This Mini Project

Install expo-dev-client, create a development build for your phone, and confirm the app loads from your dev server.

Prompts for Cursor, Claude Code & Codex

Paste these into Cursor, Claude Code, Codex, or any coding agent. Replace the bracketed parts with your app details, and keep the agent in plan mode first so you review the approach before it edits files.

Decide Expo Go or dev build

text
For these planned libraries: [list], check each library's documentation for Expo Go support with my SDK version. Output a table: library, works in Expo Go (yes/no/unknown), source link. Do not install anything.

Configure a dev build

text
Add expo-dev-client, create an eas.json with development, preview and production profiles, and explain how I build and install the development profile on a physical iPhone and Android phone.

Rules, databases & blogs to use

Resources

Threads in the same domain as this chapter — go deeper on iHateReading without leaving the roadmap.

Expo new version SDK 52 cover

Expo new version SDK 52

What a real Expo SDK upgrade changes for app builders.

I built a SaaS starter kit so you don't waste 4 weeks on setup cover

I built a SaaS starter kit so you don't waste 4 weeks on setup

Why starter kits and rules files save setup time.

Cursor, Codex, Claude Code prompts collection cover

Cursor, Codex, Claude Code prompts collection

200+ copy-paste prompts for coding agents to build better products.