Agent-first by default
Markbook ships six built-in agent skills for Claude Code, Codex, OpenCode, Cursor, and any agent CLI that auto-discovers skills. Setting up docs is a one-line conversation, not a config-file safari.
One npx markbook skills install and then: "Set up Markbook in this project" → "Generate docs for everything under src/components" → "Apply the github preset, accent #0969da" → done. See the skills →
What it is
Markbook turns a directory of markdown files into a static HTML site, with built-in search, dark mode, llms.txt, sitemap, and OG tags. A thin React adapter lets you mount component stories into the same pages — turning the same engine into a Storybook alternative when you need one. (Vue and web-component adapters are on the roadmap.) And this very site is itself a Markbook build — markdown pages plus a single custom landing layout, no bespoke glue code.
Markbook is a Storybook alternative when you need one — the same engine renders a live component showcase with stories, props tables, "show code" disclosures, and full-text search. Open the Pixie demo →
Markdown is the source of truth
Every page is a `.md` file. HTML and llms.txt are two views of one AST. No MDX, no JSON sidecars, no JS templates to learn.
Component stories, optional
Drop a :::story directive in any page to mount a React component story. Skip the directive — and the adapter — for pure docs sites. See the live Pixie demo →
Search + SEO by default
Pagefind builds a full-text index at build time. Canonical, Open Graph, Twitter Card, sitemap.xml, and robots.txt are emitted automatically.
Four layers of customization
Token overrides → opt-out of base CSS → swap the HTML shell with your own layouts → post-process the final HTML. Each layer is opt-in.
Portable stories
markbook bundle produces self-contained ESM embeds or publishable npm packages — stories that work anywhere, not just inside your docs site.
Fast dev loop
Vite under the hood. ~80ms regeneration on a 5-page site, including a full Pagefind re-index. Hot reload across markdown, CSS, layouts, and story files.
Pick a starting point
:::story directive, view it in the docs.
Customization →
The four-layer model — tokens, disabling base CSS, custom HTML layouts, post-processing.
Custom directives →
Register your own :::name directives. Build admonitions, video embeds, diagram renderers — any reusable markdown vocabulary your team needs.
Reference →
Every MarkbookConfig field, every CLI flag, every directive and frontmatter key.
What you don't need
Markbook is small on purpose. No MDX (use a story directive — your component file stays a regular .tsx). No theme engine (customize via CSS tokens or replace the shell — no provider hierarchy, no plugin framework). No bundled UI framework (the engine is plain HTML + minified IIFE boot scripts; bring React for stories if you want them).