diff --git a/docusaurus/docs/cms/admin-panel-customization/extension.md b/docusaurus/docs/cms/admin-panel-customization/extension.md index a6f6ad0be8..6fcf667078 100644 --- a/docusaurus/docs/cms/admin-panel-customization/extension.md +++ b/docusaurus/docs/cms/admin-panel-customization/extension.md @@ -2,13 +2,10 @@ title: Admin panel extension description: Learn more about extending Strapi's admin panel. displayed_sidebar: cmsSidebar -toc_max_heading_level: 4 tags: - admin panel - admin panel customization - --- - import HotReloading from '/docs/snippets/hot-reloading-admin-panel.md' # Admin panel extension @@ -19,17 +16,31 @@ Extending Strapi's admin panel means leveraging its React foundation to adapt an There are 2 use cases where you might want to extend the admin panel: -- As a Strapi plugin developer, you want to develop a Strapi plugin that extends the admin panel **everytime it's installed in any Strapi application**. +| Approach | Scope | Entry point | Docs | +|---|---|---|---| +| Local extension | One Strapi project | `/src/admin/app.(js\|ts)` and `/src/admin/extensions/` | [Admin panel customization](/cms/admin-panel-customization) | +| Plugin extension | Any project that installs your plugin | `[plugin-name]/admin/src/index.(js\|ts)` | [Admin Panel API overview](/cms/plugins-development/admin-panel-api) | - 👉 This can be done by taking advantage of the [Admin Panel API for plugins](/cms/plugins-development/admin-panel-api). +- As a Strapi plugin developer, you want to develop a Strapi plugin that extends the admin panel **everytime it's installed in any Strapi application**. + 👉 This can be done by taking advantage of the [Admin Panel API for plugins](/cms/plugins-development/admin-panel-api), which lets you add navigation links and settings sections, inject React components into predefined areas, manage state with Redux, extend the Content Manager's Edit and List views, and more. - As a Strapi developer, you want to develop a unique solution for a Strapi user who only needs to extend a specific instance of a Strapi application. - 👉 This can be done by directly updating the `/src/admin/app` file, which can import any file located in `/src/admin/extensions`. + + +## When to consider a plugin instead + +Starting with a direct customization in `/src/admin/app` is the right default for project-specific needs. Consider moving to a plugin-based approach when one or more of these signals appear: + +- You are duplicating the same admin customization across several Strapi projects. +- You want to version and distribute the extension — either internally or through the . +- You need stronger automated testing independent from a single project codebase. +- Multiple teams need shared ownership and release management for the same extension. + +For a full introduction to plugin development, see [Developing Strapi plugins](/cms/plugins-development/developing-plugins). + :::strapi Additional resources -* If you're searching for ways of replacing the default Rich text editor, please refer to the [corresponding page](/cms/admin-panel-customization/wysiwyg-editor). -* The also provide extensive additional information on developing for Strapi's admin panel. +* If you're looking for ways of replacing the default Rich text editor, refer to the [corresponding page](/cms/admin-panel-customization/wysiwyg-editor). +* To understand how plugins integrate with the Strapi admin panel, start with the [Admin Panel API overview](/cms/plugins-development/admin-panel-api). ::: - -