Product switching
Pro and Enterprise feature
This feature is available only for the Pro and Enterprise plans. To get started, reach out to support@buildwithfern.com.
Each product can contain its own distinct versions, tabs, sections, pages, and API references. Products can share content as well.
Add products to your docs
Define your products
Create a products folder inside of your fern folder. To specify a product’s contents and navigational structure, add a .yml file to the products folder for each product.
Make sure to include the navigation and tabs properties, if applicable.
Add your product configuration
To define a product, add an item to the products list in docs.yml, specifying the display-name and path.
The optional parameters are: image, icon, subtitle, slug, and versions.
image and an icon, the image will take precedence.The below example is a docs.yml configuration for a site with two products, Product A and Product B.
Add versioning to your products
You can optionally add versions to your products. Versioned and unversioned products can live next to each other in your site.
In the below example, Product A is unversioned and Product B is versioned:
Define your versions
Create a versions folder inside of folder of the product you want to version.
Each version of a single product has its own yml file. To specify the contents of each version, add a .yml file to the versions folder to define the navigational structure of that version. Make sure to include the navigation and tabs properties, if applicable.
Version-specific yml files:
Add your version configuration
Define a version in the top-level docs.yml by adding an item to the versions list and specifying the display-name and path.
The top-level doc.yml configuration for a Fern Docs website containing two products, one unversioned and one versioned, might look something like this:
Default versions
Versions appear in the version dropdown in the order listed in versions. The first version in your versions list is your default version. This version uses unversioned paths like /docs/getting-started, while other versions use versioned paths like /docs/getting-started/v2.
Fern automatically handles version routing by redirecting broken versioned links to the default version and managing canonical URLs.
Indicate availability
You can optionally set the availability status for each version. Options are deprecated, ga, stable, and beta.
Version availability is distinct from section and page availability, with different options. If you want to set section and page availability, do so in your version-specific yml files.
Add instance audiences
Control which versions and/or products appear in each documentation instance by tagging them with audiences. This enables separate sites for different user groups (e.g., internal developers, beta testers, public customers).
Content is filtered based on audience tags:
- Match: Content with an audience matching the instance audience is included
- No match: Content with a non-matching audience is excluded
- No audience: Content without an audience tag is included by default
Define audiences for instances, products, and versions in docs.yml:
Combining with API Reference audiences
Instance audiences work alongside API Reference audiences, which filter endpoints and schemas within your API documentation. You can use both features together:
- Instance audiences - Control which products and versions appear in each instance
- API Reference audiences - Control which endpoints and schemas appear within API References
For example, you might have a public instance that includes only public products. Within those products, the API Reference should be marked as public so it is filtered to show only public endpoints.
Customize selector styling
You can directly customize the appearance of the product and version selectors by targeting their CSS classes:
fern-product-selector- Controls the styling of the product selectorfern-version-selector- Controls the styling of the version selector

Common styling adjustments
Adjusting positioning:
Use transform: translateY(Npx) to adjust the vertical positioning of the selectors. This ensures that the selectors match the line height of your logo for better visual alignment.
Enhancing visual prominence: You can modify the border radius and add borders to make the selectors more prominent and better integrated with your site’s design aesthetic.
Customize dropdown styling
The dropdown menus for product and version selectors can be customized using these specific CSS classes:
fern-product-selector-radio-group- Controls the styling of the product dropdownfern-version-selector-radio-group- Controls the styling of the version dropdown
Product Selector
Version Selector

Common Styling Adjustments
Enable a grid layout for the dropdown: