Skip to content
Blume
Esc
navigateopen⌘Jpreview

Blume vs Fumadocs.Your docs as content, not an app.

Fumadocs gives you a React app to own. Blume turns a folder of Markdown into the whole site, with search, API references, versioning, llms.txt, and an MCP server built in rather than scaffolded into your code.

npx blume migrate fumadocs --claude
Blume and Fumadocs at a glance
BlumeFumadocs
You maintainBlumeA folder of Markdown, plus one optional config fileFumadocsAn app you scaffold: source.config.ts, layouts, and route handlers
Built onBlumeAstro, generated and run for youFumadocsNext.js, React Router, TanStack Start, Waku, or Astro with React
LicenseBlumeFree and open source (MIT)FumadocsFree and open source (MIT)
Agent featuresBlumellms.txt, Markdown mirrors, and a JSON API by default; an opt-in MCP serverFumadocsllms.txt and Markdown routes in the templates; an MCP route added by its CLI
API referencesBlumeOpenAPI, AsyncAPI, and GraphQL, with a Try it playgroundFumadocsOpenAPI, AsyncAPI, and GraphQL packages, with a playground
VersioningBlumeblume version snapshots with a switcher and scoped searchFumadocsA folder per version with a dropdown, or a branch per version
Quality checksBlumeblume audit, validate, and eval check SEO, links, and agent answers in CIFumadocsLink validation you add to your app
LanguagesBlumeblume translate fills in every locale with your coding agentFumadocsLocale routing, UI translations, and localized search

Fumadocs details are from its own pages as of September 23, 2026: Frameworks, llms.txt and MCP, OpenAPI, Versioning, Internationalization. Something out of date? Let us know

Agent readiness, measured.Scores from two independent scanners.

Scores are as reported by is-agentic.com and isitagentready.com on September 20, 2026, and may have changed since.

Your docs come with you.Your MDX stays MDX, and an agent does the move.

Pages stay MDX.
Frontmatter, Steps, TypeTable, <include>, and heading anchors like [#id] use the same syntax, and Callouts become ::: directives.
Every meta.json becomes meta.ts.
Page order, titles, icons, and collapsed state carry over, and root folders become header tabs.
References rebuild from your specs.
Blume builds OpenAPI and GraphQL pages from the same spec or schema, so the generated stubs and their scripts go away.
The app comes out.
Once the agent has read what it needs, the host framework, source.config.ts, and mdx-components.tsx are removed.

Fumadocs

Blume

  • meta.jsonmeta.ts
  • "root": truenavigation.tabs
  • <Callout type="warn">:::warning
  • <Cards><CardGroup>
  • <Accordions><Accordion>
  • <Files><Tree>
  • "BookOpen""book-open"

When Fumadocs might suit you better.Blume isn't the right fit for every team.

Your docs live inside a React app.
Fumadocs runs inside Next.js, React Router, TanStack Start, Waku, or Astro with React, so your docs share the app's routing, auth, and components.
You want to own every line.
Fumadocs copies its UI into your repo, keeps its core headless, and lets you configure the remark and rehype pipeline directly.
Your content is dynamic.
Fumadocs renders on the server, so pages can fetch content at request time or filter by who's reading.
Migrate from
  1. 1

    Run one command in your docs project.

    Using Codex? Swap --claude for --codex.

  2. 2

    Review the agent's edits.

    It follows Blume's migration playbook for , rewriting your config and pages in place, so you review the whole move as one diff.

  3. 3

    Preview the result.

    Run npx blume dev, then read the agent's summary of anything it dropped or approximated.

Questions, answered.About moving from Fumadocs to Blume.

What's the difference between Blume and Fumadocs?

Fumadocs is a framework you scaffold into your own app and then own, down to the route handlers. Blume is the whole site from a folder of Markdown, with no app code, and search, API references, llms.txt, Markdown mirrors, and an MCP server built in. When you want the code, blume eject hands you a standalone Astro app.

Can I keep my Fumadocs MDX?

Yes. Pages stay MDX, and Fumadocs syntax like <include>, [#id] heading anchors, and TypeTable works in Blume as it is. The agent converts Callouts to directives and every meta.json into a typed meta.ts.

Does Blume do versioning and MCP like Fumadocs?

Yes. blume version freezes a snapshot with a switcher, an old-version banner, and version-scoped search, and the MCP server is a config switch on a server deployment, with no route code to maintain.

Is Blume built on React?

No. Blume renders static HTML with Astro and ships no React by default. You can still write interactive islands in React, Vue, or Svelte.

What doesn't the migration carry over?

Folder descriptions, reversed or extracted page ordering in meta.json, full-width full pages, and components like <DynamicCodeBlock> and <InlineTOC>. The agent reports each one so you can decide what to do with it.

Upgrade your docs with Blume.

Install today and ship a production-grade docs site in minutes. Free and open source, forever.

npx blume init