Changelog
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.
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.
Install the SDK
Add the Plant Store SDK to your project.
Create the client
Point the client at your garden with an API key.
- Import the client.
- Construct it with your API key.
Add a plant
Create your first plant record. The
wateringDaysinterval drives care reminders.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Changelog layout configuration
Changelogs now support two layouts:
timeline(default) renders a searchable timeline of condensed entry cards.classicrenders stacked full entries inline, preserving code formatting, copy buttons, and links.
Set either value site-wide with layout.changelog-layout in docs.yml:
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.
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.
Per-entry changelog tags
Changelog entries with multiple releases under separate headings can tag each heading independently using the <ChangelogTags> component:
Tags on individual entry pages are clickable and link back to the timeline with that tag pre-selected as a filter.