Reserved names to avoid, recommended naming patterns, and why the validator catches conflicts.
Reserved names — never use these
The following names conflict with CMS admin's built-in UI panels. Never use them as collection names or labels:
| Reserved name | Conflicts with |
|---|---|
settings | Site Settings panel |
site-settings | Site Settings panel |
config | Site configuration |
admin | Admin UI routes |
media | Media library panel |
interactives | Interactives panel |
What happens if you use a reserved name
If you name a collection "Site Settings", editors see two "Site Settings" entries in the sidebar:
- Your collection (content documents)
- CMS admin's built-in settings panel
This confuses everyone. Editors click the wrong one, content gets lost, and support tickets pile up.
The same applies to "Media" — editors can't tell if they're opening the media library or your "Media" content collection.
Recommended naming
For site-wide settings
Use globals or global — not "settings" or "config":
defineCollection({
name: 'globals', // ✓ safe
label: 'Global Settings', // ✓ label can say "settings"
fields: [
{ name: 'siteTitle', type: 'text' },
{ name: 'tagline', type: 'textarea' },
{ name: 'socialLinks', type: 'array', fields: [
{ name: 'platform', type: 'text' },
{ name: 'url', type: 'text' },
]},
{ name: 'footerText', type: 'text' },
],
})Note: The
labelcan include "Settings" — it's thename(used for routes and directory names) that must avoid reserved words.
For content collections
Use descriptive, content-focused names:
| Good | Bad |
|---|---|
posts | blog-settings |
projects | admin-projects |
team | config-team |
testimonials | settings-testimonials |
events | media-events |
products | interactives-products |
services | site-settings-services |
The validator catches it
CMS admin includes a built-in validator that checks for reserved name conflicts.
How to use it
- Go to Site Settings in the sidebar
- Scroll to the Site section
- Click Validate site
- If any collection uses a reserved name, you'll see a warning with a rename suggestion
What the validator checks
- Collection
namematches a reserved word - Collection
labelis identical to a built-in panel name - Suggests safe alternatives (e.g. "settings" → "globals")
Fixing a conflict
If the validator flags a collection:
- Rename the collection in
cms.config.ts:
// Before (bad)
defineCollection({ name: 'settings', ... })
// After (good)
defineCollection({ name: 'globals', label: 'Site Settings', ... })- Rename the content directory:
mv content/settings content/globals- Update slug references in any JSON files that reference the old collection name
Summary
name= directory name + URL route → must avoid reserved wordslabel= display name in admin → can be anything descriptive- Use
globalsfor site-wide settings, not "settings" or "config" - Run the validator after any config change to catch conflicts early