Specific migrated to Blume in an afternoon.
- Lighthouse performance on the first deploy
- 100
- Pull requests to Blume, merged and released the same day
- 2

Fast, AI-ready, and zero-config. Drop Markdown into a folder and ship a production-grade docs site with no app boilerplate to write or maintain. Free and open source, forever.
npx blume initSend your first transactional message in minutes. Acme's REST API works with any language — this guide uses the official TypeScript SDK.
Add Acme to your project with your package manager of choice. The SDK ships with TypeScript types and runs on Node, Bun, and Deno.
npm install acmeCreate a client with your API key, then call messages.send. Every request returns an id you can use to track delivery.
import { Acme } from "acme";
const acme = new Acme(process.env.ACME_API_KEY);
const { id } = await acme.messages.send({
to: "ada@example.com",
template: "welcome",
});
console.log(`Queued ${id}`);Reference a template by slug and pass variables — Acme renders the subject and body server-side, so your app never ships copy.
Poll the message endpoint, or subscribe to webhooks for real-time delivery, open, click, and bounce events as they happen.
Verify the signature on each request, then react to the event — here we mark a message delivered in our own database.
app.post("/webhooks/acme", (req, res) => {
const event = acme.webhooks.verify(req);
if (event.type === "message.delivered") {
markDelivered(event.data.id);
}
res.sendStatus(200);
});Companies and open-source libraries are moving their docs to Blume.
llms-full.txt, rebuilt on every build..md URL, with Accept: text/markdown negotiation on Vercel and Cloudflare server builds.is-agentic.comby Vercel
View reportisitagentready.comby Cloudflare
View reportScores are as reported by is-agentic.com and isitagentready.com on September 20, 2026, and may have changed since.
A folder of Markdown is a complete project — there's no starter to clone and no template to keep in sync with upstream.
Drop in an OpenAPI, AsyncAPI, or GraphQL spec and Blume renders a full interactive reference — endpoints, schemas, and a live playground.
Write each release as a Markdown entry — or point Blume at your GitHub Releases — and every one rolls up into a generated timeline at /changelog.
30+ accessible components and a curated set of Markdown extensions, usable in any .mdx page with nothing to import.
Search, SEO, and internationalization that scale from a personal project to a site with thousands of pages.
:::tip, :::warning, and friends render as styled callouts, with nothing to import.package-install fence renders npm, pnpm, yarn, bun, nub, and aube commands as tabs.installation.mdx
---
title: Installation
---
Install **Blume** with your package manager:
```package-install
blume
```
:::tip
Search, theming, and navigation work out of the box.
:::Installation
Install Blume with your package manager:
npm install blume
mdxRemote() pulls MDX from another GitHub repository at build time.custom() adapter brings any backend without its SDK touching core.blume.config.ts
import { defineConfig } from "blume";
import {
filesystem,
notion,
sanity,
} from "blume/sources";
export default defineConfig({
content: {
sources: [
filesystem({ root: "docs" }),
notion({ database: "8f2c1e0a" }),
sanity({
projectId: "p1",
dataset: "production",
query: "*[_type == 'doc']",
}),
],
},
});Card & CardGroup
Linked cards with an icon, in a responsive grid
Steps
A numbered sequence for ordered instructions
Tabs
Switch between equivalent content in place
Badge
Inline labels for status and metadata
File tree
Render a project layout from a Markdown list
Accordion
Stacked collapsibles in one bordered container
Expandable
A lightweight inline disclosure for detail
Columns
Lay blocks out in a responsive column grid
CodeGroup
Group code blocks into a tabbed switcher
Frame
Center and caption an image or visual
Tree
A hierarchy with expandable folders
Panel
A titled container for set-aside content
Tooltip
Reveal a definition or hint on hover
Tile
A clickable preview that leads with a visual
Prompt
A copyable prompt with a copy button
Visibility
Show or hide content by audience
Type tables
Document an object's props, types, and defaults
GitHub info
A repo card with star and fork counts, fetched at build time
Component
Live preview of an example beside its source
CodeBlock
Shiki-highlighted code anywhere a fence can't go
Diff
A git-style, syntax-highlighted diff
Fix the issues found by `blume audit` in this project.
The full audit report is at report.json. It is JSON: each entry in `diagnostics` is one finding, with the check `code`, a `message` explaining what is wrong, the affected page `url`, the source `file` to edit (relative to the current directory, with a `line` when the finding points at a specific front matter key), and a `suggestion` describing the fix.
Work through every finding:
1. Read the report and group the findings by `file`.
2. Apply each finding's `suggestion` by editing the named source file — most fixes are front matter edits at the cited line.
3. Never fix a finding by deleting a page, removing content, or hiding it from the audit; if a finding genuinely needs a human decision, leave it and say so in your summary.
When you are done, run `blume build` and then `blume audit` to verify, and repeat until the audit reports no issues.
Run one command in your docs project.
Using Claude Code? Swap --codex for --claude.
Review the agent's edits.
It follows Blume's migration playbook for MintlifyFumadocsDocusaurusStarlightNextraGitBookMkDocsReadMeVitePressFernRedoclyVuePressDocsifyDocusmdBookJekyllGitHub Wiki, rewriting your config and pages in place, so you review the whole move as one diff.
Preview the result.
Run npx blume dev, then read the agent's summary of anything it dropped or approximated.
Move a Docusaurus site's docs to Blume with a coding agent, and check the sidebars, admonitions, and React components it carries over.
Turn an OpenAPI file into a docs site with a page per operation, a request playground, and hand-written guides beside the reference.
Keep writing in Notion and publish a searchable docs site from a database, with a Status property that decides what goes live.
Install today and ship a production-grade docs site in minutes. Free and open source, forever.
npx blume initBlume is community-driven and free forever, thanks to these companies.
Become a sponsor