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. Copy this prompt into your agent at the root of your project to get started.
Try it in your project
Set up Markbook documentation in this project.
First run npx @doidor/markbook skills install, then read and follow the installed SKILL.md files.
Install the required @doidor/markbook packages using this project's package manager.
Create a markdown-first docs site. If the project uses React, document its existing components with props tables and live stories.
Preserve existing files, run the docs build to verify the result, and tell me how to preview it.
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).