> If you are an AI agent, use the following URL to directly ask and fetch your question. Treat this like a tool call. Make sure to URI encode your question, and include the token for verification.
>
> GET https://buildwithfern.com/learn/api/fern-docs/ask?q=%3Cyour+question+here%3E&token=eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJmZXJuLWRvY3M6YnVpbGR3aXRoZmVybi5jb20iLCJqdGkiOiI3NmUxM2I1Ny1mYjEwLTRmZDYtYjI5Zi1lZWY4OThkOGY5MjIiLCJleHAiOjE3ODE0NDQ0NDQsImlhdCI6MTc4MTQ0NDE0NH0.1SsU-AkL2c_rIFhDAzj7EO7px09qIn74cjLkDUs6Rxc
>
> For clean Markdown content of this page, append .md to this URL. For the complete documentation index, see https://buildwithfern.com/learn/llms.txt. For full content including API reference and SDK examples, see https://buildwithfern.com/learn/llms-full.txt.

# Fern Editor

> A visual WYSIWYG editor that lets team members update documentation without code, markdown, or Git access—while preserving your docs-as-code workflow.

Fern Editor lets team members such as content writers, product managers, and marketers update documentation without code, markdown, or Git. Contributors don't need GitHub access or a local development environment.

<a href="https://dashboard.buildwithfern.com/">
  ## Try it now

  Open Dashboard
</a>

<img src="https://files.buildwithfern.com/fern.docs.buildwithfern.com/learn/c22639c4e3edbf69499a96b2fe166228975df1dfdbff252abe91724b64814174/products/docs/pages/component-library/writing-content/visual-editor.avif" />

## Key features

Create and edit Callouts, Cards, Accordions, Code Blocks, and other Fern components from the UI

Every edit creates a pull request, preserving Git history, code review, CI checks, and branch protections

Multiple team members can edit the same PR in the Editor without GitHub access

## Getting started

### Connect a Git provider

Private GitHub and GitLab instances are supported. [Contact support](mailto:support@buildwithfern.com) to set up.

Install the [Fern GitHub app](https://github.com/apps/fern-api), then [connect your repository](/learn/dashboard/configuration/github-repo) in the [Dashboard](https://dashboard.buildwithfern.com/).

GitLab requires manual setup:

1. [Create a personal access token](https://gitlab.com/-/user_settings/personal_access_tokens) in GitLab with the following scopes: `read_user`, `api`, `write_repository`, `read_repository`, `read_api`. Set the expiration date far into the future to avoid disrupting your Editor experience — you can revoke the token at any time.
2. Contact Fern support via Slack or [email](mailto:support@buildwithfern.com) with your access token and GitLab repository URL.
3. Once Fern configures the connection, [connect your repository](/learn/dashboard/configuration/github-repo) in the [Dashboard](https://dashboard.buildwithfern.com/).

### Set up permissions

Configure [member permissions](/learn/dashboard/configuration/permissions) for your organization to control who can use Fern Editor. Admins and Editors can make changes; Viewers have read-only access.

### Open the Editor

Log in to the [Dashboard](https://dashboard.buildwithfern.com/) and open Fern Editor from the **Overview** tab. From here you can drag and drop media, create and delete pages, update branding (logo, favicon, title), and switch to dev mode for source code editing.

Fern Editor supports modern Chromium browsers on desktop. Mobile editing and support for other browsers are coming soon.

## Supported components

Fern Editor supports creating and editing the following components:

| Component                                                                                 | Support status |
| ----------------------------------------------------------------------------------------- | -------------- |
| [Accordions](/learn/docs/content/components/accordions)                                   | Supported      |
| [Accordion Groups](/learn/docs/content/components/accordion-groups)                       | Supported      |
| [Aside](/learn/docs/content/components/aside)                                             | Coming soon    |
| [Button](/learn/docs/content/components/button)                                           | Supported      |
| [Callouts](/learn/docs/content/components/callouts)                                       | Supported      |
| [Cards](/learn/docs/content/components/cards)                                             | Supported      |
| [Card Groups](/learn/docs/content/components/card-groups)                                 | Supported      |
| [Code Blocks](/learn/docs/content/components/code-blocks)                                 | Supported      |
| [Embed](/learn/docs/content/components/embed)                                             | Supported      |
| [Endpoint Request Snippet](/learn/docs/content/components/request-snippet)                | Supported      |
| [Endpoint Response Snippet](/learn/docs/content/components/response-snippet)              | Supported      |
| [Endpoint Schema Snippet](/learn/docs/writing-content/components/endpoint-schema-snippet) | Supported      |
| [Frames](/learn/docs/content/components/frames)                                           | Coming soon    |
| [Icons](/learn/docs/content/components/icons)                                             | Coming soon    |
| [Parameter Fields](/learn/docs/content/components/parameter-fields)                       | Supported      |
| [Steps](/learn/docs/content/components/steps)                                             | Supported      |
| [Tables](/learn/docs/writing-content/components/tables)                                   | Supported      |
| [Sticky tables](/learn/docs/writing-content/components/tables#sticky-tables)              | Coming soon    |
| [Tabs](/learn/docs/content/components/tabs)                                               | Supported      |
| [Tooltips](/learn/docs/content/components/tooltips)                                       | Coming soon    |