Fern against Mintlify on what an agent reads
In short
Fern generates and maintains llms.txt automatically and links the OpenAPI spec in it for sites with API endpoints, and the AsyncAPI spec for WebSocket channels. Mintlify: Page descriptions in llms.txt come from the frontmatter description field, truncated at 300 characters. Mintlify leads on JSON-LD output, 1 to 0; Fern: Not documented on the pages read.
The sourced difference
Fern serves llms.txt for every navigation node (sections, versions, tabs, API references, changelogs) and accepts lang and excludeChangelog filters; Mintlify serves one root llms.txt that links split indexes under /_llms when it passes 100,000 characters. Source, read 4 November 2026.
The rubric side by side
| Key | Fern | Mintlify |
|---|---|---|
| Content in the initial HTML | 2, on by default | 2, on by default |
| Real status codes | 2, on by default | 2, on by default |
| llms.txt generation | 2, on by default | 2, on by default |
| llms.txt linking | 2, on by default | 2, on by default |
| Markdown on request | 2, on by default | 2, on by default |
| JSON-LD output | 0, not offered | 1, with setup |
| OpenAPI exposure | 2, on by default | 2, on by default |
| Fenced, tagged code | 2, on by default | 2, on by default |
| Total | 14 of 16 | 15 of 16 |
The two differ on 1 of the numeric keys: JSON-LD output. Evidence for each score is on the profiles of Fern and Mintlify.
Verdicts by reader
- Technical SEO
- Fern exposes more llms.txt URLs per site, which matters only if agents are linked to them.
- Docs owner
- Fern filters SDK examples by language in llms.txt, useful for multi-SDK API docs.
- Front-end developer
- Both negotiate markdown on Accept; Fern also accepts .mdx suffixes.
What each leaves undone
Fern
- Does not give individual pages their own llms.txt.
- Does not serve custom llms.txt files for non-default locales.
Mintlify
- Does not publish the llms.txt behind a fully authenticated site to tools that cannot sign in.
- Does not cap llms-full.txt size; the 100,000 character split applies to llms.txt only.
Work left to the developer: Fern, Low: write frontmatter descriptions; use llms-only and llms-ignore controls where needed. Mintlify, Low: write a description in each page frontmatter so llms.txt entries carry one.
Sources
- buildwithfern.com: the difference https://buildwithfern.com/learn/docs/changelog, read 4 November 2026
- Mintlify: documentation https://www.mintlify.com/docs/ai/markdown-export, read 4 November 2026
Last reviewed 4 November 2026