expo-project-structure

Defines folder structure conventions for scaffolding new Expo apps with Expo Router.

Updated Aug 23, 2026
One-click install
npx skills add https://github.com/Taquit/Life-Manager --skill expo-project-structure-taquit
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: expo-project-structure
Source: https://github.com/Taquit/Life-Manager/tree/main/double_m_react/.agents/skills/expo-project-structure
Command: npx skills add https://github.com/Taquit/Life-Manager --skill expo-project-structure-taquit

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? When starting a new Expo app, developers often struggle to decide where files should live — routes, components, screens, server code, and platform-specific variants can quickly become disorganized. This Skill provides a proven folder layout so new projects start with a clean, scalable structure. ## Core Features & Use Cases - Routes-only app directory: Keeps src/app/ strictly for Expo Router routes, with screen bodies moved to src/screens/ and reusable UI in src/components/. - Server code separation: Groups API routes under app/api/ with +api files and shared server helpers in src/server/, keeping secret environment variables away from frontend code. - Platform-specific files: Guides splitting components into .ios, .android, .native, and .web variants with identical props, plus colocated styles and tests. - Use Case: You are scaffolding a brand-new Expo app with Expo Router and need to decide where to put a settings screen, a shared button component, and a server API route — this Skill gives you the exact layout to follow. ## Quick Start Use the expo-project-structure skill to lay out my new Expo app with the src directory, routes-only app folder, screens, components, and server code separation.

Frequently Asked Questions about expo-project-structure

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I structure a new Expo app with Expo Router?

Place app code under src/ with a routes-only src/app/ directory where every file becomes a route. Put reusable UI in src/components/, screen bodies in src/screens/, server helpers in src/server/, and shared utilities in src/utils/ with colocated tests.

Where should screen components go in an Expo Router project?

Screen bodies belong in src/screens/, not in the app/ directory, because every file in app/ becomes a route. Each route file then just renders its screen, and screen-private components are colocated inside that screen's folder.

Does Expo Router support the src directory?

Yes, Expo Router supports both app/ and src/app/ out of the box. To switch, move the folder and restart the bundler; the default create-expo-app template aliases @/* to ./src/* in tsconfig.json.

How do I write platform-specific components in Expo?

Split larger platform differences into files like bar-chart.tsx and bar-chart.web.tsx, imported extension-free so Metro picks the right variant. Props must be identical across variants, a default file is always required, and supported extensions are .ios, .android, .native, and .web.

Should I restructure an existing Expo app to match this layout?

No, this structure applies only to new projects with no committed folder layout. Existing apps should keep their current conventions, and when unsure whether a project is new, ask before moving any files.