Introduction
Chronicle turns a folder of MDX files into a documentation site. You write pages, you describe the site in one YAML file, and that is the whole setup. There is no JavaScript config, no plugin list, and no build script to maintain.
It is built on Vite and Nitro, and renders with Apsara components. Pages are server-rendered, so they work with JavaScript turned off and load fast on a slow connection.
When to reach for it
Chronicle suits a project that needs more than a README and less than a custom site. It is a good fit when you want:
- Docs in your repository. Pages are files. They review like code.
- More than one version live at once. Old versions stay reachable at their own URLs while you keep writing the new one.
- An API reference from your OpenAPI spec. Point at the spec file and you get browsable endpoint pages with a request tester.
- Something to hand to an AI tool. Every page has a plain markdown URL, and
the site publishes an index at
llms.txt.
It is a poor fit if you need a full marketing site, a CMS with a web editor, or a design you control down to the pixel. Chronicle gives you a choice of three themes and no way to write a fourth.
What you get
Write MDX and Chronicle handles the rest of a docs site: navigation built from your folders, full-text search, a table of contents per page, breadcrumbs, previous and next links, dark mode, social cards, a sitemap, and redirects for URLs you have moved.
The pieces you will touch most often:
| You want to | Go to |
|---|---|
| Get a site running | Quick start |
| Write and organise pages | Writing docs |
| Publish a second version | Versioned documentation |
| Publish an API reference | API reference |
| Look up a config key | chronicle.yaml |
| Put it on the internet | Deploy |
How a project is laid out
One config file, one content folder:
my-docs/
├── chronicle.yaml # the whole site config
├── content/
│ └── docs/ # a content directory
│ ├── index.mdx # → /docs
│ └── guides/
│ └── setup.mdx # → /docs/guides/setup
└── .output/ # build output, gitignoredFiles become URLs. Folders become groups in the sidebar. See Project structure for how the pieces fit together.
Next
Start with the quick start — it takes about two minutes and ends with a site running on your machine.