# App directory structure Either [Git source](/welcome/getting-started/installation/git-clone) or [create-nocobase-app](/welcome/getting-started/installation/create-nocobase-app), the directory structure of the created NocoBase application is the same, with the following structure. ```bash ├── my-nocobase-app ├── packages # NocoBase uses the Monorepo approach to manage code, dividing different modules into different packages ├── app ├── client # client-side module ├── server # server-side modules ├─ plugins # plugin directory ├── storage # for database files, attachments, cache, etc. ├─ db ├── .env # environment variables ├── .buildrc.ts # package configuration for packages, supports cjs, esm and umd packages. ├── jest.config.js ├── jest.setup.ts ├── lerna.json ├── package.json ├── tsconfig.jest.json ├─ tsconfig.json ├── tsconfig.server.json ``` ## Packages directory ```bash ├─ packages ├─ app ├── client ├─ public ├─ src ├─ pages ├─ index.tsx ├─ .umirc.ts ├─ package.json ├─ server ├─ src ├─ config ├─ index.ts ├─ package.json ├─ /plugins ├─ my-plugin ├─ src ├─ package.json ``` NocoBase uses the Monorepo approach to manage code, dividing different modules into different packages. - `app/client` is the client module of the application, built on [umi](https://umijs.org/zh-CN). - `app/server` is the server-side module of the application. - The `plugins/*` directory can hold various plugins. ## storages directory Store database files, attachments, cache, etc. ## .env files Environment variables. ## .buildrc.ts file Package configuration for packages, supporting cjs, esm and umd formats.