Choosing between bare React Native and Expo is a bit like choosing between React and React plus Next.js. You can absolutely build everything yourself, but once routing, native APIs, upgrades, build tooling, app configuration, and deployment enter the picture, you quickly realise you are not just building an app anymore. You are also building and maintaining your own framework.
That is now the official direction from React Native as well. The docs recommend using a framework, and Expo is the recommended community framework for new apps.
Start with Expo unless you have a concrete reason not to.
Choose bare React Native on day one because it feels more "serious" or because you might need native customisation later. A few months in, the team is re-implementing tooling, upgrade paths, configuration, and app workflows that Expo already solves.
❌ Figure: Bad example - Bad example - Starting bare React Native without a real need
Start with Expo, move quickly with the standard tooling, and only drop down to lower-level native work when the app has a real requirement that Expo does not cover cleanly.
✅ Figure: Good example - Good example - Use Expo by default and go lower-level only when required
Expo is not a toy layer on top of React Native. It is the recommended framework because it solves the common problems most teams run into anyway. The React Native team puts it plainly: you are either using a framework or building your own framework.
That is why Expo is usually the better default. It gives you a stronger starting point for project setup, native API access, upgrades, routing, development tooling, and deployment workflows.
If you are starting a new project, the quickest way to get going is:
npx create-expo-app@latest my-appcd my-appnpx expo start
For the full setup guide, see create-expo-app.
Go bare React Native when you have an actual need for it, for example:
Even then, it is worth remembering that Expo tools can still be adopted incrementally in an existing React Native app.
See the React Native blog post Use a framework to build React Native apps, the Expo guide Overview of using Expo with existing React Native apps, and the Expo workflow docs Develop an app with Expo.