Migration guide
Migrate from Fern to Octri
Zip the repository that holds your fern folder and upload it. Your SDK languages, package name, spec, accent colour, logo and favicon come across, and every page in docs.yml is listed with its path.
Written by Octri · Checked 25 October 2026
What to have to hand
Octri reads Fern’s own files. A .zip of your repository or a single config file, up to 15 MB.
- fern/generators.yml
- fern/docs.yml
- fern/fern.config.json
- openapi.yml
What comes across
Each row is a field the Fern importer reads, and where it lands. Rows marked “By hand” are what is left for you.
| What | In Octri | From Fern |
|---|---|---|
| Spec | The project’s spec | api.specs in generators.yml |
| SDK languages | One SDK per generator | groups in generators.yml |
| Package name | SDK package name | output.package-name |
| Project name | Project name | organization in fern.config.json |
| Accent colour, logo, favicon | Docs appearance | docs.yml |
| Guide pages | Listed with their paths | navigation in docs.yml |
| Method names, pagination, streaming | Per-endpoint settings | x-fern extensions in your spec |
| Guide content | Page drafts, by Pull from GitHub | Your MDX files |
Step by step
Export your definition
Octri reads OpenAPI. If your API is written as a Fern Definition, run
fern exportfirst and keep the OpenAPI file it writes beside the fern folder.Bring it in
Sign up, choose Switch to Octri when onboarding asks for your spec, and drop in a .zip of the repository with the fern folder and the OpenAPI file.
Check the preview
Before anything is created, Octri shows what it found: the spec, each generator as an SDK language, the package name, your theme, and every page in docs.yml with its path. Anything it could not carry is named in a note under the preview, so you know what is left to do by hand.
Pull your guides from GitHub
Connect the repository that holds your fern folder, then choose Pull from GitHub in the API Studio Files panel. Pick up to 50 Markdown or MDX files at a time and each lands as a page draft, with its title, description, icon and badge taken from the frontmatter. Switch on sync on push and later edits in Git keep landing on the same pages.
Rename a few tags
Most Fern components render as written. The handful that differ are in the table below, and the page preview shows each one as you fix it.
Set up your SDKs
Check each language in SDK Studio, where the preview shows every call, including the method names your x-fern extensions set. Give each language the package name your users already install, and publish the first Octri release as a new major version, since method names and types can change. Every later spec change arrives in the SDK repository as a pull request.
Go live
Publish, then point your custom domain at Octri last, so readers keep the old site until the new one is ready. From then on every merged spec change rebuilds the draft of your docs, SDKs and MCP tools, ready for you to publish.
Tags that change name
Note, Tip, Info, Warning, Callout, Card, CardGroup, Accordion, AccordionGroup, Steps, Tabs, ParamField and Frame render as written.
| Fern | Octri |
|---|---|
| <CodeBlocks> | <CodeGroup> |
| <Files>, <Folder>, <File> | <FileTree> |
| <TabGroup> | <Tabs> |
| <Success>, <Error>, <Launch> | <Callout> |
Questions
No. Fern joined Postman in January 2026 and still reads the same fern folder, so the files you upload here are the same ones Fern builds from.
Still deciding?
The comparison sets Octri against Fern row by row, from each product’s own pages, with Octri’s prices beside them.
Other migration guides

Migrate from
Stainless
Targets, package name, repository and method names from stainless.yml and your spec.
Read the guideMigrate from
Speakeasy
Languages, SDK name, package name and x-speakeasy extensions from workflow.yaml and gen.yaml.
Read the guideMigrate from
liblab
Spec, languages, auth schemes and package name from liblab.config.json.
Read the guideMigrate from
Mintlify
Name, theme, spec and the page list from docs.json or mint.json, plus your MDX by Pull from GitHub.
Read the guideMigrate from
ReadMe
Your OpenAPI file and the Markdown that bi-directional sync keeps in Git.
Read the guideMigrate from
Redocly
Your bundled OpenAPI file, your Markdown in Git and the redirects in redocly.yaml.
Read the guideMigrate from
Scalar
The OpenAPI document from your Scalar registry or repository, and your Markdown and MDX guides.
Read the guideMigrate from
GitBook
The OpenAPI file your API blocks read and the Markdown that Git Sync keeps in your repository.
Read the guide
Migrate from
Stoplight
The OpenAPI file and Markdown articles in the repository your Stoplight project syncs with.
Read the guideMigrate from
Docusaurus
The OpenAPI file your plugin reads, your MDX pages and the layout in sidebars.js.
Read the guideMigrate from
APIMatic
The API definition your SDKs are built from and the Markdown guides in your portal.
Read the guideMigrate from
OpenAPI Generator
The spec you pass to -i and the package names in your generator config.
Read the guide
Try it on your own spec
Bring what you have from Fern on the Free plan and see your reference written and your first SDK built.