# Project structure
By default, the structure of your Strapi project looks as shown below:
/.cache: contains files used to build your admin panel./admin: (optional) contains your admin customization files./api: contains the business logic of your project split into sub-folders per API.**/config: contains the API's configurations (routes,policies, etc.)./controllers: contains the API's custom controllers./models: contains the API's models./services: contains the API's custom services.
/build: contains your admin panel UI build./config/functions: contains lifecycle or generic functions of the project./responses: contains custom responses.404.js: contains a template for constructing your custom 404 message.
bootstrap.js: contains the code executed at the application start.cron.js: contains the cron tasks.
server.js: contains the general configurations of the project.database.js: contains the database configurations of the project.
/extensions: contains the files to extend installed plugins./hooks: contains the custom hooks of the project./middlewares: contains the custom middlewares of the project./plugins: contains your local plugins./public: contains the files accessible to the outside world./node_modules: contains the npm packages used by the project.
If your Strapi project was created with the starter CLI (opens new window), the project structure looks like this:
my-project
/frontend # starter folder
/backend # template folder
/node_modules
and the backend folder has the default structure described above.