Changelog

Custom search metadata for faceting

You can now attach your own key-value metadata to a page with the search-metadata frontmatter object. Fern copies the block onto every Algolia record for that page and declares each key for faceting, so a custom search integration can group and filter results by your own taxonomy.

Read the docs
searchfrontmatter

Per-deployment values in self-hosted docs

A self-hosted container can now resolve environment variables in the pages it serves, on each request. A ${VAR} whose name is listed in FERN_RUNTIME_ENV_VARS is deferred past generation instead of being substituted with its build-time value, so one image serves deployments that differ only in those values.

Read the docs
self-hostedcustomization

Fern Agent automations

You can now put Fern Agent on a schedule. Create an automation on the Automations page in the Fern Dashboard. You can also describe the recurring work in the chat panel or Slack, and Fern Agent will set up an automation for you. Automations can review your reader feedback, unanswered Ask Fern questions, search queries, or analytics, report back what it found, and open a pull request when the prompt asks for a change.

ai

GraphQL types in API References

GraphQL API References now include a page for every named type in your schema, collected under a Types section at the API Reference root and grouped by kind: Objects, Inputs, Enums, Scalars, Interfaces, and Unions. Interface pages list the interface’s fields and the types that implement it.

Read the docs
api-reference

Card images in Fern Editor

You can now configure a Card’s image title, link, source, position, and badge directly in Fern Editor. Repo-relative image paths resolve in the Editor, and the preview matches the published Card component.

Read the docs
developer-toolscomponents

GraphQL schemas split across multiple files

You can now generate a single GraphQL API Reference from a schema split across several SDL files, including Apollo Federation subgraphs. List each file as its own spec in generators.yml with the same name, and Fern compiles them into one schema.

Read the docs
api-referencegenerators.yml

Blog layouts for changelogs

You can now present a changelog as a blog, with dated entries rendered as cards in a grid or list, tag filters, search, and author bylines on each post. Use this layout when a changelog functions more like a series of announcement posts than a list of releases. Set layout: blog and blog-layout in the changelog overview frontmatter.

Cards, tag filters, and search on a blog, with author bylines on the post page. Try the live example site.

navigationcustomization

Redirects in separate files

You can now keep redirects in a separate YAML file and reference it from docs.yml. You can also split redirects across multiple files.

docs.yml
1redirects: ./redirects.yml
Read the docs
seodocs.yml

Fern Agent

Fern Agent edits your documentation and analyzes your organization’s Fern data. Talk to it in the Fern Dashboard chat panel, or integrate it with your Slack or your coding agent (via MCP) in one click.

Read the docs
ai

Connect your coding agent to Fern over MCP

Fern now hosts a private MCP server for the agent you build your docs with, with full context on Fern’s documentation and configuration — docs.yml syntax, components, CLI commands, and API definitions. It’s scoped to a single organization and returns only what your Fern account can already see: your sites and their configuration, deployment and preview-URL status, traffic and 404 analytics, search queries, Ask Fern conversations, and page feedback. Run fern mcp install to connect Claude Code, Cursor, or Codex to it.

aideveloper-tools

Local library docs generation from git inputs

You can now iterate on library docs locally from git inputs, not just path inputs. fern docs md generate --local reads the library source from the repository at the configured ref and parses it on your machine, so you can preview generated pages without publishing or logging in to Fern.

Read the docs
api-referencelocal-development

Standalone Ask AI sidebar panel

The @fern-api/search-widget package now ships an AskAiChat component: a sidebar panel that answers questions from your documentation inside any React application, like a dashboard or marketing site. The panel becomes a bottom drawer on small screens, and the theme and accentColor props match it to your product.

aisearch

Scroll-synced code walkthroughs

You can build scroll-synced code walkthroughs with the new <ScrollWalkthrough> component. Prose steps flow down the page while a code panel stays pinned beside them, following the reader’s scroll position. Use this component for quickstarts and integration guides where successive steps add to the same few files.

  1. Install the SDK

    Add the Plant Store SDK to your project.

  2. Create the client

    Point the client at your garden with an API key.

    1. Import the client.
    2. Construct it with your API key.
  3. Add a plant

    Create your first plant record. The wateringDays interval drives care reminders.

$npm install @plantstore/sdk
components

Readable API Reference Markdown for agents

API Reference endpoint and webhook pages served as Markdown (through .md URLs and llms.txt) now render a flattened property list. Requests, responses, and authentication appear as bullets with each property’s name, type, required flag, and description, and nested objects are indented.

Internal component schema names and $ref chains aren’t included to conserve tokens and improve readability.

aiapi-reference

Build a docs version from a git ref

You can now point a version entry at a git ref (a branch, tag, or commit SHA) instead of a path in your working tree. On publish, Fern builds that version’s content from the ref, composed with the current branch’s theme and shell. Use it for a version that no longer receives content updates, such as a past release; keep actively maintained versions on path, since fern docs dev previews working-tree versions only.

navigationdocs.yml

Send defaults for optional parameters in the API Explorer

You can now have the API Explorer pre-fill and send the declared default (or x-fern-default) of optional header, query, and path parameters. Set playground.send-optional-defaults: true in docs.yml on an API, section, or endpoint.

docs.yml
1navigation:
2 - api: API Reference
3 playground:
4 send-optional-defaults: true
api-referencedocs.yml

Organization-wide CLI version policy

Admins can now bound the Fern CLI version that every project in an organization runs. Set a minimum, a maximum, or an exact version with fern org set cli-version, and each project runs the nearest allowed version. The bounds live on the organization, so no fern.config.json has to change. fern org get reports the policy and fern org unset cli-version clears it. fern upgrade respects the same bounds when it writes a new version.

developer-tools

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