Skip to content
Blume is now publicly available.
Blume
Esc
navigateopen⌘Jpreview
On this page

Introduction

Blume is an open-source, markdown-first documentation framework on Astro and Vite — fast, AI-ready, and zero-config down to the template.

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.

Why Blume exists

Docs should be fast, AI-ready and require zero configuration — down to not needing a starter template at all. Some docs tools hand you an entire codebase to maintain before you’ve written a word. Others build the template around your content, but lock you in to their managed service.

Blume takes the best of both worlds. The framework is the template, so the only thing you ever touch is your content. When you want to customize, you can start replacing the built-in components, modifying the single configuration file or even ejecting if you want the Astro site directly.

What makes Blume different

Fast by default

Blume builds on Astro and Vite and renders static HTML by default — fast, cacheable, and cheap to host. The core theme ships no client framework JS so pages score well on Core Web Vitals out of the box. Dev startup and hot reload feel Vite-native, and you opt into server features only when you need them.

AI-ready out of the box

Every Blume site speaks fluent machine. It emits llms.txt and llms-full.txt, serves any page’s raw Markdown by appending .md to its URL, and gives readers Copy as Markdown and Open in chat actions on every page. Add an optional in-page Ask AI assistant, or host an MCP server so coding agents like Claude Code and Cursor can search and read your docs directly — no scraping, no hosted service. Your Markdown is the source of truth for both humans and models.

Zero configuration — even the template

A folder of docs is a complete project. There’s no starter to clone, no Astro or Tailwind to set up, and no template to maintain. Navigation is inferred from your files, search works in dev and production without a hosted service, and theming is a handful of tokens. Everything has a sensible default; configuration is something you reach for, not something you start with.

Type-safe to the core

Your blume.config.ts and every meta.ts are real TypeScript — validated by a schema and authored with defineConfig and defineMeta. Your editor autocompletes every option and catches typos, invalid values, and missing fields as you type, long before a build. Configuration is code you can refactor, compute, and trust — not loosely-typed YAML.

Everything included

  • Components — callouts, cards, steps, tabs, accordions, badges, file trees, and parameter tables, usable in MDX with no imports.
  • Local search — Orama works in dev and production; Pagefind is one flag away for large sites. No hosted index.
  • AIllms.txt, raw Markdown URLs, Copy as Markdown, Open in chat, an Ask AI assistant, and a hosted MCP server.
  • Navigation — inferred from files, refined with meta.ts or config.
  • SEO — metadata, Open Graph images, RSS feeds, and JSON-LD, built in.
  • Customization — component overrides, React islands, custom pages, theme tokens, and a source-component registry via blume add.
  • Ejectblume eject produces a standalone Astro project that still uses the blume package.

How it works

The Blume CLI discovers your content, builds a content graph, and generates a hidden Astro project under .blume/ that it drives for dev and build. The generated runtime is an implementation detail — you write Markdown, Blume handles the rest — until you choose to eject and own it.

Next steps

Was this page helpful?