Chronicle

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 toGo to
Get a site runningQuick start
Write and organise pagesWriting docs
Publish a second versionVersioned documentation
Publish an API referenceAPI reference
Look up a config keychronicle.yaml
Put it on the internetDeploy

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, gitignored

Files 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.