1--- 2title: Project structure 3description: Learn about the files and folder structure when a new Expo project is created. 4--- 5 6import { BoxLink } from '~/ui/components/BoxLink'; 7 8When you create a new Expo project, a few files and folders are provided by default. This page lists out the essential files and folders that are necessary for you to understand when developing your app. 9 10## App.js 11 12The **App.js** file is the default screen of your project. It is the root file that you'll load after running the development server with `npx expo start`. You can edit this file to see the project update instantly. Generally, this file will contain root-level React Contexts and navigation. 13 14> [Expo Router](https://expo.github.io/router/docs) is now available and supports file-based navigation in projects. With Expo Router, the route file will become **index.js** and all the screens in the project will be in the **app** folder. 15 16## app.json 17 18The **app.json** file contains [configuration options](/versions/latest/config/app) for the project. These options change the behavior of your project while developing, in addition to while building, submitting, and updating our app. 19 20> Install our [Expo for VS Code](https://github.com/expo/vscode-expo) extension to get intellisense. 21 22## assets folder 23 24The **assets** folder contains **adaptive-icon.png** used for Android and an **icon.png** used for iOS as an app icon. It also contains **splash.png** which is an image for the project's splash screen and a **favicon.png** if the app runs in a browser. 25 26> The **assets** directory is not special-cased, and our project can have images and other assets placed anywhere in our project structure. 27 28## Other standard files 29 30The standard files listed below are part of every project created with Expo CLI. You can edit them to customize your project. 31 32### .gitignore 33 34A **.gitignore** allows you to list files and folders that you don't want to be tracked by Git. You can modify the files to list other files and folders in your project. Generally, the default list is sufficient for most projects. 35 36### babel.config.js 37 38Applies the `babel-preset-expo` preset that extends the default React Native preset and adds support for decorators, tree-shaking web packages, and loading font icons with optional native dependencies if they're installed. You can also modify this file to add additional Babel plugins or presets. 39 40### package.json 41 42The **package.json** file contains the project's dependencies, scripts and metadata. Anytime a new dependency is added to your project, it will be added to this file. 43 44You can also modify the `scripts` to add or remove them. Four default scripts are provided to trigger the development server of your project such as `expo start`, `expo start --android`, `expo start --ios`, and `expo start --web`. 45 46## Next step 47 48<BoxLink 49 title="Splash screen" 50 description="Splash screen is the first screen that users see when they open your app. Learn how to customize it." 51 href="/develop/user-interface/splash-screen" 52/> 53