- Category
- Developer Tools
- Rank
- No. 384Tools index
- Pricing
- Open Source
- Platform
- cli · web
- Type
- TOOL
- Builder
- @haydenbleasel
- GitHub
- 1.4k stars
- Latest release
- blume@1.5.3
- Date
About
Blume is a zero-config documentation site generator that turns a folder of Markdown or MDX files into a production-grade docs site. It generates and drives a hidden Astro project behind the scenes, providing navigation, search, Open Graph images, AI-ready features like llms.txt, and a rich component library — with no boilerplate to write.
What it does
Blume turns a folder of Markdown or MDX into a documentation website. The command line tool reads a typed config file, scans content into a graph, then generates and drives a hidden Astro project so you never write app boilerplate. Builds emit static HTML plus a local search index, with server output available when you want request time features like an in page assistant or a live endpoint coding agents can query. A promote step hands you the standalone Astro app if you outgrow the framework.
Why it's ranked here
The surface here is wider than most documentation generators, and that is the reason to spend time on it. Fifteen subcommands are registered, covering work other tools leave to you: link validation, an SEO audit of the built HTML, client bundle budgets that can fail a build, translation, and a command that has an agent answer your questions using only the docs. Agent access is a first class path: the server exposes four tools whose schemas drive both validation and discovery. The cost is a heavy dependency surface and a single copyright holder.
What's good
The agent facing server never rejects a tool call on argument shape: a bare string is accepted where a list is expected, and an out of range result limit is clamped into the allowed one to twenty window instead of erroring. The advertised tool schema is generated from the same definitions the runtime parses with, so the two cannot drift. The repository documents a per file line and function coverage gate enforced by the test runner config. Comments record why a low level protocol server was chosen over the convenience wrapper. Hosted search upload failures warn and let the build finish.
Tradeoffs
Weight is the trade. The published package declares close to eighty runtime dependencies, pulling in Astro, React, Tailwind, Shiki, Mermaid, Sharp and an OpenAPI parser whether your site uses them or not. Node 22.12 or newer is required. The most interesting commands, translation, documentation evals, and agent applied audit fixes, shell out to Claude Code or Codex, so they do nothing without one of those installed. Copyright sits with one person. Because the framework generates and owns the project, deep customization means component overrides or a one way exit to a plain Astro app.
How to use it well
Best fit is a team whose docs already live as Markdown beside the code, and who want coding agents reading those docs without scraping HTML. It earns a slot in continuous integration: link validation, the built site audit, and the JavaScript budget gates all signal through exit codes next to your test job. Take the exit path early if marketing pages and docs must share one codebase. It does not write or edit content for you, gives non technical authors no editing interface, and hosting stays your problem.
Technical notes+
The command line entry is packages/blume/bin/blume.mjs, which prefers a built Node bundle and falls back to the TypeScript source under a TS aware runtime; packages/blume/src/cli/index.ts registers fifteen subcommands with citty, loads env files before any command runs, and installs uncaughtException and unhandledRejection handlers that route through one internal error reporter. packages/blume/src/index.ts is the library face, exporting defineConfig, defineMeta, defineComponents and the config, navigation and diagnostic types, while packages/blume/package.json declares subpath exports for the Astro integration, Open Graph rendering, markdown, components, runtime and content sources, and marks Algolia, Typesense, Notion, Sanity and the AI SDK providers as optional peers. packages/blume/src/ai/mcp/server.ts builds a Model Context Protocol server on the low level SDK Server with four tools (navigation, page fetch, page listing, search), using zod preprocess pipes so a call never fails on argument shape and z.toJSONSchema emits the advertised schema from the same definitions. packages/blume/src/search/sync/index.ts pushes per page records to Algolia, Orama Cloud or Typesense after a build and downgrades any failure to a warning, and packages/blume/src/core/ui-packs/index.ts registers the locale packs merged onto English. packages/blume/src/astro/index.ts exposes the runtime generator and the Astro integration; apps/docs/blume.config.ts shows the project dogfooding itself with the Vercel adapter, server output, five locales, a GitHub releases content source and the MCP server enabled; and AGENTS.md records the architecture rules, including that only the CLI ships as a Node bundle while the Astro runtime ships as source.
Observed
- License
- MIT, single copyright holder
- Language
- TypeScript, ES modules throughout
- Install surface
- npm package exposing a single blume binary
- Interfaces
- CLI, importable library with subpath exports, and a Model Context Protocol server (HTTP plus a stdio subcommand)
- Package managers
- Bun, pnpm, npm and yarn all supported
- Deploy targets
- Static output, or server output via Vercel, Netlify, Node and Cloudflare adapters
- Search
- Local Orama by default; Pagefind, FlexSearch, Algolia, Typesense, Orama Cloud and Mixedbread are optional peers
- Localization
- Built-in locale packs merged onto English, community maintained
- Repository shape
- Bun and Turborepo monorepo: the published package plus a docs site built with the tool itself
- Configuration
- TypeScript config validated by a zod schema, authored through typed helpers
Read from README.md, package.json, packages/blume/package.json, packages/blume/src/index.ts, packages/blume/src/cli/index.ts, packages/blume/src/astro/index.ts, packages/blume/src/ai/mcp/server.ts, packages/blume/src/core/ui-packs/index.ts, packages/blume/src/search/sync/index.ts, packages/blume/bin/blume.mjs, apps/docs/blume.config.ts, apps/docs/content/docs/index.mdx, apps/docs/content/docs/reference/cli.mdx, LICENSE, AGENTS.md.
What it can do
Generate a documentation website from Markdown or MDX files
Folder of Markdown or MDX files → Production-grade documentation site
Auto-generate site navigation
Markdown/MDX file structure and frontmatter → Structured navigation menu for the docs site
Generate Open Graph images
Documentation page metadata and content → Open Graph preview images for social sharing
Generate an llms.txt file for AI consumption
Documentation content → AI-ready llms.txt file summarizing site content
Provide full-text search across documentation
Documentation site content → Searchable index and search UI for the docs site
Eject to a standalone Astro project
Blume-managed documentation project → Self-contained Astro project with full source code and no Blume dependency
Scaffold a documentation site with zero configuration
Folder of Markdown or MDX files → Fully configured Astro project generated and managed behind the scenes
Tags
Tech Stack
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.
