HomeGuidesReferenceLearn

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.

src
app
  _layout.js
  index.js
components
  button.js
package.json

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

Terminal
npx expo start --clear

# Or when exporting
npx expo export --clear

Notes:

  • 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.