expo-project-structure

Defines the recommended folder structure for new Expo apps using Expo Router.

Updated Sep 8, 2026
One-click install
npx skills add https://github.com/bmiit145/leadBee --skill expo-project-structure-bmiit145
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: expo-project-structure
Source: https://github.com/bmiit145/leadBee/tree/main/mobile/.agents/skills/expo-project-structure
Command: npx skills add https://github.com/bmiit145/leadBee --skill expo-project-structure-bmiit145

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? When scaffolding a new Expo app, developers often struggle to decide where files should live — routes, components, screens, server code, and platform-specific variants can end up scattered or mixed together. This Skill provides a concrete, opinionated folder layout for new Expo projects so structure decisions are made once and consistently. ## Core Features & Use Cases - Complete layout blueprint: A full directory tree covering src/app routes, components/, screens/, server/, hooks/, and utils/, ready to follow when starting a project. - Routes-only app directory: Enforces Expo Router conventions where every file in src/app is a route, with screen bodies extracted into screens/ and reusable UI in components/. - Server code separation: Groups +api routes under app/api/ and shared server helpers in src/server/, keeping secret-reading Node code apart from frontend code. - Platform-specific files: Guidance on .ios, .android, .native, and .web file variants with identical props and a required default file. - Use Case: You just ran create-expo-app and need to decide where a new settings screen, a shared button component, and a server API route should go — this Skill gives you the exact placement rules. ## Quick Start Ask the AI to lay out a new Expo app following the expo-project-structure conventions, placing routes, screens, components, and server code in their designated folders.

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?▼

Keep app code under src/ with src/app reserved exclusively for route files. Place reusable UI in components/, screen bodies in screens/, server helpers in src/server/, and group API routes under app/api/ using the +api suffix.

Where should screen components go in an Expo Router project?▼

Screen bodies belong in a screens/ folder, not in app/, 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. Move the folder and restart the bundler to switch; the default create-expo-app template aliases @/* to ./src/* in tsconfig.json.

How do I write platform-specific components in Expo?▼

Create platform file variants like bar-chart.web.tsx alongside a default bar-chart.tsx, then import extension-free. Metro picks the right file per target; supported extensions are .ios, .android, .native, and .web, and props must be identical across variants.

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

No. This structure is a starting default for new projects only, not a standard to enforce. If an app already has an established layout, follow its existing conventions and leave files where they are.