# 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.