Markbook

Agent-first, markdown-first. A static-site engine that ships with first-class agent skills for setup, theming, and bundling — plus a React adapter for component stories when you need them.

pnpm add -D @doidor/markbook @doidor/markbook-core

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

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