
World-class docs for everything you ship. Fast, AI-ready, and zero-config.
World-class docs for everything you ship. Fast, AI-ready, and zero-config.
Documentation for everything you build. Fast, AI-ready, and zero-config. Free and open source, forever.
Drop Markdown or MDX into a folder, run blume dev, and get a production-grade docs site — navigation, search, theming, Open Graph images, and a rich component library — with no app boilerplate to write or maintain. Blume generates and drives a hidden Astro project for you; run blume eject to get a standalone Astro app whenever you want full control.
Documentation · Quickstart · Components · CLI
Blume needs Node.js 22.12 or newer and a content folder with at least one .md/.mdx file — there's nothing else to set up.
npx blume init
Run the dev server with hot reload:
blume dev
Build static HTML, with a local search index, into dist/:
blume build
Blume works with any package manager and never requires you to set up Astro or Tailwind yourself.
blume.config.ts and every meta.ts are real TypeScript, validated by a schema and authored with defineConfig / defineMeta, so your editor catches mistakes before a build.llms.txt / llms-full.txt, raw Markdown at any .md URL, Copy as Markdown, Open in chat, an optional Ask AI assistant, and a hosted MCP server so coding agents can search and read your docs directly.robots.txt, RSS feeds, and JSON-LD, built in.theme.css, and a source-component registry (blume add).blume eject produces a standalone Astro project that still uses the blume package.blume init [dir]
Scaffold a project (interactive by default).
blume dev
Start the dev server with hot reload.
blume build
Build the static (or server) site.
blume preview
Preview the last build.
blume add <item>
Install a source component from the registry.
blume sync
Re-fetch remote content sources and regenerate.
blume eject
Promote the runtime into a standalone Astro app.
blume check
Type-check the docs site with astro check.
blume validate
Validate internal, anchor, asset, and external links.
blume doctor
Diagnose config and content problems.
blume audit
Audit the built site for SEO and health issues.
blume eval
Test the docs: an agent answers your questions using only the documentation.
blume translate
Translate docs into the configured locales with a local agent CLI.
blume version [id]
Freeze the current docs as an archived version (no id lists configured versions).
See the CLI reference for every flag.
The Blume CLI loads blume.config.ts, scans your content into a graph, and generates a hidden Astro project under .blume/ that it drives for dev and build. Astro renders through a catch-all page that imports Blume's shipped components, the generated data, and your overrides. .blume/ is regenerated on each run — only changed files are written, so hot reload stays fast — until you blume eject and own it.
blume build outputs static HTML to dist/ — deploy to any static host (Vercel, Netlify, Cloudflare Pages, GitHub Pages, S3 + CloudFront, or any CDN). For request-time features like Ask AI or the MCP server, switch to server output and pick an adapter:
vercel
Vercel
netlify
Netlify Functions
node
Self-hosted Node servers, containers
cloudflare
Cloudflare Workers and Pages
On Vercel, Netlify, and Cloudflare Pages the matching adapter and site URL are detected automatically.
This repository is a monorepo: the published package lives in packages/blume, and apps/docs is Blume's own documentation, built with Blume.
bun install
bun run check # lint + format (Ultracite)
bun run typecheck
bun run test
See CONTRIBUTING.md for architecture and conventions.
MIT © Hayden Bleasel