Tag description pages for API references

You can now use OpenAPI tag descriptions as summary pages for API reference sections. When you set tag-description-pages: true in your API reference configuration, Fern automatically creates a summary page for each tag using its description from your OpenAPI specification.

docs.yml
1navigation:
2 - api: API Reference
3 tag-description-pages: true

Learn more about API reference configuration options.


Product and version-specific announcement banners

Announcement banners can now be configured at multiple levels to target specific products or versions.

The override hierarchy is:

  1. Version-level - Highest priority, always shown when defined for a specific version
  2. Product-level - Used when no version-level announcement exists for a product
  3. Config-level - Fallback announcement shown across all products/versions when no specific override is defined

Add the announcement property directly to items in the products: or versions: lists in your docs.yml file:

docs.yml
1# Config-level announcement (fallback)
2announcement:
3 message: "Welcome to our documentation!"
4
5products:
6 - display-name: Docs
7 path: ./products/docs/docs.yml
8 # Product-level announcement
9 announcement:
10 message: "Docs product is in beta."
11
12 versions:
13 - display-name: v1
14 path: ./products/docs/v1/docs.yml
15 # Version-level announcement (highest priority)
16 announcement:
17 message: "v1 is in maintenance mode. Upgrade to v2."

Learn more about configuring announcement banners.


LLM content visibility tags

New <llms-only> and <llms-ignore> tags let you provide additional context for AI assistants while keeping your documentation site (for human readers) clean and focused.

Use <llms-only> to show content exclusively to AI assistants via LLM endpoints (like /llms.txt) while hiding it from your documentation site:

docs/getting-started.mdx
1<llms-only>
2 This technical context is only visible to AI assistants via LLM endpoints.
3</llms-only>

Use <llms-ignore> to show content only on your documentation site while excluding it from LLM endpoints:

docs/getting-started.mdx
1<llms-ignore>
2 <Callout intent="info">
3 This callout appears on your documentation site but not in LLM endpoints.
4 </Callout>
5</llms-ignore>

Learn more about controlling content visibility for humans and agents.


Control where links open with the target property. Available for product, tab, navbar, and page links. For typical documentation sites, links can open in the same tab (_self) or new tab (_blank). For documentation embedded in a dashboard or iframe, links can open in the parent frame (_parent) or topmost frame (_top).

docs.yml
1navigation:
2 - section: Home
3 contents:
4 - page: Introduction
5 path: ./intro.mdx
6 - link: Our YouTube channel
7 href: https://www.youtube.com/
8 target: _blank

Learn more about links and other navigational elements.


Multiple authentication schemes in the API Explorer

The API Explorer now supports multiple authentication schemes and combinations of authentication schemes for OpenAPI specs.

First, configure your OpenAPI spec with multiple security options:

openapi.yml
1/plant/search/status:
2 get:
3 tags:
4 - plant
5 summary: Search plants by status
6 description: Filter plants based on their current status.
7 operationId: searchPlantsByStatus
8 security:
9 - bearerAuth: [] # Option 1: Bearer token only (OR)
10 - basicAuth: [] # Option 2: Basic auth AND API key (combined)
11 apiKey: []

Then, the API Explorer automatically displays all available authentication options in a dropdown menu, allowing users to select and configure their preferred authentication method before sending requests.

Authentication dropdown in the API Explorer
Authentication dropdown in the API Explorer

Learn more about configuring authentication in the API Explorer documentation.


Files component for displaying file tree structures

The new <Files> component creates visual file tree structures with expandable folders and nested files. Use it to show project structures, directory layouts, or any hierarchical file organization in your documentation.

components
accordion.mdx
button.mdx
card.mdx
tabs.mdx
assets
markdown.mdx
README.md# Contribute to the docs
markdown.mdx
README.md

The component consists of three parts: <Files> as the container, <Folder> for directories that can be expanded or collapsed, and <File> for individual files. Folders and files support optional href properties to make them clickable links, and folders can use defaultOpen to start expanded when the page loads.

Markdown
1<Files>
2 <Folder name="components" highlighted defaultOpen>
3 <File name="accordion.mdx" />
4 <File name="button.mdx" />
5 <File name="card.mdx" />
6 <File name="tabs.mdx" />
7 </Folder>
8 <Folder name="assets">
9 <File name="styles.css" />
10 </Folder>
11 <File name="markdown.mdx" href="/learn/docs/writing-content/markdown" />
12 <File name="README.md" comment="Contribute to the docs"/>
13 <File name="markdown.mdx" href="/learn/docs/writing-content/markdown-basics" />
14 <File name="README.md" />
15</Files>

Read more in the Files component documentation.


Parameterized markdown snippets

Reusable Markdown snippets support arbitrary parameters that can be used as variables in the snippet. This enables flexible, reusable content templates.

Create a snippet with parameter placeholders using curly braces:

fern/snippets/watering-schedule.mdx
1<Warning>Remember to water your {plant} every {interval} days.</Warning>

Pass parameters when including the snippet:

page.mdx
1<Warning>Remember to water your peace lily every 3 days.</Warning>

This renders as:

Remember to water your peace lily every 3 days.

Learn more about reusable Markdown snippets.

New Copy component for inline copyable text

The <Copy> component makes text copyable with a single click. Use it inline to allow readers to quickly copy version numbers, commands, API keys, or other text snippets without selecting and copying manually.

You can also customize what gets copied to the clipboard using the clipboard prop. This is useful when you want simplify commands, versions, or URLs for readability while copying complete values.

Markdown
1Use the Fern CLI to build and consume REST APIs. The latest version is
2<Copy>v2.0</Copy>.

Read more in the Copy component documentation.


HTTP API access for AI agents

AI agents can now access authenticated documentation directly via HTTP API. This enables custom integrations and AI tools to retrieve protected content programmatically.

Agents obtain a JWT via the /api/fern-docs/get-jwt endpoint with a Fern API key, then use it to access protected documentation:

$curl https://docs.example.com/platform/overview \
> -H 'Accept: text/plain' \
> -H 'x-fern-host: docs.example.com' \
> -H 'FERN_TOKEN: your-jwt-here'

Content is served as clean Markdown for token-efficient processing.

Learn more in the MCP server documentation.

Folder-based navigation

Auto-generate navigation from a folder of markdown files using the new folder configuration. Instead of manually listing each page in docs.yml, point to a folder. Fern discovers all .md and .mdx files and adds them to the navigation.

docs.yml
1navigation:
2 - section: Getting started
3 contents:
4 - page: Introduction
5 path: ./pages/intro.mdx
6 - folder: ./pages/guides
7 title: Guides # Display name for folder section
8 icon: fa-regular fa-book
9 collapsed: true
10 availability: beta # Optional badge to display in navigation

Subfolders become nested sections. Supported options: title, slug, icon, collapsed, hidden, skip-slug, availability.

Learn more about navigation configuration.


Tab variants

Create multiple content variations within a single tab using the new variants feature. This allows you to show different perspectives, user types, or implementation approaches for the same topic without creating separate tabs.

You can now define variants for tabs with different layouts, titles, subtitles, and icons. Each variant can have its own navigation structure, and you can explicitly set which variant should be the default.

docs.yml
1navigation:
2 - tab: guides
3 variants:
4 - title: For developers
5 layout:
6 - section: Getting started
7 contents:
8 - page: Quick start
9 path: ./pages/dev-quickstart.mdx
10 - title: For product managers
11 default: true
12 layout:
13 - section: Getting started
14 contents:
15 - page: Overview
16 path: ./pages/pm-overview.mdx

Learn more about tab variants.

Custom icons across your navigation

You can use your own image files as icons throughout your docs.yml navigation config, including for navbar link, section, page, and product icons.

Icons support three formats:

  • Font Awesome icons: Use icon names like fa-solid fa-seedling or fa-regular fa-leaf. Pro and Brand icons from Font Awesome are supported.
  • Custom image files: Use relative paths to custom image files (e.g., ./assets/icons/plant-icon.svg). Paths are relative to the docs.yml file.
  • Inline SVG: Provide an SVG string wrapped in quotes.
Sidebar icons in docs.yml
1navigation:
2 - section: Home
3 icon: fa-regular fa-home # Font Awesome icon
4 contents:
5 - page: Introduction
6 icon: ./assets/icons/intro-icon.svg # Custom image file
7 path: ./pages/intro.mdx
8 - page: Custom Features
9 icon: "<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'><path d='M12 2L2 7v10c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V7l-10-5z'/></svg>" # Inline SVG
10 path: ./pages/custom.mdx
11 - api: API Reference
12 icon: fa-regular fa-puzzle

You can now configure products to link to external URLs (separate applications, third-party documentation, or other external resources) instead of documentation within your site.

External products appear in the product switcher alongside internal products but navigate users to the specified URL when selected. Unlike internal products, external products are defined directly in docs.yml using href—no standalone product .yml file is needed.

To define an external product, add an item to the products list in docs.yml with an href instead of a path:

docs.yml
1products:
2 - display-name: API Documentation
3 path: ./products/api-docs.yml
4 icon: fa-solid fa-book
5 slug: api-docs
6 subtitle: Complete API reference
7
8 - display-name: Dashboard # External product
9 href: https://dashboard.example.com
10 icon: fa-solid fa-chart-line
11 subtitle: Analytics and insights

Visit the product switching documentation to learn more.


Group related links in your navbar with new dropdown menus. Organize resources, tools, or external links under a single button to keep your header clean.

docs.yml
1navbar-links:
2 - type: dropdown
3 text: Resources # dropdown button text
4 icon: fa-solid fa-seedling # optional icon
5 links:
6 - text: Plant database # link display text
7 href: https://example.com/plants # destination URL
8 icon: fa-regular fa-leaf # optional icon
9 - text: Growing guides
10 href: https://example.com/guides

Learn more in the navbar links configuration documentation.

API Explorer direct requests

You can now send API Explorer requests directly to your API instead of through Fern’s proxy. This is useful for testing Cross-Origin Resource Sharing (CORS) configuration and debugging authentication flows.

docs.yml
1settings:
2 disable-explorer-proxy: true

Your API must have CORS enabled to allow requests from the documentation domain.

Learn more in the docs.yml reference documentation.