Skip to content

Custom Strapi Plugins Overview

This page documents all custom plugins in your Strapi monorepo, with usage, customization, and technical details.


The Collection Type Select plugin introduces a custom field to Strapi 5, allowing editors to select from available collection types.
This is useful for building flexible relationships and dynamic references between different content types, such as linking articles to products or events.

To support additional collection types, update the plugin’s registration logic in admin/src or server/src:

// Example: Add a new collection type
collectionTypes.push({
uid: "api::event.event",
displayName: "Event",
});

Modify the admin React components in admin/src to change how the selection field appears or behaves.
You can add icons, descriptions, or grouping for a better editor experience.

Add custom logic in server/src for validation, transformation, or population of related data.
For example, you can enforce certain relationships or auto-populate fields based on the selected type.

{
"type": "customField",
"plugin": "collection-type-select",
"options": {
"allowedTypes": ["article", "event", "product"]
}
}
FeatureDescription
Custom fieldLets you select collection types dynamically
ExtensibleAdd more types or logic as needed
UI integrationAppears in the Strapi admin panel

The Content Type Teaser plugin enables the creation and management of teaser blocks for any content type.
It supports dynamic teaser generation, including filtering and mapping of components for use in hero sections or flexible content layouts.

Edit the controller or middleware logic in server/src to change how teasers are selected or filtered.

Extend the plugin to support new teaser layouts or data sources by updating the admin and server code.

Modify the returned object shape to match your frontend requirements.

// Example: Custom teaser mapping
return {
image: hero?.image ?? record.image,
title: record.title,
description: record.description ?? record.text,
slug,
category: record.category?.title,
};
FeatureDescription
Dynamic teasersGenerates teasers for any content type
FlexibleSupports hero and flexContent components
ExtensibleAdd new teaser logic or layouts as needed

This plugin adds drag-and-drop reordering capabilities to Strapi content types.
Built with dndkit and React 18, it allows editors to visually reorder items in the admin UI, improving editorial workflows for ordered lists, menus, or featured content.

Specify which fields or content types should support drag-and-drop in your plugin or content type configuration.

Edit the admin components to change the appearance or behavior of the drag-and-drop interface.

Add hooks or middleware to handle reordering on the backend, ensuring the new order is persisted.

{
"type": "customField",
"plugin": "drag-drop-content-types",
"options": {
"sortableFields": ["order", "priority"]
}
}
FeatureDescription
Drag-and-dropReorder content visually in the admin UI
Modern stackUses dndkit, compatible with React 18
ConfigurableChoose which types/fields are sortable

This plugin registers a custom field for marking attributes as filterable,
primarily for use with Meilisearch filtering in Strapi 5.
It helps you define which fields should be indexed and available for search filtering.

Update the registration logic to include additional fields or types.

Connect this plugin with your Meilisearch or other search provider configuration.

{
"type": "customField",
"plugin": "filterable-attributes",
"options": {
"filterable": true
}
}
FeatureDescription
Custom fieldMarks attributes as filterable
Search-readyDesigned for Meilisearch integration
Simple setupMinimal configuration required

This plugin manages internal and external links for your content.
It provides a custom field and services for linking documents, resolving slugs, and generating routes for use in navigation and content relationships.

Add new link types (e.g., custom, external, internal) in the admin and server logic.

Edit the service logic to change how slugs and routes are generated or matched.

Use the plugin’s route and link data to power navigation or dynamic linking in your frontend.

{
"type": "customField",
"plugin": "link",
"options": {
"allowedTypes": ["internal", "external"]
}
}
FeatureDescription
Link managementHandles internal/external/custom links
Route resolverGenerates slugs and routes for content
ExtensibleAdd new link types or logic as needed

This plugin manages webhooks for your Strapi project,
allowing you to trigger external services or workflows on content changes.

Configure which events should trigger webhooks in the plugin’s server logic.

Edit the webhook handler to change the data sent to external services.

{
"type": "webhook",
"plugin": "webhook",
"options": {
"events": ["create", "update", "delete"],
"url": "https://your-service.com/webhook"
}
}
FeatureDescription
Webhook managerTriggers external services on content changes
ConfigurableChoose which events trigger webhooks
ExtensibleCustomize payloads and endpoints