Skip to content
Blume
Esc
↑↓navigate↵open⌘Jpreview

Blume vs Fern.Keep Fern's SDKs, own your docs.

Fern pairs hosted docs with SDK generation. Blume replaces the docs half with the same MDX, API references from your spec, llms.txt, and an MCP server, free and on any host, while fern/ keeps generating your SDKs.

npx blume migrate fern --codex
Blume and Fern at a glance
BlumeFern
PriceBlumeFree and open source, with no seat limitsFernFree for 10 members and 1,000 pages; Enterprise is custom-priced
HostingBlumeAny host: Vercel, Netlify, Cloudflare, Node, or static filesFernFern's cloud; self-hosting with a Docker image on Enterprise
EditingBlumeMarkdown and MDX in your repo, in any editorFernA visual web editor that opens pull requests, plus MDX in Git
AI assistantBlumeAn in-page assistant on the model you choose, billed by your providerFernAsk Fern, at 2 AI credits a message; 250 credits a month on Free
Agent featuresBlumellms.txt, Markdown mirrors, and a JSON API by default; an opt-in MCP serverFernllms.txt and Markdown pages built in; an MCP server that spends AI credits
API referencesBlumeOpenAPI, AsyncAPI, and GraphQL, with a Try it playgroundFernOpenAPI, AsyncAPI, GraphQL, gRPC, and OpenRPC, with an API Explorer
SDKsBlumeNot built in; shows your SDK calls from x-codeSamplesFernPython and TypeScript free up to 200 endpoints; ten languages on Enterprise
LanguagesBlumeblume translate fills in every locale with your coding agentFernLocalization on Enterprise, still in early access

Fern details are from its own pages as of October 7, 2026: Pricing, Self-hosting, Editor, AI credits, MCP server, Localization. Something out of date? Let us know

Your docs come with you.Your MDX stays MDX, and your SDKs stay with Fern.

Pages stay MDX.
Callouts become ::: directives, and code groups, cards, accordions, and <Markdown> snippets map to Blume's components and includes.
Navigation moves into folders.
docs.yml tabs and sections become folders and meta.ts files placed so each page keeps its URL, with a redirect for every endpoint and changelog date that moves.
Fern Definitions become OpenAPI.
The agent exports the definition with the Fern CLI and restores its webhooks with an overlay, so every endpoint and webhook gets a page.
SDK generation stays put.
fern.config.json, generators.yml, and your API definition stay in fern/, so fern generate and fern check keep working.

Fern

Blume

  • docs.ymlblume.config.ts
  • <Note>:::note
  • <CodeBlocks><CodeGroup>
  • <Cards><CardGroup>
  • <Markdown src><include>
  • subtitledescription
  • sidebar-titlesidebar.label

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

You want docs and SDKs from one platform.
Fern generates SDKs in up to ten languages from the same definition and shows calls from them on every endpoint. Blume renders the docs and shows SDK samples you add as x-codeSamples.
You want a web editor.
Fern Editor lets teammates without Git access edit pages visually, and every change opens a pull request. Blume is Markdown and MDX in your repo.
You need gated docs.
Fern offers password protection on every plan, and SSO, JWT, RBAC, and API keys filled into the API Explorer for signed-in readers on Enterprise. Blume relies on your host's protection.
Migrate from
  1. 1

    Run one command in your docs project.

    Using Claude Code? Swap --codex for --claude.

  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 Fern to Blume.

Why switch if Fern Docs has a free plan?

Fern's Free plan hosts one site on Fern's cloud, with 1,000 pages, 250 AI credits a month, and Fern branding; custom CSS, JavaScript, and React need Enterprise. Blume has no plans or limits, runs on any host, and lets you replace any component or layout slot, or eject to a standalone Astro app.

Can I keep my Fern MDX?

Yes. Pages stay MDX. npx blume migrate fern --codex converts callouts to directives, maps Fern's components to Blume's, and rebuilds docs.yml navigation as folders that keep every page URL.

Do I have to stop using Fern for SDKs?

No. Only the docs move. The agent leaves fern.config.json, generators.yml, and your API definition in fern/, so fern generate and fern check keep working.

Can Blume render a Fern Definition?

Not directly. The agent exports it to OpenAPI with fern export, restores the webhooks and idempotency headers the export drops with an overlay, and writes a redirect for every endpoint URL that changes.

What doesn't the migration carry over?

Fern's hosted features: Ask Fern, AI-generated examples, the dashboard and analytics, reader logins and RBAC, and the API Explorer's proxy and OAuth flow. In the reference, SDK snippets need rebuilding as x-codeSamples, and WebSocket, gRPC, and OpenRPC pages have no Blume equivalent. The agent reports each one.

Upgrade your docs with Blume.

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

npx blume init