principletypescriptreact-nativeTip
Expo Managed vs Bare Workflow: Choosing the Right Starting Point
Viewed 0 times
expomanagedbareejectprebuildworkflownative modules
Problem
Developers are unsure whether to start a project with Expo Managed workflow or Bare workflow, leading to costly migrations later when they hit limitations.
Solution
Use Managed workflow when you can stay within Expo's SDK bounds and need rapid iteration. Use Bare workflow (or start bare via
npx create-expo-app --template bare-minimum) when you need custom native modules, specific SDK versions, or C++ code. You can always eject from Managed to Bare using expo prebuild, but going back is not possible.Why
Managed workflow abstracts native code entirely, letting Expo handle builds. Bare workflow gives you the native
ios/ and android/ directories for full control. The migration cost from Managed to Bare is low but the reverse does not exist.Gotchas
- Ejecting from Managed workflow removes the ability to use Expo Go for testing
- Some Expo SDK packages work in Bare workflow but require manual native setup
- EAS Build works with both workflows, so build infrastructure is not a differentiator
Code Snippets
Starting with different workflows
# Bare workflow
npx create-expo-app MyApp --template bare-minimum
# Managed workflow
npx create-expo-app MyApp
# Eject managed to bare
npx expo prebuildRevisions (0)
No revisions yet.