Add a "folder-like" group function to organize content types
planned
P
Plot Chit
I believe it would greatly improve the user experience if we can add a "folder-like" grouping function to content types (single type and collection type), so that if you have a lot of content types (for example if you have like 50 webpages, you will have like 50 single types), it really makes a lot more sense to have groups. For now users can only mitigate this by using some naming conventions, but I doubt if this is an elegant solution.
Marco Autiero
Merged in a post:
Support Multiple Content-Types within a Single API Folder structure
Rob Stone
Summary
Allow multiple related content-type schemas to be organized within a single API folder, enabling logical grouping of related entities and cleaner project structure. I spent a long time doing this and not understanding why it didnt work, before being told i could grouo the controllers etc but not the schemas.
Motivation
Current Problem
In Strapi 5, each content-type requires its own API folder:
src/api/
├── forum/
├── forum-thread/
├── forum-reply/
├── forum-moderator/
├── forum-subscription/
├── forum-thread-subscription/
├── forum-notification/
└── forum-badge/
For projects with related entities (forums, e-commerce, multi-tenant systems), this creates:
many folders for a single feature domain (forums)
Cluttered admin menu with many similar entries
Poor developer experience when navigating the codebase
Difficult to understand relationships between entities
Proposed Solution
Allow multiple content-type schemas within one API folder:
src/api/forum/
├── content-types/
│ ├── forum/
│ │ └── schema.json → creates 'forums' table
│ ├── thread/
│ │ └── schema.json → creates 'threads' table
│ ├── reply/
│ │ └── schema.json → creates 'replies' table
│ ├── moderator/
│ │ └── schema.json → creates 'moderators' table
│ └── subscription/
│ └── schema.json → creates 'subscriptions' table
├── controllers/
│ ├── forum.js
│ ├── thread.js
│ ├── reply.js
│ └── moderator.js
├── routes/
│ ├── forum.js → /api/forum
│ ├── thread.js → /api/forum/threads
│ ├── reply.js → /api/forum/replies
│ └── moderator.js → /api/forum/moderators
└── services/
Benefits
Logical Grouping: Related entities organized together
Cleaner Admin Menu: Hierarchical navigation (Forum → Threads, Moderators, etc.)
Better DX: Easier to understand domain boundaries
Scalability: Large projects can organize dozens of content-types
Backward Compatible: Existing single content-type per folder still works
Technical Implementation
Each schema would still:
Create its own database table
Have independent CRUD operations
Maintain separate permissions
Generate its own API endpoints
The change is purely organizational - the content-type loader would:
Scan for multiple schema.json files within content-types/ subdirectories
Register each as a separate content-type
Optionally group them in the admin UI under a parent category
Use Cases
Forums: threads, replies, subscriptions, moderators, badges
E-commerce: products, variants, reviews, inventory, shipping
Multi-tenant: tenants, users, roles, permissions, settings
CMS: pages, sections, blocks, menus, redirects
LMS: courses, lessons, quizzes, enrollments, certificates
Related Issues & History
#12863 (Closed in v4 - revisit for v5?)
#2548 "Group content type" (2018)
#12674 Documentation issues with grouped APIs
This feature was previously rejected for Strapi v4, but with Strapi 5's architectural changes maybe it's worth reconsidering.
Why This Matters for Strapi 5
Strapi 5 represents a major evolution. Competitors like Contentful (spaces/environments) and Sanity (schema grouping) handle content organization better. As Strapi scales to larger projects, hierarchical organization becomes essential for:
Enterprise adoption
Developer productivity
Maintainable codebases
Alternative Considered
Current workaround is hiding collections via pluginOptions.content-manager.visible: false, but this:
Confuses other developers ("where's the schema?")
Doesn't solve file structure clutter
Loses admin UI benefits
Alex Thornton
Would very much appreciate this feature. At the moment we're going to have to include things like taxonomies in the same list as content types.
Marco Autiero
Merged in a post:
Organize collectionTypes and singleTypes in a folders structure like we can create in the media library
Deepak445
As the collectionsType list grows by time it is very difficult to spot any collection to edit further as all the items are displayed in one column list. We should be able to move and organize collectionTypes by creating folders and moving them inside without impacting any existing api route paths. This feature needed the most for console users to manage the list more efficiently.
T
Tackoen Aureliano
It's a much needed feature once you want to use it in production with real customers ! please give us some update and ETA.
Hazem Elkhalil
Any updates on this ? Kai Doe
Thuan Le Duc
Found the solution here:
This not using the Strapi’s official plugin API but at least does the job for me.
Thanks to the author!
j
jdskjns
Taker of this feature!
Gastón Pérez
Please, we really need this feature
Alejandro Daneri
this function is really necessary
muhammad heri
This is ultimate feature, because in general it would be easy to handle multiple site without change name every content collection, just group into folder and it make more organize.
Load More
→