Top-level src directory

Learn how to use a top-level src directory in your Expo Router project.

As your project grows, it can be helpful to move all of the directories containing application code into a single src directory. Expo Router supports this out of the box.


Simply move your app directory to src/app and restart the development server with a clear cache:

npx expo start --clear

# Or when exporting
npx expo export --clear


  • The config files (app.config.js, app.json, package.json, metro.config.js, tsconfig.json) should remain in the root directory.
  • The src/app directory takes higher precedence than the root app directory. Only the src/app directory will be used if you have both.
  • The public directory should remain in the root directory.
  • Static rendering will automatically use the src/app directory if it exists.
  • You may consider updating any type aliases to point to the src directory instead of the root directory.