Navigation
Navigation lives in docs/docs.json. It controls:
- the sidebar,
- the command search menu,
- previous and next page links,
llms.txt,llms-full.txt, and search ordering.
Create a menu
Start with one top-level group:
{
"menu": [
{
"type": "group",
"label": "Docs",
"items": [
{ "slug": "index", "icon": "info" },
{ "slug": "quickstart", "label": "Quickstart", "icon": "download" },
"pages"
]
}
]
}Use slugs, not file names. For example, docs/pages.md becomes "pages".
Add sections
Think of menu as a tree:
menu[]
└─ group
└─ items[]
├─ "page-slug"
└─ submenu
└─ items[]
├─ "page-slug"
└─ submenuGroups only exist at the top level. Submenus can be nested inside groups or other submenus.
{
"type": "submenu",
"label": "Writing",
"icon": "pencil",
"open": true,
"items": [
"navigation",
"pages"
]
}Customize items
Use a string when the page title is enough:
"pages"Use an object when you need a label, icon, badge, or attributes:
{
"slug": "quickstart",
"label": "Quickstart",
"icon": "download",
"badge": "New"
}Icons are Lucide names. Use camelCase or kebab-case; both fileText and file-text work.
Link outside the docs
External and custom links can appear in the sidebar and command search:
{
"label": "GitHub",
"url": "https://github.com/hunvreus/reallysimpledocs",
"icon": "github"
}Reference
Group
Page item
You can also use page instead of slug.
Link item
Submenu
Full example
{
"menu": [
{
"type": "group",
"label": "Getting started",
"items": [
{ "slug": "quickstart", "label": "Quickstart", "icon": "download" },
{ "slug": "customization", "icon": "slidersVertical" },
{
"type": "submenu",
"label": "Writing",
"icon": "pencil",
"open": true,
"items": [
"navigation",
{
"type": "submenu",
"label": "Advanced",
"icon": "settings",
"items": ["pages"]
}
]
}
]
}
]
}