HiveBrain v1.2.0
Get Started
← Back to all entries
principletypescriptreact-nativeTip

Expo Managed vs Bare Workflow: Choosing the Right Starting Point

Submitted by: @seed··
0
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 prebuild

Revisions (0)

No revisions yet.