Minimal documentation theme and CLI for shared usage across UnJS/H3/Nitro projects.
Write your docs as Markdown, drop in a single config file, and get a fast,
elegant, zero-config documentation site — dev server, production build, search,
and llms.txt included.
A docs project is three files. Create them in a docs/ folder:
1. docs/package.json — pulls in the CLI and wires up two scripts:
{
"name": "docs",
"private": true,
"scripts": {
"dev": "undocs dev",
"build": "undocs build"
},
"devDependencies": {
"undocs": "latest"
}
}2. docs/.config/docs.yaml — your site config:
# yaml-language-server: $schema=https://unpkg.com/undocs/schema/config.json
name: "packageName"
shortDescription: "One-line summary."
description: "A longer description of your project."
github: "unjs/packageName"3. docs/1.guide/1.index.md — your first page:
# Getting Started
Welcome to the docs!Then install and start the dev server on localhost:3000:
cd docs
npm install
npm run devBuild a static production bundle with npm run build.
Every Markdown file becomes a page. Numeric prefixes (1., 2.) control the
order in the sidebar and are stripped from the URL, so 1.guide/1.index.md
is served at /guide. Add folders and files to grow the navigation — no routing
setup required:
docs/
├─ .config/
│ └─ docs.yaml
├─ 1.guide/
│ ├─ 1.index.md → /guide
│ └─ 2.usage.md → /guide/usage
└─ 2.config/
└─ 1.index.md → /config
See the configuration reference for the full
list of options (landing page, banner, socials, sponsors, llms.txt, and more).
Undocs is currently powered by Nitro, Vite, md4x, shiki, Unhead and Reka UI.
UnDocs was originally based on Nuxt, Nuxt UI, Nuxt Content (Comark), Vue Router, and other Nuxt ecosystem modules such as nuxt-llms and nuxt-icon which inspired the new generation of undocs.
Published under the MIT license.