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