This post is based on our livestream conversation with Kadi Kraman, Developer Experience Engineer at Expo.
+api.ts filesThink of Expo as the Next.js of React Native. Just as you wouldn't manually configure Webpack and bundlers when building a React web app, Expo eliminates the complexity of native mobile development tooling.
The Problem Expo Solves
React Native by itself is a toolkit of APIs and a JavaScript runtime, but it doesn't provide a complete framework for building apps. For example, navigation between screens isn't included out of the box.
Without Expo, you'd need to:
What Expo Provides
Expo is a collection of libraries, utilities, bundlers, and a complete ecosystem that makes building React Native apps pleasant and straightforward. Key benefits include:
A common question is how React Native compares to Flutter. The key distinction is in rendering: Flutter renders on Skia (a graphics engine), essentially drawing its own UI that hooks into native APIs. React Native, on the other hand, renders actual native components. When you build a button in React Native, it's a real native button, not a simulation. This is why React Native apps are often described as "native apps" — because they truly are.
Expo offers two approaches for development, each suited to different stages of your project.
Expo Go: Perfect for Learning and Prototyping
Expo Go is an app you download from the App Store or Play Store. It contains pre-built native code for the most common libraries, allowing you to start developing immediately without any native build tools. Simply write JavaScript/TypeScript, and your code runs instantly on your device.
Best for: Learning React Native, rapid prototyping, hackathons, and getting that first "app on your phone" moment. This instant feedback loop is why many AI-powered app builders (like Replit) use Expo under the hood.
Limitations: Not all libraries are included. Some Expo SDK libraries (like expo-video) and third-party packages won't work in Expo Go.
Development Builds: Production-Ready Flexibility
When you're ready for production or need libraries not included in Expo Go, you switch to development builds. Instead of using the Expo Go app, you create your own native shell with exactly the libraries you need.
Best for: Production apps, custom native code, any library from the React Native ecosystem.
Key insight: There are no limitations with development builds. Once you move past Expo Go, you have full access to native code. You can even write custom native modules in Swift or Kotlin using the Expo Modules API.
One of Expo's most powerful features is CNG (also called "prebuild"). Traditional React Native development requires you to commit and maintain iOS and Android folders, managing native code directly. With CNG:
If you need to modify native configuration (like editing Info.plist or the app delegate), you create config plugins instead of editing files directly. These plugins run during generation, making your changes repeatable and testable.
Coming from web development, you might wonder about styling options. React Native offers several approaches:
| Approach | Description | Best For |
|---|---|---|
| StyleSheet (Built-in) | React Native's built-in styling API. Can be verbose for theming. | Projects that want zero dependencies |
| NativeWind | Tailwind CSS for React Native. Familiar utility classes. | Web developers wanting quick start |
| Unistyles | Like StyleSheet but with better theming support (light/dark mode). | Apps needing robust theming |
Pro tip: If you want your app to look distinctly "native" rather than like a website, study the Apple Human Interface Guidelines and Google Material Design specs. Expo UI (currently in beta) is also exposing more native components like segmented controls and glass buttons.
Deploying mobile apps is fundamentally different from web deployment. You need to handle code signing (certificates and provisioning profiles) and pass through a manual review process. Expo offers several services to streamline this:
A powerful recent addition is the ability to write API routes directly in your React Native codebase. Create files ending in +api.ts in your source folder:
1// src/posts+api.ts
2export function GET() {
3 return Response.json({ message: "Hello from server!" });
4}Environment variables without the EXPO_PUBLIC_ prefix are only accessible in these server routes, keeping your secrets safe. Deploy with EAS Hosting and you have a full-stack mobile app with backend API routes.
The Expo ecosystem is particularly well-suited for AI-assisted development. With Expo Go's instant feedback loop, tools like Replit and various AI coding assistants can help users go from idea to working app in minutes.
However, there's an important distinction between "vibe coding" (letting AI write everything) and AI-assisted development. Even when using AI tools, you still own the code and are responsible for testing, iterating, and ensuring quality. AI can give you a starting point, but professional development still requires understanding what the code does.
Resources like MCPs (Model Context Protocols), cursor rules, and Claude rules allow experts to codify best practices that AI tools can use as a source of truth — resulting in much higher quality generated code than generic training data.
Expo is developing an observability product for monitoring app performance — think Lighthouse scores but for native apps. You'll be able to track metrics like JavaScript bundle load time, see how different app versions affect performance, and identify slow devices or sessions.
npx create-expo-app@latestnpx expo start and scan the QR codeTo continue your learning journey, here are some excellent resources:
Video Resources
Written Tutorial
Expo has transformed React Native development from a complex, native-tooling-heavy process into something that feels almost as simple as web development. For React developers, there's never been a better time to start building mobile apps.
The key takeaways: Start with Expo Go for learning, graduate to development builds for production, embrace CNG to avoid native folder maintenance, and leverage EAS services for painless deployment. With these tools, you can go from idea to app store in record time.
Meta officially recommends Expo for React Native development, and it's clear why: the developer experience is exceptional, the ecosystem is mature, and the path from prototype to production is smoother than ever.
Happy building!