Sefism is free for learners. We are here to help you grow, one step at a time.Join for free
Sefism.

Project structure · Mobile

React Native with Expo project structure

Opens with credits

For web developers who know React and want one TypeScript codebase for Android, iOS and the web. Routes are files in src/app (Expo Router), the business logic lives in feature folders under src/features split into data, domain and presentation, and the native android and ios folders are generated, not hand-written.

Curated by Tauseef FayyazIntermediate228 files and foldersExpo SDK 57, React Native 0.86, React 19.2Checked October 2026
Explore the filesPick any file to see what it is, why it exists and when you add it.

How it grows

Each stage opens the explorer there

  1. 1Day 1What the scaffold and your first hour give you38 files and folders
  2. 2GrowingWhat a real app with features and tests adds+102 files and folders
  3. ProductionWhat running it for real users adds+37 files and foldersOpens with credits
  4. ExpertWhat a team needs to keep it healthy for years+51 files and foldersOpens with credits

How it is organised

  • Routes are files: src/app/(app)/orders/[id].tsx is the screen at /orders/123, on the phone and on the web. Keep route files thin: they read params and render a screen from a feature.
  • Logic lives in src/features/<name>, grouped by feature (orders, auth), and inside each feature by layer: data (API calls and DTOs), domain (types, rules, schemas) and presentation (hooks and components). Moving a route never breaks data code.
  • Shared, feature-free code goes in src/components, src/hooks, src/lib and src/providers. If only one feature uses it, it stays in that feature. Features import each other only through their index.ts.
  • Continuous Native Generation: android/ and ios/ are generated from app.json, app.config.ts and config plugins by npx expo prebuild. Change the config, not the generated folders, and keep them out of git.
  • Use npx expo install, not plain npm install, for anything native, so versions match your Expo SDK.
  • Server data goes through TanStack Query; small UI state stays in components; a Zustand store holds the little client state several screens share. Tokens live in expo-secure-store, never in plain storage.
  • Only EXPO_PUBLIC_ variables reach the app, and anyone who unpacks it can read them. Real secrets stay on your server or in EAS environment variables used at build time.
  • Tests grow with the app: Jest and React Native Testing Library from Growing, Maestro flows on real builds at Production, performance, accessibility and visual checks at Expert.

At the top of the project

Open one in the explorer for the full story

Learn more on Sefism

Roadmaps, cheat sheets and projects that go with React Native with Expo.

See 9 more
Checked against 17 official sources, October 2026. If something has changed, the docs win.Show sources

Picked from the other libraries by shared topics.

Work with me

Stuck on something specific?

Writing only gets you so far. If you want an answer to your situation rather than the general case, book a session and we will work through it together. Sessions are free for approved Sefism members, and a few slots open each week.

  • 1:1 Mentorship
  • Fresh Graduate Mentorship
  • Career Guidance

Brand deals, promos and partnerships: tauseeffayyaz@gmail.com