Should you use Expo or Bare React Native?

A 4-Year Veteran’s Take on Speed, Performance, and Dev Bliss

Should you use Expo or Bare React Native?
Expo VS React Native

“Expo or bare React Native?” It’s the question that haunts every React Native dev. At a recent coding meetup, a non-RN developer smirked, “React Native’s performance beats Expo, why bother?” I’ve heard this on Reddit, X, and Slack for years. After 4+ years building with both(mostly Expo, some CLI) I’ve got opinions. Recently, I shipped a side project faster than ever with Expo and AI tools like Cursor. So, let’s break it down across four key areas: development speed, build speed, runtime performance, and developer experience. Spoiler: There’s a clear winner for most.

My Lens: 4+ Years in the Trenches

I’ve built almost all my mobile apps with Expo, with a few bare React Native detours. This isn’t theory, it’s battle-tested experience. Let’s dive in.

1. Development Speed: Shipping Fast

Solo devs like Pieter Levels swear by tools that prioritize speed, jQuery for him, Expo for me. Here’s why it matters.

Expo:

  • Setup is a breeze, npx create-expo-app and you’re coding in minutes. Expo Go’s real-time previews skip emulator hassles. Expo also has development builds that simulate closer to a production build, and are super quick to get working. Hot reloading and OTA updates keep you flying. I’ve clocked a full project setup in under 5 minutes.
  • Caveat: Experimental features (e.g., tree-shaking) can snag, but AI like Cursor can help debug issues.

React Native CLI:

  • Brutal upfront. Xcode (12GB), Android Studio (7GB), CocoaPods, Gradle, setup can drag on for hours. Linking native modules? More delays. Hot reloading matches Expo once running, but native tweaks can slow you down.

Winner: Expo, hands-down for rapid prototyping.

2. Build Speed: Less Waiting, More Creating

Mobile development isn’t like web development. Every rebuild stalls your flow. I’ve seen Xamarin choke 5–10 minutes per change. Here’s how RN and Expo compare.

Expo:

  • EAS cloud builds offload the grunt work. A basic app takes 5–10 minutes, no local Xcode needed, which is huge for non-Mac users.
  • Expo has Development builds, which simulate close to a production build, and they have hot reload. On my MacBook Pro I can crank out a new dev build with new libraries in under 3 minutes.
  • EAS also helps manage devices, credentials, signing keys, and can submit your builds to apple and google.
  • Downside: With EAS, you lean on Expo’s servers. Outages are rare now (unlike 2018), but you don’t have full control.

React Native CLI:

  • Local builds hinge on your rig. A mid-tier Mac chugs 10–20 minutes for a clean build, longer with native modules. Incremental cuts it to 5–10, but signing keys and configs can take extra time.
  • Upside: Optimize with CI/CD caching if you’ve got skills.

Winner: Expo for simplicity; CLI if you crave control.

3. Runtime Performance: Does It Feel Snappy?

Users don’t care about your stack, they want speed. Let’s unpack the runtime.

Expo:

  • It’s React Native under the hood, so the JS-to-native bridge is identical. But the expo SDK bloats apps, 25MB+ for “Hello World”, and unused APIs nibble at efficiency. Tree-shaking trims fat, though you’re tied to Expo’s update cycle. Some devs note a 1–4 second startup lag, but production builds narrow it down.
  • Reality: Most apps feel fine unless size is critical.

React Native CLI:

  • Leaner baseline, <15MB if you’re picky. Native tweaks (e.g., FlatList over ScrollView, 54ms vs. 320ms render per benchmarks) gives an edge. New Architecture (2024+) promises more, but it’s patchy.
  • Catch: Expertise needed, or you’ll bottleneck the bridge.

Winner: CLI, slightly, for optimized apps, but Expo is close enough for most.

4. Developer Experience: Joy or Pain?

After wrestling .NET, Xamarin, and Maui, I’ll take React Native’s DX any day, but Expo takes it further.

Expo:

  • Minutes to launch a project. Expo has ~70 APIs (camera, crypto, fetch), which streamline cross-platform magic. A big team at Expo is enhancing the ecosystem, and the react to expo learning curve is pretty small.
  • Bonus: Managed workflow hides native chaos.

React Native CLI:

  • Hours to start, days if native modules fight back. The React to RN learning curve steepens with manual config and error-prone linking.
  • Upside: Total freedom if you’re a native pro.

Winner: Expo, no contest.

Conclusion: Expo’s My Pick (95% of the Time)

If you’re fresh from native iOS/Android development, bare React Native might feel more familiar, gives more control, and no abstraction. But for 95% of devs, Expo should be your go to choice. It simplifies setup, credentials, builds, and plays nice with most RN libraries. My latest Expo Web project, turbocharged by AI, shipped in half the time. In the end you should choice Expo for your next react native project, unless app size, native functionality, or performance is critical for your application. What’s your next app?

Try BanKan Board — The Project Management App Made for Developers, by Developers

If you’re tired of complicated project management tools with story points, sprints, and endless processes, BanKan Board is here to simplify your workflow. Built with developers in mind, BanKan Board lets you manage your projects without the clutter.

Key Features:

  • No complicated processes: Focus on what matters without the overhead of traditional project management systems.
  • Claude AI Assistant: Get smart assistance to streamline your tasks and improve productivity.
  • Free to Use: Start using it without any upfront cost.
  • Premium Features: Upgrade to unlock advanced functionality tailored to your team’s needs.

Whether you’re building a side project, managing a team, or collaborating on open-source software, BanKan Board is designed to make your life easier. Try it today!

Get Started with BanKan Board — It’s Free!