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.