npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

strapi-plugin-content-manager-organizer

v2.0.3

Published

Organize Strapi Content Manager collection and single types into collapsible groups with drag-and-drop custom sorting

Readme

strapi-plugin-content-manager-organizer

npm version npm downloads Strapi version License: MIT

A Strapi v5 plugin that lets you organize the Content Manager sidebar into collapsible, labeled groups — configured entirely through a brand new visual Settings UI with Drag & Drop.

![Content Manager Organizer Demo]


🚀 What's New in v2!

We've completely overhauled the plugin with a ton of new features and quality-of-life improvements:

  • 🎨 Brand New UI Dashboard: A completely redesigned, settings dashboard.
  • 🖱️ Drag & Drop Ordering: Visually re-arrange your content types and groups with smooth drag-and-drop mechanics.
  • 📑 Single Types Support: You can now organize your Single Types into groups! Collection Types and Single Types are cleanly separated in the dashboard.
  • 🔀 Sort Orders: Choose exactly how your sidebar renders:
    • Alphabetical (Default): Automatically sorts groups and items alphabetically.
    • Custom Order: Respects the exact drag-and-drop order you set in the dashboard.
  • 🔍 Enhanced Search: Quickly find and filter your content types within the settings dashboard.

🎯 Why Content Manager Organizer?

When your Strapi project grows to 20, 30, or 50+ content types, the default sidebar becomes a long, unmanageable list. Content Manager Organizer solves this by letting you:

| Problem | Solution | |---------|----------| | 50+ content types in one list | Group into logical sections | | Alphabetical order not useful | Custom drag-and-drop ordering within groups | | Can't find content types fast | Collapse irrelevant groups | | Single types cluttering sidebar | Group them separately | | Config lost on redeploy | Saved safely to the database |


Screenshots

Interactive Drag & Drop Dashboard

Dashboard

Collection vs Single Types Separation

SingleType

Grouped Sidebar — Dark Mode

GroupedSidebar


✨ Features

  • 📁 Group content types into named, collapsible sections
  • 📄 Single Types support — organize Collection Types and Single Types separately
  • 🖱️ Drag & Drop — re-arrange groups and items visually
  • 🔀 Custom Sort Orders — choose between Alphabetical or Custom ordering
  • 🔍 Real-time Search — instantly filter content types in the settings
  • 💾 Persisted to database — survives redeploys (SQLite, PostgreSQL, MySQL)
  • 🌙 Dark/Light theme — auto-detects Strapi theme perfectly
  • ⚡ Zero config required — works out of the box
  • 🎛️ Visual Settings UI — no code changes needed

📦 Installation

npm

npm install strapi-plugin-content-manager-organizer

yarn

yarn add strapi-plugin-content-manager-organizer

pnpm

pnpm add strapi-plugin-content-manager-organizer

🎛️ How It Works

┌─────────────────────────────────────────────────┐
│  First launch (no config in DB)                 │
│  → Shows default Strapi sidebar order           │
└──────────────────────┬──────────────────────────┘
                       │
                       ▼
┌─────────────────────────────────────────────────┐
│  User configures via Settings > Content Manager Organizer  │
│  → Config saved to database                     │
└──────────────────────┬──────────────────────────┘
                       │
                       ▼
┌─────────────────────────────────────────────────┐
│  Every subsequent visit                         │
│  → DB config loaded → grouped sidebar shown     │
│  → Survives redeploys ✓                         │
└─────────────────────────────────────────────────┘

Database Storage

The plugin creates a hidden content type content-manager-configuration that stores your config as JSON. It's hidden from the Content Manager and Content-Type Builder — you'll never accidentally see it.

plugin::content-manager-organizer.content-manager-configuration
├── key: "main"          (always "main", one record)
└── config: { ... }      (your full group config as JSON)

Supported Databases

| Database | Supported | |----------|-----------| | SQLite | ✅ Yes | | PostgreSQL | ✅ Yes | | MySQL | ✅ Yes | | MariaDB | ✅ Yes |


📋 Settings Page Reference

Tabs

Switch between Collection Types and Single Types to manage them independently.

Sort Order Toggle

  • Alphabetical: Automatically sorts your sidebar groups and items alphabetically.
  • Custom Order: Respects the exact drag-and-drop order from the dashboard.

Drag & Drop Interface

  • Create Groups: Click the "New Group" button to create a section.
  • Drag Items: Drag content types from the left panel into any group on the right.
  • Reorder Items: Drag items up and down within a group.
  • Reorder Groups: Drag entire groups up and down to change their order in the sidebar.

🔐 Permissions

The plugin registers two permissions under Plugins → Content Manager Organizer:

| Permission | Description | |------------|-------------| | settings.read | View the settings page | | settings.update | Save configuration changes |

Assign these in Settings → Roles to control who can configure the plugin.


🛠️ Advanced: Pre-seeding Config via Code

If you want to ship a default config for your team (without UI configuration), you can seed the database on bootstrap:

// src/index.ts (your Strapi project, not the plugin)
export default {
  async bootstrap({ strapi }) {
    // Only seed if no config exists
    const existing = await strapi.db
      .query('plugin::content-manager-organizer.content-manager-configuration')
      .findOne({ where: { key: 'main' } });
 
    if (!existing) {
      await strapi.db
        .query('plugin::content-manager-organizer.content-manager-configuration')
        .create({
          data: {
            key: 'main',
            config: {
              stripNumericPrefix: true,
              sortBy: 'alphabetical',
              groups: [
                {
                  id: 'products',
                  label: 'Products',
                  defaultExpanded: true,
                  kind: 'collectionType',
                  items: ['product', 'category'],
                },
                {
                  id: 'blog',
                  label: 'Blog',
                  defaultExpanded: false,
                  kind: 'collectionType',
                  items: ['article', 'tag', 'author'],
                },
                {
                  id: 'settings',
                  label: 'Global Settings',
                  defaultExpanded: true,
                  kind: 'singleType',
                  items: ['site-config', 'footer'],
                }
              ],
            },
          },
        });
    }
  },
};

📄 License

MIT © Chetan Hasarmani

🙏 Acknowledgements

Built with Strapi Plugin SDK and Strapi Design System.