Limits
Decap CMS is powerful. But it has limits. This page lists what it cannot do — and how to work around it.
What Decap CMS Cannot Do
| Task | Why | Workaround |
|---|---|---|
Create new folders in docs/ | Decap CMS edits content, not structure | Create the folder manually in code |
Create _category_.json | Same as above | Create the file manually |
Add docs to sidebars.ts | sidebars.ts is config | Edit sidebars.ts manually |
Edit docusaurus.config.ts | It's a TypeScript config file | Edit manually |
Edit src/css/nocturne.css | CSS file | Edit manually |
| Edit React components | .tsx files | Edit manually |
Why These Limits Exist
Decap CMS works with content, not code.
- Content = Markdown files, JSON data — editable in a browser
- Code = TypeScript, CSS, React — editable in a text editor
_category_.json and sidebars.ts are code — they control structure, not content.
The Workaround
For every category you want to add:
Step 1 — Create the folder in code:
mkdir docs/tutorials
Step 2 — Create _category_.json:
{
"label": "Tutorials",
"position": 5,
"collapsed": false,
"link": {
"type": "generated-index",
"title": "Tutorials",
"description": "Step-by-step tutorials for Nocturne."
}
}
Step 3 — Add to sidebars.ts:
{
type: 'category',
label: 'Tutorials',
collapsed: false,
link: {
type: 'doc',
id: 'tutorials/index',
},
items: [
'tutorials/index',
'tutorials/first-tutorial',
],
},
Step 4 — Now use Decap CMS to create the docs inside the category.
The structure is code. The content is CMS.
The Workflow
Here's the ideal workflow for adding a new category:
| Step | Tool | What |
|---|---|---|
| 1 | Terminal | Create the folder |
| 2 | Text editor | Create _category_.json |
| 3 | Text editor | Add to sidebars.ts |
| 4 | Decap CMS | Create the docs inside |
| 5 | Decap CMS | Edit the docs |
Structure in code. Content in CMS.
What Decap CMS Can Do
To be clear, Decap CMS can do a lot:
| Task | Supported? |
|---|---|
| Edit homepage content | ✅ |
| Edit navbar | ✅ |
| Edit footer | ✅ |
| Edit widgets | ✅ |
| Create new docs | ✅ |
| Edit existing docs | ✅ |
| Create blog posts | ✅ |
| Upload images | ✅ |
| Edit static pages | ✅ |
Almost everything content-related.
What Requires Code
| Task | Requires Code? |
|---|---|
| Add a new category | ✅ |
| Add a new doc to sidebar | ✅ |
| Change site title | ✅ |
| Change theme colors | ✅ |
| Add a React component | ✅ |
| Add a Docusaurus plugin | ✅ |
Anything that changes structure or code.
Why We Chose This Design
Nocturne uses Decap CMS because:
- Git-based — content lives in your repo
- No backend — no server to maintain
- Free — runs from a CDN
- Open source — no lock-in
The trade-off: structure is code. It's a deliberate choice — the sidebar should be intentional, not auto-generated.
Tips
- Plan categories ahead — create them all at once
- Keep categories stable — don't rename once published
- Use Decap CMS for content — not structure
- Edit code in VS Code — not in the CMS
Troubleshooting
I added a doc in CMS but it doesn't appear
You need to add it to sidebars.ts manually.
I renamed a category
You need to update _category_.json and sidebars.ts.
I want to add a new section to the homepage
Add the field to home.json and config.yml — see Data Files.
I want to change the theme colors
Edit src/css/nocturne.css — see Theme.
What's Next?
You've completed the Content Management section.