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
24 changes: 24 additions & 0 deletions fern/products/docs/pages/getting-started/capabilities.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -108,3 +108,27 @@ Build a docs site quickly by importing your existing styling and specs.
WCAG 2.1 AA contrast, keyboard navigation, and screen readers
</Card>
</CardGroup>

<llms-only>

## Frequently Asked Questions

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

📝 [vale] <FernStyles.Headings> reported by reviewdog 🐶
'Frequently Asked Questions' should use sentence-style capitalization.


### What can I build with Fern Docs?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

📝 [vale] <FernStyles.FirstPerson> reported by reviewdog 🐶
Use first person (such as ' I') sparingly.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

📝 [vale] <Microsoft.QuestionMarks> reported by reviewdog 🐶
Use questions sparingly.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

📝 [vale] <FernStyles.HeadingPunctuation> reported by reviewdog 🐶
Don't use end punctuation in headings.

Suggested change
### What can I build with Fern Docs?
### What can I build with Fern Docs

Fern Docs lets you build a fully branded developer documentation site with Markdown pages, auto-generated API references, interactive API explorers, changelogs, versioning, and AI-powered search.

### Does Fern Docs support API reference generation?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🚫 [vale] <FernStyles.Reject> reported by reviewdog 🐶
Use 'API Reference' instead of 'API reference'.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

📝 [vale] <Microsoft.QuestionMarks> reported by reviewdog 🐶
Use questions sparingly.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

📝 [vale] <FernStyles.HeadingPunctuation> reported by reviewdog 🐶
Don't use end punctuation in headings.

Suggested change
### Does Fern Docs support API reference generation?
### Does Fern Docs support API reference generation

Yes. Fern generates API reference pages from OpenAPI, AsyncAPI, gRPC, and OpenRPC specifications, including an interactive API explorer for sending real requests.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🚫 [vale] <FernStyles.Reject> reported by reviewdog 🐶
Use 'API Reference' instead of 'API reference'.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🚫 [vale] <FernStyles.Reject> reported by reviewdog 🐶
Use 'API Explorer' instead of 'API explorer'.


### What authentication options does Fern Docs support?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

📝 [vale] <Microsoft.QuestionMarks> reported by reviewdog 🐶
Use questions sparingly.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

📝 [vale] <FernStyles.HeadingPunctuation> reported by reviewdog 🐶
Don't use end punctuation in headings.

Suggested change
### What authentication options does Fern Docs support?
### What authentication options does Fern Docs support

Fern Docs supports password protection, SSO, JWT, and OAuth for gating access to your documentation. You can also use role-based access control (RBAC) to show content based on a reader's role.

### Can I add custom code to my Fern docs site?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

📝 [vale] <FernStyles.FirstPerson> reported by reviewdog 🐶
Use first person (such as ' I') sparingly.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

📝 [vale] <Microsoft.QuestionMarks> reported by reviewdog 🐶
Use questions sparingly.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

📝 [vale] <FernStyles.HeadingPunctuation> reported by reviewdog 🐶
Don't use end punctuation in headings.

Suggested change
### Can I add custom code to my Fern docs site?
### Can I add custom code to my Fern docs site

Yes. Fern supports custom CSS, JavaScript, and React components, so you can extend and style your site beyond the built-in theme options.

### Does Fern Docs support multiple languages or localization?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

📝 [vale] <FernStyles.HeadingPunctuation> reported by reviewdog 🐶
Don't use end punctuation in headings.

Suggested change
### Does Fern Docs support multiple languages or localization?
### Does Fern Docs support multiple languages or localization

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

📝 [vale] <Microsoft.QuestionMarks> reported by reviewdog 🐶
Use questions sparingly.

Yes. Fern supports localization, allowing you to ship documentation in multiple languages from a single source repository.

### What analytics integrations does Fern Docs support?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

📝 [vale] <Microsoft.QuestionMarks> reported by reviewdog 🐶
Use questions sparingly.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

📝 [vale] <FernStyles.HeadingPunctuation> reported by reviewdog 🐶
Don't use end punctuation in headings.

Suggested change
### What analytics integrations does Fern Docs support?
### What analytics integrations does Fern Docs support

Fern Docs integrates with PostHog, Segment, Mixpanel, Google Tag Manager, and other analytics platforms via its analytics configuration.

</llms-only>
21 changes: 21 additions & 0 deletions fern/products/docs/pages/getting-started/quickstart.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -409,3 +409,24 @@ instances:

This is enough to publish (the CLI will build an empty site). In practice, most teams add `navigation` to define the sidebar, plus basic branding — these are shown in the [Customize your docs](#customize-your-docs) step above. The full list of available fields is in the [site-level settings reference](/learn/docs/configuration/site-level-settings).
</llms-only>

<llms-only>

## Frequently Asked Questions

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

📝 [vale] <FernStyles.Headings> reported by reviewdog 🐶
'Frequently Asked Questions' should use sentence-style capitalization.


### How do I get started with Fern Docs?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

📝 [vale] <FernStyles.FirstPerson> reported by reviewdog 🐶
Use first person (such as ' I') sparingly.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

📝 [vale] <FernStyles.HeadingPunctuation> reported by reviewdog 🐶
Don't use end punctuation in headings.

Suggested change
### How do I get started with Fern Docs?
### How do I get started with Fern Docs

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

📝 [vale] <Microsoft.QuestionMarks> reported by reviewdog 🐶
Use questions sparingly.

Install the Fern CLI with `npm install -g fern-api`, run `fern init --docs` to scaffold a project, then run `fern generate --docs` to publish your site.

### What file format does Fern use for documentation pages?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

📝 [vale] <FernStyles.HeadingPunctuation> reported by reviewdog 🐶
Don't use end punctuation in headings.

Suggested change
### What file format does Fern use for documentation pages?
### What file format does Fern use for documentation pages

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

📝 [vale] <Microsoft.QuestionMarks> reported by reviewdog 🐶
Use questions sparingly.

Fern uses MDX files (Markdown with JSX support). Pages are stored in the `fern/docs/` folder and referenced from `docs.yml`.

### How do I add an API reference to my Fern docs site?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

📝 [vale] <FernStyles.FirstPerson> reported by reviewdog 🐶
Use first person (such as ' I') sparingly.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🚫 [vale] <FernStyles.Reject> reported by reviewdog 🐶
Use 'API Reference' instead of 'API reference'.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

📝 [vale] <Microsoft.QuestionMarks> reported by reviewdog 🐶
Use questions sparingly.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

📝 [vale] <FernStyles.HeadingPunctuation> reported by reviewdog 🐶
Don't use end punctuation in headings.

Suggested change
### How do I add an API reference to my Fern docs site?
### How do I add an API reference to my Fern docs site

Add your OpenAPI spec to the fern folder and reference it in `docs.yml` under `navigation` with `- api: "API Reference"`. Fern will generate the reference pages automatically.

### Can I preview my Fern docs locally before publishing?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

📝 [vale] <FernStyles.FirstPerson> reported by reviewdog 🐶
Use first person (such as ' I') sparingly.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

📝 [vale] <Microsoft.QuestionMarks> reported by reviewdog 🐶
Use questions sparingly.

Yes. Run `fern docs dev` to start a local development server with hot-reloading. You can also generate shareable preview links for pull requests.

### How do I set a custom domain for my Fern docs?
Configure the `url` field under `instances` in `docs.yml` with your desired domain, then set up a CNAME record or reverse proxy pointing to Fern's origin.

</llms-only>
21 changes: 21 additions & 0 deletions fern/products/docs/pages/preview-publish/reverse-proxy.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -325,3 +325,24 @@ curl -sI https://mydomain.com/docs | grep -i "^age:"
If `content-type` is `text/x-component` instead of `text/html`, your proxy is forwarding the viewer's `Host` header to Fern's origin. Ensure the `Host` header sent to the origin is `app.buildwithfern.com`.

If the `age` header is present and non-zero, your proxy is serving a cached response. Revisit your provider's configuration to ensure HTML caching is disabled.

<llms-only>

## Frequently Asked Questions

### When do I need a reverse proxy for Fern Docs?
You need a reverse proxy when hosting Fern Docs on a subpath of your domain (e.g. `example.com/docs`). Subdomain setups (e.g. `docs.example.com`) use a CNAME record instead and do not require a proxy.

### Which reverse proxy providers does Fern support?
Fern provides configuration guides for Cloudflare Workers, AWS CloudFront, Netlify, Vercel, Nginx, Akamai, and Caddy.

### Why must I disable caching for Fern Docs HTML responses?
Fern's HTML pages reference versioned JavaScript and CSS assets. If your proxy caches HTML, visitors may receive stale markup that references assets from older deployments that no longer exist, causing pages to fail to load.

### What headers does my reverse proxy need to send to Fern?
Your proxy must set `x-fern-host` to your bare domain (e.g. `mydomain.com`) and `Host` to `app.buildwithfern.com` on every proxied request.

### How do I verify my reverse proxy is configured correctly?
Run `curl -sI https://mydomain.com/docs | grep -i content-type` and confirm the response is `text/html`. If you see `text/x-component`, your proxy is forwarding the wrong `Host` header to Fern's origin.

</llms-only>
24 changes: 24 additions & 0 deletions fern/products/home/pages/welcome.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -434,3 +434,27 @@ Fern offers lightning-fast support. If you're a customer, reach out via your ded
- [Email us](mailto:support@buildwithfern.com)
- [Book a demo](https://buildwithfern.com/book-demo)
</llms-only>

<llms-only>

## Frequently Asked Questions

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

📝 [vale] <FernStyles.Headings> reported by reviewdog 🐶
'Frequently Asked Questions' should use sentence-style capitalization.


### What is Fern?
Fern is a developer tooling platform that generates SDKs and documentation from your API definition. It supports OpenAPI, AsyncAPI, gRPC, and OpenRPC specs.

### What languages does Fern support for SDK generation?
Fern generates SDKs in TypeScript, Python, Go, Java, C# (.NET), PHP, Ruby, Swift, and Rust.

### How does Fern compare to writing SDKs by hand?
Fern generates idiomatic, production-ready SDKs automatically from your API spec, eliminating the need to write and maintain client libraries manually across multiple languages.

### Can I use Fern just for documentation, without SDKs?
Yes. Fern Docs is a standalone product. You can publish a documentation site from Markdown and an OpenAPI spec without generating any SDKs.

### Does Fern support custom domains?
Yes. You can serve your Fern docs from your own subdomain (e.g. `docs.example.com`) or a subpath (e.g. `example.com/docs`) using a custom domain or reverse proxy setup.

### Is Fern open source?
Fern's CLI and SDK generators are open source on GitHub. The hosted docs platform and dashboard are commercial products.

</llms-only>
21 changes: 21 additions & 0 deletions fern/products/sdks/introduction.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -288,3 +288,24 @@ Generate client libraries in multiple languages from your API definition.
- [C++](https://buildwithfern.com/book-demo?type=language-request): Request access for C++ SDK generation.
- [Kotlin](https://buildwithfern.com/book-demo?type=language-request): Request access for Kotlin SDK generation.
</llms-only>

<llms-only>

## Frequently Asked Questions

### What is Fern's SDK generator?
Fern's SDK generator reads your API definition (OpenAPI, AsyncAPI, gRPC, or OpenRPC) and produces idiomatic client libraries in multiple programming languages, ready to publish to package registries.

### Which package registries does Fern publish SDKs to?
Fern can publish SDKs to npm (TypeScript), PyPI (Python), Maven Central (Java), NuGet (.NET), pkg.go.dev (Go), RubyGems (Ruby), and Packagist (PHP).

### How do I keep my SDKs up to date when my API changes?
Fern integrates with GitHub Actions. When you update your API spec and merge a pull request, Fern automatically regenerates and publishes updated SDKs to your configured package registries.

### Does Fern support pagination and retries in generated SDKs?
Yes. Fern SDKs include built-in support for auto-pagination, retries with exponential backoff, idempotency headers, and OAuth token refresh out of the box.

### Can I add custom code to a Fern-generated SDK?
Yes. Fern supports augmenting generated SDKs with custom code, so you can add helper methods, custom auth logic, or other extensions without losing them on regeneration.

</llms-only>
Loading