Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions fern/products/dashboard/dashboard.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,6 @@ navigation:
- page: Set up SSO
path: ./pages/sso.mdx
slug: sso
- page: Custom domains
path: ./pages/domains.mdx
- changelog: ./pages/changelog
5 changes: 5 additions & 0 deletions fern/products/dashboard/pages/changelog/2026-01-07.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
## Set up custom domains in the dashboard

You can now configure custom domains for your documentation site directly in the [Fern Dashboard](https://dashboard.buildwithfern.com/). The dashboard automatically displays the DNS records you need to add to your domain registrar based on your domain type.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [vale] reported by reviewdog 🐶
[FernStyles.Current] Avoid time-relative terms like 'now' that become outdated


[Learn more](/learn/dashboard/configuration/custom-domains) about setting up your custom domain.
64 changes: 64 additions & 0 deletions fern/products/dashboard/pages/domains.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
---
title: Set up a custom domain
description: Use the Fern Dashboard to configure your custom domain with DNS records for subdomain, subpath, or root domain hosting.
---

You can use the [Fern Dashboard](https://dashboard.buildwithfern.com/) to configure any of the following custom domain types:
- **Subdomain**: `docs.mydomain.com`
- **Subpath**: `mydomain.com/docs`
- **Root domain**: `mydomain.com`

The Dashboard automatically provides the correct DNS records based on your domain type.

<Note>
Alternatively, you can [set up your custom domain by manually configuring DNS records](/learn/docs/preview-publish/setting-up-your-domain).
</Note>

## Setup

<Steps>
<Step title="Open the Dashboard">

Navigate to the [Fern Dashboard](https://dashboard.buildwithfern.com/) and select your documentation site.
</Step>

<Step title="Add your custom domain(s)">

In the **Domains** section of the **Overview** tab, select **Add Custom Domain** and enter your domain. The dashboard displays the DNS records you need to configure.

For multiple custom domains (e.g., partner or white-label deployments), repeat this step to add each domain.
</Step>

<Step title="Update the domain in `docs.yml`">

Add your `custom-domain` to your `docs.yml` configuration:

```yaml docs.yml
instances:
- url: example.docs.buildwithfern.com
custom-domain: docs.mydomain.com
```

For multiple custom domains, configure an array:

```yaml docs.yml
instances:
- url: example.docs.buildwithfern.com
custom-domain:
- www.mydomain.com
- partner.otherdomain.com
```
</Step>

<Step title="Configure DNS records">

Log in to your domain registrar and add the DNS records shown in the Fern Dashboard. The specific records depend on your domain type (subdomain, subpath, or root domain).
</Step>

<Step title="Verify the setup">

Once you've added the DNS records, return to the Fern Dashboard to verify your domain. SSL is automatically provisioned for your domain, but it may take a few minutes to propagate globally.

<Tip>Check that you can access your new docs site from a mobile device or incognito browser.</Tip>
</Step>
</Steps>
9 changes: 8 additions & 1 deletion fern/products/dashboard/pages/overview.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,14 @@ The Fern Dashboard provides a central place to manage your projects, team member

Visit your team's [Dashboard](https://dashboard.buildwithfern.com/) and complete initial setup steps:

<CardGroup cols={3}>
<CardGroup cols={2}>
<Card
title="Set up custom domain"
icon="regular globe"
href="/learn/dashboard/configuration/custom-domains"
>
Configure your custom domain with automatic DNS record provisioning.
</Card>
<Card
title="Add team members"
icon="regular users"
Expand Down
75 changes: 42 additions & 33 deletions fern/products/docs/pages/getting-started/setting-up-your-domain.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -3,23 +3,24 @@ title: Bring your custom domain
description: Learn how to set up your Fern-generated documentation site to use a custom subdomain or subpath.
---

Bring Fern Docs to your custom domain. You can use:
- A subdomain on your custom domain, such as `docs.mydomain.com`
- A subpath on your custom domain, such as `mydomain.com/docs`
- A root domain, such as `mydomain.com`
You can configure any of the following custom domain types:
- **Subdomain**: `docs.mydomain.com`
- **Subpath**: `mydomain.com/docs`
- **Root domain**: `mydomain.com`

<Info>
Once you've set up your domain, use the [Fern Dashboard](https://dashboard.buildwithfern.com/) to manage site settings.
</Info>
Fern recommends [using the Fern Dashboard to set up custom domains](/learn/dashboard/configuration/custom-domains). The Dashboard automatically provides the correct DNS records based on your domain type. If you prefer to configure your domain manually, follow the instructions on this page.

## Manual setup

Expand the section below that matches your domain type:

<AccordionGroup>
<Accordion title = "Subdomain">
<Accordion title="Subdomain">

To host your documentation on a subdomain like `docs.mydomain.com`, you need to create a CNAME record in your DNS settings.

<Steps>

### Update the domain in `docs.yml`
<Step title="Update the domain in `docs.yml`">

Add your `custom-domain` and merge your changes into `main`. [Here's an example](https://github.com/octoml/fern-config/blob/389b67679953856ba0716537981a6d749635556f/fern/docs.yml#L1-L3 ).

Expand All @@ -28,14 +29,16 @@ instances:
- url: example.docs.buildwithfern.com
custom-domain: docs.mydomain.com
```
</Step>

### Contact Fern
<Step title="Contact Fern">

Contact Fern via your dedicated Slack channel or [email](mailto:[email protected]) to receive:
- A unique CNAME value for your site
- A TXT record to verify your domain
</Step>

### Create DNS records
<Step title="Create DNS records">

Log in to your domain registrar's dashboard and navigate to the DNS settings for your domain. Add the following records:

Expand All @@ -58,34 +61,36 @@ Replace `docs` with any subdomain you want to use.
<Warning title="Cloudflare users">
If you are using Cloudflare, you should ensure the record isn't proxied.
</Warning>
</Step>

### Verify the setup
<Step title="Verify the setup">

Once Fern has completed your setup, you'll be able to access your documentation at `docs.mydomain.com`. SSL will be automatically provisioned for your domain, but it may take a few minutes to propagate globally.

<Tip>Check that you can access your new docs site from a mobile device or incognito browser.</Tip>
</Step>

</Steps>
</Accordion>

<Accordion title = "Subpath">
<Accordion title="Subpath">

To host your documentation on a subpath like `mydomain.com/docs`, you need to edit your `docs.yml` configuration and then get provider-specific instructions for setting up the subpath. Common providers include Cloudflare, AWS Route53 and Cloudfront, Netlify, and Vercel.

<Steps>

### Configure the `url` in `docs.yml`
<Step title="Configure the `url` in `docs.yml`">

Append that subpath to the end of the `url`. This example use `docs` for the subpath, but you can use any word you like, such as `reference` or `developer`.

<CodeBlock title="docs.yml">
```yaml
instances:
instances:
- url: example.docs.buildwithfern.com/docs
```
</CodeBlock>
</Step>

### Configure the `custom-domain`
<Step title="Configure the `custom-domain`">

Below the `url`, add a `custom-domain` key:

Expand All @@ -98,26 +103,28 @@ instances:
</CodeBlock>

[Here's an example.](https://github.com/fern-api/fern/blob/7d8631c6119787a8aaccb4ba49837e73c985db28/fern/docs.yml#L1-L3)
</Step>

### Contact Fern
<Step title="Contact Fern">

Contact Fern via your dedicated Slack channel or [email](mailto:[email protected]) to set up your custom subpath.
Contact Fern via your dedicated Slack channel or [email](mailto:[email protected]) to set up your custom subpath.
</Step>

### Verify the setup
<Step title="Verify the setup">

Once Fern has completed your setup, you'll be able to access your documentation at `mydomain.com/docs`. It may take a few minutes for DNS changes to propagate globally.

<Tip>Check that you can access your new docs site from a mobile device or incognito browser.</Tip>
</Step>

</Steps>
</Accordion>
<Accordion title = "Root domain">
<Accordion title="Root domain">

To host your documentation on a root domain like `mydomain.com`, you need to edit your `docs.yml` configuration and then get provider-specific instructions for setting up the domain. Common providers include Cloudflare, AWS Route53 and Cloudfront, Netlify, and Vercel.

<Steps>

### Configure the `url` in `docs.yml`
<Step title="Configure the `url` in `docs.yml`">

<CodeBlock title="docs.yml">
```yaml
Expand All @@ -128,14 +135,16 @@ instances:
</CodeBlock>

[Here's an example.](https://github.com/dannysheridan/katiedanny/blob/2fcf5769e2994af29e31d00904e04788b188a18b/fern/docs.yml#L3-L5)
</Step>

### Contact Fern
<Step title="Contact Fern">

Contact Fern via your dedicated Slack channel or [email](mailto:[email protected]) to receive:
- A unique CNAME value for your site
- A TXT record to verify your domain
</Step>

### Configure your DNS settings
<Step title="Configure your DNS settings">

You'll need the following DNS records configured for your root domain.

Expand Down Expand Up @@ -163,20 +172,22 @@ TXT @ [TXT record value provided by Fern]
This redirects `mydomain.com` to `www.mydomain.com`.

After you add these records, Fern will provision a SSL certificate.
</Step>

### Verify the setup
<Step title="Verify the setup">

Once Fern has completed your setup, you'll be able to access your documentation at `mydomain.com`. SSL will be automatically provisioned for your domain, but it may take a few minutes to propagate globally.

<Tip>Check that you can access your new docs site from a mobile device or incognito browser.</Tip>
</Step>

</Steps>
</Accordion>
</AccordionGroup>
</AccordionGroup>

## Multiple custom domains
### Multiple custom domains

To serve your documentation from multiple custom domains (e.g., for partner or white-label deployments), configure an array of domains:
To serve your documentation from multiple custom domains (e.g., for partner or white-label deployments), follow the above steps for each domain (subdomain, subpath, or root domain), then configure an array in your `docs.yml`:

```yaml docs.yml
instances:
Expand All @@ -186,8 +197,6 @@ instances:
- partner.otherdomain.com
```

This works with any of the above domain types (subdomain, subpath, or root domain).

<Info>
After configuring multiple domains in your `docs.yml`, contact Fern via your dedicated Slack channel or [email](mailto:[email protected]) to complete the setup. You'll receive DNS configuration details for each domain.
</Info>
</Info>
Loading