How it works
The mental model behind your docs site
Your site is generated, not hand-built. Understanding the few moving parts makes everything else obvious.
Docs as code
Your documentation lives in your repository as plain files: Markdown for content, JSON for settings. You edit them in your normal editor, commit them with Git, and publish with one command. There's no separate CMS and no site code to maintain — the engine turns your files into a full site at build time.
docs.json vs content/
Two things drive the whole site:
docs.json— one settings file: the site name, colors, logo, products, and API references. Everything about the site.content/docs/— folders of Markdown files, one per page. Everything in the site.
Change either and the site rebuilds around it. See
Settings for a tour of docs.json.
Products & sections
The site is organised around products — the top-level areas readers switch between in the header. Each product has written guides and, optionally, a generated API reference:
/ home page (built from docs.json)
/{product}/guides/... your Markdown pages
/{product}/api-reference/... generated from your OpenAPI fileThis template ships one product with the id example, which is why every URL
here starts with /example/. Rename it, or add more, in docs.json:
"products": [
{ "id": "platform", "label": "Platform" },
{ "id": "mobile", "label": "Mobile SDK" }
]Each product id maps to a folder: content/docs/{product-id}/guides/.
What you get for free
| Built in | Details |
|---|---|
| Search | Full-text, across every page — press ⌘K. |
| Dark mode | Automatic, with a toggle in the header. Your brand colors adapt. |
| Mobile | The whole site, including menus, works on phones. |
| AI-readable output | /llms.txt and per-page Markdown endpoints, so AI tools can read your docs. |
| Link previews | Social / OG images generated per page. |
| Safety rails | The build fails loudly on a broken docs.json or API file — errors never reach readers. |
Next: write your first pages
Frontmatter, Markdown, links, and images.