React Native + Expo in 2025: An Honest Assessment
We've shipped 3 React Native apps using Expo — Animomate (mental health), NewsByte (news), and an internal productivity tool. Here's our honest take.
When Expo is perfect
- Standard apps: If you need push notifications, camera, location, auth — Expo has a managed package for all of it.
- Fast delivery: Expo Router (file-based routing) and EAS Build cut our setup time from days to hours.
- OTA updates: EAS Update lets you push JS changes without going through the App Store review. For bug fixes, this is massive.
- Team familiarity: If your team knows React, they can ship a native app in weeks, not months.
When Expo holds you back
- Native modules: If you need a native SDK that doesn't have an Expo package, you're into bare workflow territory.
- Bundle size: The managed workflow includes a lot of native code you might not use.
- Complex background tasks: Audio playback, background location, and Bluetooth are possible but can be painful.
Our current recommendation
For 80% of client projects: Expo with Expo Router. Use EAS Build + EAS Update. Stay in managed workflow as long as possible.
For projects needing heavy native integration: start with bare React Native, pick Expo packages à la carte.
The stack we ship with
- Expo SDK (latest)
- Expo Router (file-based navigation)
- NativeWind (Tailwind for React Native)
- Supabase or our own Node.js + PostgreSQL backend
- EAS Build + EAS Update