Drag Drop Content Types Strapi 5
A powerful and intuitive drag-and-drop sorting solution for Strapi v5 content types
✨ Features
- 🚀 Built for Strapi v5 with TypeScript support
- ⚡️ High-performance drag-and-drop using dnd-kit
- 📱 Responsive design for both desktop and mobile
- 🎨 Smooth animations and visual feedback
- 🔒 Built-in permission system integration
- 🌐 Internationalization support
- 🔄 Real-time content order updates
- 📦 Easy installation and configuration
Originally inspired by the Drag-Drop-Content-Type Strapi 4 plugin, this plugin has been completely rewritten using the modern dnd-kit library to ensure compatibility with React 18 and provide better performance.
🚀 Quick Start
Installation
# Using npm
npm install @yunusemrejs/drag-drop-content-types-strapi5
# Using yarn
yarn add @yunusemrejs/drag-drop-content-types-strapi5
# Using pnpm
pnpm add @yunusemrejs/drag-drop-content-types-strapi5
⚙️ Configuration
Step 1: Enable the Plugin
Create or modify your config/plugins.ts
file:
1export default () => ({
2 'drag-drop-content-types-strapi5': {
3 enabled: true,
4 },
5});
Step 2: Build and Restart
npm run build
npm run develop
🛠️ Setup Guide
Content Type Configuration
- Navigate to
Settings
→Drag Drop Content Type
→Configuration
- Configure the following settings:
Basic Setup
- Set the
Rank Field Name
(default:rank
) - Add an integer field to your Content Type with the specified rank field name
- Set default sorting in Content Type settings:
Default sort attribute
: Your rank fieldDefault sort order
: ASC
Advanced Options
Display Settings
1{ 2 title: 'name', // Field to use as title 3 subtitle: 'description', // Optional: Field to show as subtitle 4 mainField: 'title' // Optional: Fallback field 5}
Webhook Integration Enable webhooks to trigger external systems when order changes
Permissions
Grant appropriate permissions in Settings → Users & Permissions → Roles:
- Read permission for content type
- Update permission for the rank field
📡 API Usage
REST API
Fetch ordered content:
# Basic sorting
GET /api/{content-type}?sort=rank:asc
# With pagination
GET /api/{content-type}?sort=rank:asc&pagination[page]=1&pagination[pageSize]=25
# With relations
GET /api/{content-type}?sort=rank:asc&populate=*
GraphQL
1query {
2 contentType(sort: "rank:asc") {
3 data {
4 id
5 attributes {
6 title
7 rank
8 }
9 }
10 }
11}
💪 Support
- Star ⭐️ the project
- Submit issues
- Share with your network
- Consider sponsoring
📄 License
MIT © Yunus Emre Kara
Install now
npm install @yunusemrejs/drag-drop-content-types-strapi5
Create your own plugin
Check out the available plugin resources that will help you to develop your plugin or provider and get it listed on the marketplace.