How Fern Docs work
Fern combines your API specifications, static Markdown files (like how-to guides and tutorials), media assets (images, videos, etc.), and custom settings defined in your docs.yml
file to generate a beautiful, interactive hosted documentation site.
This process is built around two major workflows: editing and deploying your documentation.
System architecture
This diagram shows the technical infrastructure that powers the documentation generation process.
Content workflows
You can update your documentation in two ways:
- Direct editing: Open a pull request directly in the GitHub repository that contains your docs (including your
docs.yml
configuration and Markdown files). - Visual Editor: Use Fern’s Visual Editor to modify your docs without touching code. The Fern GitHub App fetches the current state from your docs repository and passes it to the Visual Editor. When you submit changes, the Fern GitHub App automatically opens a pull request for review.
After the update goes through your review process, an approver can merge it.
Deployment workflows
When a pull request is merged into your docs repository, an automated pipeline transforms your content into a live documentation site and syncs it with your API changes in three main stages:
Trigger GitHub Action and fetch API specs
The merged PR triggers a Fern GitHub Action. The action retrieves your API specification from a separate repository using secure token authentication. The GitHub Action only has access to the specific docs repository from which it’s running.
Generate and process content
The Fern CLI runs fern generate --docs
to merge your API specs with documentation content. Behind the scenes, this process involves several key components:
- Input processing: The system combines your API specification files,
docs.yml
configuration file,.mdx
files, and media content. - Core infrastructure: The generation process runs on Fern’s AWS VPC infrastructure, where the Fern Docs microservice acts as the central orchestrator. This microservice coordinates content processing while connecting to a database for storing indexed content and S3 for asset storage.
- Content indexing: During generation, Fern automatically indexes your documentation content to enable search functionality across your entire site. This indexing integrates with external services: Algolia for advanced search capabilities, UpStash for caching, PostHog for analytics, TurboPuffer for vector storage, and AI inference services (Bedrock, Claude) for intelligent content processing.
Deploy to hosting platform
The processed content is deployed to Vercel as a documentation site with an embedded API explorer that allows users to test endpoints directly within the documentation.
Vercel Edge middleware handles the underlying routing, authentication, and performance optimization.
The deployed documentation site integrates with external systems like Cloudflare for CORS management and WorkOS for enterprise authentication.
Editing and deployment workflows
This diagram shows how content flows from editing to deployment.