Changelog

Show availability badges in the sidebar

Rendering availability badges (Beta, Deprecated, etc.) as a badge in the sidebar navigation is now opt-in rather than automatic. Set layout.show-nav-availability-badges: true in docs.yml to enable it for your site; it’s off by default.

Read the docs
navigationdocs.yml

Index external sitemaps in search

You can now surface pages hosted outside your docs site in search. List one or more external sitemap.xml files under the experimental external-sitemaps key in docs.yml, and Fern indexes their pages into the same search index as your documentation. External results are flagged as third-party, so they always rank below your first-party pages and open in a new tab when selected.

search

Preview docs as a role

Teams can now preview a role-gated docs site as a specific viewer to validate their gating before publishing. On a preview link, a role selector lets you pick one or more roles (or anonymous) and re-renders the site with that viewer’s role-based visibility applied, including nav pruning, <If /> blocks, and role-gated tabs and products. With no selection, the preview continues to show all content.

security

SSO now supports role-based access control

You can now gate content by role when authenticating with SSO. Fern reads each user’s roles from the token your identity provider issues, then applies the roles and viewers rules in your docs.yml. Previously, role-based access control was limited to JWT and OAuth.

To use it, assign roles through your WorkOS organization, either directly or by mapping your SSO/directory groups to roles.

security

Opt remote scripts out of SRI

Fern adds a Subresource Integrity (SRI) integrity attribute to remote js scripts by default. You can now disable SRI on a specific remote script without turning it off globally. Disable it for scripts that update in place, such as auto-updating or CDN-rolled scripts, which SRI would otherwise block.

docs.yml
1js:
2 - url: https://cdn.example.com/a.js
3 disable-sri: true # rendered without an integrity attribute
4 - url: https://cdn.example.com/b.js # still gets SRI (default)
customizationdocs.ymlsecurity

Opt-in PII masking for Ask Fern

Ask Fern can now mask personally identifiable information in a user’s question. When enabled, structured PII (emails, phone numbers, SSNs, and credit card numbers) is redacted in the browser and never sent to Fern.

docs.yml
1ai-search:
2 mask-pii: true
Read the docs
aisecuritydocs.yml

Tooltip support in Fern Editor

You can now create and edit <Tooltip> components in the Fern Editor. Select existing text to wrap it in a tooltip, or use the /tooltips slash command to insert a new one.

Read the docs
componentsdeveloper-tools

Availability badges in the sidebar navigation

Availability set on a page, section, folder, or API Reference section or endpoint now automatically shows as a badge in the sidebar navigation, so you no longer need to hardcode a status like “(Beta)” in the title. beta, pre-release, and in-development render a badge; deprecated renders a badge and strikes through the title.

Read the docs
navigationapi-referencedeprecated

Paginated and expandable tables

Tables now support pagination, which splits rows across pages (<PaginatedTable>). Paginated tables can optionally be searchable (<PaginatedSearchableTable>) or expandable (expandable prop).

Use these new options to keep long reference tables scannable without a wall of rows.

PlantLight RequirementsWater
FernPartial shadeWeekly
Snake PlantLow to bright indirectBi-weekly
MonsteraBright indirectWeekly
PothosLow to bright indirectWeekly
Fiddle Leaf FigBright indirectWeekly
Peace LilyLow to medium indirectWeekly
Rubber PlantBright indirectWeekly
ZZ PlantLow to bright indirectBi-weekly
PhilodendronMedium to bright indirectWeekly
Aloe VeraBright directBi-weekly
1–6 of 10
components

Page suggestions in agent 404 responses

Requests for a nonexistent .md URL now return up to three “Similar pages” suggestions linking to the closest matching sources, so agents can recover from a broken link without a separate lookup.

Read the docs
ai

Changelog layout configuration

Changelogs now support two layouts:

  • timeline (default) renders a searchable timeline of condensed entry cards.
  • classic renders stacked full entries inline, preserving code formatting, copy buttons, and links.

Set either value site-wide with layout.changelog-layout in docs.yml:

navigationdocs.ymlfrontmatter

Disable MCP server endpoint

You can now fully disable the MCP server on your docs site by setting page-actions.options.mcp: false in docs.yml. When disabled, the /_mcp/server endpoint returns 404, the MCP URL is omitted from llms.txt and agent prompts, and the “Connect to Claude Code” / “Connect to Cursor” buttons are hidden.

This is particularly useful for authenticated docs sites where unauthenticated AI agents discover the endpoint but can’t use it.

aidocs.yml

Changelog timeline redesign

Changelog pages now render as a compact, date-grouped timeline of entry cards by default, instead of stacking full-height entries inline.

A search bar at the top lets readers find entries across the entire changelog by keyword. The query syncs to the ?q= URL parameter, so filtered views are shareable.

navigationsearch

Per-entry changelog tags

Changelog entries with multiple releases under separate headings can tag each heading independently using the <ChangelogTags> component:

1## New dashboard analytics
2<ChangelogTags>analytics, dashboard</ChangelogTags>

Tags on individual entry pages are clickable and link back to the timeline with that tag pre-selected as a filter.

navigationcomponents

Local library docs generation

You can now generate library documentation from local source code using the --local flag. Instead of pushing to a remote repository and parsing on Fern’s servers, fern docs md generate --local parses the source locally. This doesn’t require you to be logged in to Fern.

To use local generation, set your library’s input to a path instead of a git URL:

api-referencedocs.yml

Custom llms-full.txt files are deprecated

Fern no longer generates llms-full.txt, and the llms-full-txt configuration in docs.yml is deprecated. Concatenating an entire site into one file exceeded most model context windows, added heavy serving overhead, and saw little use next to llms.txt combined with per-page Markdown.

Use llms.txt to discover page URLs and fetch individual pages via their .md URLs.

aidocs.ymldeprecated

API catalog respects site authentication and RBAC

The /.well-known/api-catalog endpoint now mirrors what the viewer can see. Sites with authentication configured return an empty catalog to unauthenticated requests, and API references hidden through role-based access control no longer appear in the catalog.

Read the docs
security

fern-docs agent skill

You can now install the fern-docs agent skill to teach coding agents like Claude Code, Cursor, and Copilot how to work with Fern Docs. The skill covers docs.yml configuration, navigation, MDX pages, components, and changelog entries, with task-specific references that agents load on demand.

$npx skills add fern-api/skills --skill fern-docs
aidocs.yml

Host agent skills from your docs site

Fern docs sites can now serve author-supplied Agent Skills at the standard /.well-known/skills/ and /.well-known/agent-skills/ endpoints. Place your skill bundle under fern/.well-known/agent-skills/ and the CLI uploads it during fern generate --docs. Users install with npx skills add https://<your-domain>.

Read the docs
ai

"Install skills" page action

You can now add an “Install skills” button to the page action bar via page-actions.options.skills in docs.yml. The button opens a modal showing a copyable install command, the list of available skills, and a link to the skill source. The modal fetches the site’s served well-known manifest on first open, so the skill list stays in sync with what npx skills add installs.

aicomponentsdocs.yml