Expo is built on React Native, so the real choice is Expo or a bare React Native CLI project. The React Native docs recommend a framework and name Expo. The CLI route makes sense when you want to own the android and ios folders from day one.
React Native is the core library that renders native views from JavaScript. Expo is a framework on top of it that adds file-based routing, universal libraries, config plugins, cloud builds and over-the-air updates. The React Native docs say most developers benefit from a framework like Expo, so start there. Fastshot generates Expo projects from a prompt.
Last updated: November 4, 2026
Facts from the React Native and Expo documentation, checked November 2026.
| Factor | Expo | React Native without a framework |
|---|---|---|
| What it is | A React Native framework with a router, libraries, tooling and cloud services | The core library only. You choose the router, build setup and libraries |
| Native projects | Generated by npx expo prebuild from your app config (Continuous Native Generation). Change them with config plugins | The android and ios folders are yours to edit in Android Studio and Xcode |
| First run | npx create-expo-app@latest. A cloud workflow needs no local Android Studio or Xcode | Needs Android Studio and Xcode set up first |
| Navigation | Expo Router, file-based, for Android, iOS and web | Pick and wire your own |
| Trying it on a phone | Expo Go as a learning sandbox. A development build for your own app | You build and install your own binary |
| Building store files | Expo Build in the cloud for Android and iOS, with signing credentials managed for you | Gradle and Xcode on your machines, or your own CI |
| Over-the-air updates | Expo Update ships JavaScript and assets with the expo-updates library | Not part of React Native itself |
| Custom native code | Expo Modules API in Swift and Kotlin, plus config plugins | Turbo Native Modules and Fabric components |
| Platforms | Android, iOS and web from one project | Android and iOS |
Expo removes the setup work. You create a project with one command, run it in a development build, and let Continuous Native Generation produce the android and ios folders from your app config. If you change those folders by hand, the next npx expo prebuild --clean can overwrite your edits, so native changes go through config plugins instead.
Expo Build compiles in the cloud and can manage signing credentials, so you do not need a local Android Studio or Xcode setup. Expo Update then lets you push JavaScript and asset fixes between store releases with a command such as eas update --channel production.
The old split between "managed" and "bare" no longer applies. The Expo docs say those concepts are deprecated and that every Expo project now uses Continuous Native Generation, so choosing Expo does not trap you away from native code.
The React Native docs reserve the no-framework path for apps with unusual constraints that a framework does not serve well, or for teams that prefer to solve those problems themselves. You then work with Android Studio and Xcode directly and own every native file.
That is a good fit for a team with Swift and Kotlin engineers who already maintain native build scripts. You pick a router, a build pipeline and an update service yourself, and nothing is hidden.
Expo describes Expo Go as a playground for students and learners. It says Expo Go is limited and not useful for building production-grade projects. For an app headed to the stores, use a development build, which includes the libraries and native code your app actually ships.
Expo Build also works with existing React Native projects created by other tools. So starting on Expo does not lock the app in, and starting without it does not stop you from adding Expo services later.
Fastshot writes the Expo project for you from a text prompt, shows it in a live browser preview and opens it in Expo Go when you scan the QR code. Builds run on Fastshot machines and produce the APK, AAB and IPA, ready to publish to the App Store and Google Play.
Run npx create-expo-app@latest. You get a JavaScript or TypeScript project with no android or ios folders yet.
Run npx expo start and scan the QR code. Use this to learn the project and check screens quickly.
Install expo-dev-client and build your own app. Run it locally with npx expo run:android or npx expo run:ios, or in the cloud with Expo Build.
Run eas build --platform all to get installable binaries for Android and iOS. After release, publish JavaScript fixes with eas update --channel production.
No. React Native is the library that renders your components as native views. Expo is a framework and set of services built on top of it. An Expo app is a React Native app.
Expo for most new projects. The React Native docs say most developers benefit from a framework such as Expo. Choose the CLI only when you want full control of the native projects from the first commit.
Yes. Write native modules with the Expo Modules API in Swift and Kotlin, or change the generated projects through config plugins that run during prebuild.
Expo deprecated them. Every Expo project now uses Continuous Native Generation, where npx expo prebuild creates the android and ios directories from your configuration.
Expo says Expo Go is a limited playground, not a base for production apps. Make a development build for testing, then a production build through Expo Build or your own tools, and submit it with your Apple and Google developer accounts.
No. Expo Build works with existing React Native projects created by npx react-native init or similar tools. Expo also says its services suit any React Native project, not only Expo ones.
Yes. Fastshot generates Expo and React Native projects from a text prompt, and you keep the source code with zip and GitHub export.
Turn a prompt into an Expo and React Native app for iOS and Android.
How Fastshot projects use Expo for previews, builds and publishing.
When a Swift and Kotlin app beats a shared React Native codebase.
Get an iOS build file without owning a Mac.
AI app builders
Comparisons
Comparisons
Comparisons
Describe the app, scan the QR code to open it in Expo Go, and publish when it is ready.