Project structure

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.