From 52ae9cb86ae21c306ecd9a345427ee556c0d4f31 Mon Sep 17 00:00:00 2001 From: Pierre Wizla <4233866+pwizla@users.noreply.github.com> Date: Thu, 12 Mar 2026 16:11:24 +0100 Subject: [PATCH 1/5] Rework the page to add information about building a plugin --- .../admin-panel-customization/extension.md | 27 ++++++++++++------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/docusaurus/docs/cms/admin-panel-customization/extension.md b/docusaurus/docs/cms/admin-panel-customization/extension.md index a6f6ad0be8..e722162437 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 @@ -20,16 +17,28 @@ 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**. - - 👉 This can be done by taking advantage of the [Admin Panel API for plugins](/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), 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 [Strapi Marketplace](https://market.strapi.io/). +- 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). +* If you're building a plugin, the following guides cover common extension use cases: + * [How to create components for Strapi plugins](/cms/plugins-development/guides/create-components-for-plugins) + * [How to create admin permissions for plugins](/cms/plugins-development/guides/admin-permissions-for-plugins) + * [How to pass data from the server to the admin panel](/cms/plugins-development/guides/pass-data-from-server-to-admin) ::: - + \ No newline at end of file From 39975dfcda6a1a5fd330042a4df2a3583f6df67b Mon Sep 17 00:00:00 2001 From: Pierre Wizla <4233866+pwizla@users.noreply.github.com> Date: Thu, 12 Mar 2026 16:12:28 +0100 Subject: [PATCH 2/5] Remove links to plugin development guides --- docusaurus/docs/cms/admin-panel-customization/extension.md | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/docusaurus/docs/cms/admin-panel-customization/extension.md b/docusaurus/docs/cms/admin-panel-customization/extension.md index e722162437..1987e060e9 100644 --- a/docusaurus/docs/cms/admin-panel-customization/extension.md +++ b/docusaurus/docs/cms/admin-panel-customization/extension.md @@ -27,7 +27,7 @@ There are 2 use cases where you might want to extend the admin panel: 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 [Strapi Marketplace](https://market.strapi.io/). +- You want to version and distribute the extension — either internally or through the [Strapi Marketplace](https://market.strapi.io/). - You need stronger automated testing independent from a single project codebase. - Multiple teams need shared ownership and release management for the same extension. @@ -35,10 +35,7 @@ For a full introduction to plugin development, see [Developing Strapi plugins](/ :::strapi Additional resources * If you're looking for ways of replacing the default Rich text editor, refer to the [corresponding page](/cms/admin-panel-customization/wysiwyg-editor). -* If you're building a plugin, the following guides cover common extension use cases: - * [How to create components for Strapi plugins](/cms/plugins-development/guides/create-components-for-plugins) - * [How to create admin permissions for plugins](/cms/plugins-development/guides/admin-permissions-for-plugins) - * [How to pass data from the server to the admin panel](/cms/plugins-development/guides/pass-data-from-server-to-admin) +* To understand how plugins integrate with the Strapi admin panel, start with the [Admin Panel API overview](/cms/plugins-development/admin-panel-api). ::: \ No newline at end of file From 9615a39aebad49b59c8210baf7d4eb59760a51d2 Mon Sep 17 00:00:00 2001 From: Pierre Wizla <4233866+pwizla@users.noreply.github.com> Date: Thu, 12 Mar 2026 16:22:15 +0100 Subject: [PATCH 3/5] Add short decision table --- docusaurus/docs/cms/admin-panel-customization/extension.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docusaurus/docs/cms/admin-panel-customization/extension.md b/docusaurus/docs/cms/admin-panel-customization/extension.md index 1987e060e9..c22a836081 100644 --- a/docusaurus/docs/cms/admin-panel-customization/extension.md +++ b/docusaurus/docs/cms/admin-panel-customization/extension.md @@ -16,6 +16,11 @@ 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: +| 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) | + - 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. From 41c38bbe0a943add07ba4a13cdde69ee229116e3 Mon Sep 17 00:00:00 2001 From: Pierre Wizla <4233866+pwizla@users.noreply.github.com> Date: Thu, 12 Mar 2026 16:22:47 +0100 Subject: [PATCH 4/5] Move HotReloading snippet --- docusaurus/docs/cms/admin-panel-customization/extension.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docusaurus/docs/cms/admin-panel-customization/extension.md b/docusaurus/docs/cms/admin-panel-customization/extension.md index c22a836081..c669815827 100644 --- a/docusaurus/docs/cms/admin-panel-customization/extension.md +++ b/docusaurus/docs/cms/admin-panel-customization/extension.md @@ -27,6 +27,8 @@ There are 2 use cases where you might want to extend the admin panel: - 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: @@ -42,5 +44,3 @@ For a full introduction to plugin development, see [Developing Strapi plugins](/ * 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). ::: - - \ No newline at end of file From 9aaee83a36f5584d1e2cf56fb8c40c018ab4f90d Mon Sep 17 00:00:00 2001 From: Pierre Wizla <4233866+pwizla@users.noreply.github.com> Date: Thu, 12 Mar 2026 16:23:06 +0100 Subject: [PATCH 5/5] Convert link to Strapi Marketplace to an external link --- docusaurus/docs/cms/admin-panel-customization/extension.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docusaurus/docs/cms/admin-panel-customization/extension.md b/docusaurus/docs/cms/admin-panel-customization/extension.md index c669815827..6fcf667078 100644 --- a/docusaurus/docs/cms/admin-panel-customization/extension.md +++ b/docusaurus/docs/cms/admin-panel-customization/extension.md @@ -34,7 +34,7 @@ There are 2 use cases where you might want to extend the admin panel: 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 [Strapi Marketplace](https://market.strapi.io/). +- 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.