Fumadocs: vendor profile
In short
Fumadocs adds llms.txt, .md routes and an MCP route only after a CLI step, so a fresh project has none. www.fumadocs.dev answered Accept: text/markdown with markdown on 2026-11-05 but sent Vary fields that left out Accept. On Next.js the docs hand the Vary header to the CDN, and no Astro recipe for negotiation exists.
At a glance
standards.txt fumadocs
llms-txt = partial
markdown-negotiation = partial
markdown-twin = partial
initial-html = supports
real-404 = no statement
vary-accept = partial
1 supports, 4 partial or announced, 1 no statement.
Fumadocs Framework
React docs framework for Next.js, React Router, TanStack Start, Waku and Astro; a CLI adds llms.txt, llms-full.txt, .md routes and an MCP route, and its docs give a proxy recipe for Accept: text/markdown with Vary: Accept.
- Type
- Framework
- Operator, as the facts below state it
- Fuma Nama (maintainer) and contributors
- Home page
- www.fumadocs.dev, answered HTTP 200 on 2026-11-05
- Last read
- 5 November 2026
What it does for this layer
- Fumadocs runs on Next.js, React Router, TanStack Start, Waku and Astro, and new projects start from npm create fumadocs-app. [primary source] source, read 5 November 2026.
- Running npx @fumadocs/cli feature llms switches on processed Markdown for the docs collection, adds docsLlms to lib/source.ts and creates the LLM routes. [primary source] source, read 5 November 2026.
- In Fumadocs, llms.txt and llms-full.txt are app routes (app/llms.txt/route.ts and app/llms-full.txt/route.ts) returning docsLlms.index() and docsLlms.full(). [primary source] source, read 5 November 2026.
- Fumadocs maps /docs/<slug>.md to the route /llms.mdx/docs/<slug>/content.md through a Next.js rewrite and answers with Content-Type text/markdown. [primary source] source, read 5 November 2026.
- For Accept-based negotiation fumadocs-core/negotiation exports isMarkdownPreferred and rewritePath, used in a proxy.ts that rewrites docs requests to the Markdown route. [primary source] source, read 5 November 2026.
- Fumadocs leaves Astro out of Accept negotiation because Astro middleware runs only for on-request pages and docs pages are prerendered. [primary source] source, read 5 November 2026.
- npx @fumadocs/cli feature mcp adds an /api/mcp route on the streamable HTTP transport with tools to list, search and read docs pages. [primary source] source, read 5 November 2026.
- Fumadocs configures ZBSearch out of the box, served from a server API endpoint or from a statically cached JSON file on static sites. [primary source] source, read 5 November 2026.
- A Fumadocs site on Next.js becomes plain static HTML with output: 'export', which needs no Node.js server. [primary source] source, read 5 November 2026.
- Fumadocs calls its model server-first, built on React Server Components rather than a classic static generator. [primary source] source, read 5 November 2026.
- www.fumadocs.dev returned Markdown for /docs/what-is-fumadocs under Accept: text/markdown on 2026-11-05, but its Vary header listed rsc and next-router fields, not Accept; /docs with the same header still returned HTML. [observed] source, read 5 November 2026.
- fumadocs.dev answers every path with a 308 to www.fumadocs.dev, where llms-full.txt measured 950,600 bytes on 2026-11-05. [observed] source, read 5 November 2026.
- GitHub shows fumadocs-core 16.18.0, fumadocs-ui 16.18.0 and @fumadocs/base-ui 16.18.0 released together on 2026-11-05. [primary source, 2026-11-05] source, read 5 November 2026.
Products and plans
| Product | What it is | Price | As of | Source |
|---|---|---|---|---|
| Fumadocs (fumadocs-core, fumadocs-ui, fumadocs-mdx) | Headless docs core, default UI and MDX content source for React frameworks. | Free, open source MIT licence, free | 2026-11-05 | source |
Standards
| Standard | Status | What the vendor's pages say | Source |
|---|---|---|---|
| llms-txt | partial | Fumadocs creates llms.txt and llms-full.txt routes after npx @fumadocs/cli feature llms; they are not present until that step. | source |
| markdown-negotiation | partial | Fumadocs documents a proxy.ts with isMarkdownPreferred for Next.js, React Router and TanStack Start, and leaves Astro out. | source |
| markdown-twin | partial | A rewrite of /docs/:slug*.md to /llms.mdx/docs/:slug*/content.md gives each page a Markdown URL once the LLM feature is added. | source |
| initial-html | supports | Fumadocs renders through React Server Components and keeps the host framework's static site generation. | source |
| real-404 | no statement | No statement found in the Fumadocs quick start, static build or AI pages; www.fumadocs.dev returned 404 for a made-up path on 2026-11-05. | none |
| vary-accept | partial | Fumadocs says the negotiated response needs Vary: Accept but that Next.js drops Vary on App Router pages, so it must be set at the CDN. | source |
Checks on its own site
| Reading | Result | Date |
|---|---|---|
| Home page request | HTTP 200; H1 in the initial HTML: yes; 1,762 words; 0 JSON-LD blocks | 2026-11-05 |
| Request with Accept: text/markdown | HTTP 200, text/markdown, Vary: rsc, next-router-state-tree, next-router-prefetch, next-router-segment-prefetch | 2026-11-05 |
| /llms.txt at the host root | HTTP 200, text/plain, 16 KB, starts with an H1 | 2026-11-05 |
| A made-up path | HTTP 404 | 2026-11-05 |
| Ora score, cached | 57, grade C | 2026-10-06 |
| Cloudflare keyless scan | 27, L1 Basic Web Presence | 2026-11-05 |
What it does not do
- On Next.js, Fumadocs cannot attach Vary: Accept to App Router page responses; its docs push that header to the CDN. source, read 5 November 2026.
Related pages on this site
Sources
- Fumadocs: home page https://www.fumadocs.dev/, read 5 November 2026
- Quick Start | Fumadocs https://www.fumadocs.dev/docs, read 5 November 2026
- AI & LLMs | Fumadocs https://www.fumadocs.dev/docs/integrations/llms, read 5 November 2026
- ZBSearch (default) | Fumadocs https://www.fumadocs.dev/docs/search/orama, read 5 November 2026
- Static Build | Fumadocs https://www.fumadocs.dev/docs/deploying/static, read 5 November 2026
- What is Fumadocs | Fumadocs https://www.fumadocs.dev/docs/what-is-fumadocs, read 5 November 2026
- Releases · fuma-nama/fumadocs · GitHub https://github.com/fuma-nama/fumadocs/releases, read 5 November 2026
- Fumadocs LICENSE https://raw.githubusercontent.com/fuma-nama/fumadocs/dev/LICENSE, read 5 November 2026
Last reviewed 5 November 2026