Migration

Migrate from Fern to Sourced: migration checklist

Fern already combines docs and SDKs, so a migration to Sourced has to be strict. The goal is not simply to regenerate output. The goal is to preserve customer-facing SDK and docs behavior while moving release control into Sourced.

Fern is a strong fit for teams that want a mature docs-as-code product and a broader SDK platform. Sourced is a fit when the immediate job is OpenAPI to TypeScript/Python SDK previews, hosted docs review sites, llms.txt, MCP/agent handoff, npm/PyPI readiness, and launch checks.

Pricing checkpoint

As of August 31, 2026, Fern's public pricing separates docs plans and SDK/platform conversations, with a free docs plan and paid team options. Sourced keeps evaluation free: unlimited previews and up to 2 hosted noindex docs review sites. Launch is $99/month per API project for production docs on Sourced-controlled URLs, repo sync, registry readiness/approved publishing, and team review. Scale is $349/month and adds more API projects, more hosted docs sites, more team capacity, and production custom domains.

Inventory

Find:

  • fern.config.json, generators.yml, and OpenAPI source.
  • Generated SDK package names, import paths, and auth environment variables.
  • Docs URLs, versions, product switchers, and custom domain.
  • MDX or custom React components.
  • CI workflows that publish packages or docs.
  • Any generated MCP or agent instructions.

What to compare

Compare old Fern output to Sourced preview output:

  • TypeScript and Python method names.
  • Constructor shape and auth setup.
  • Pagination helpers.
  • Error classes.
  • README examples.
  • Package metadata.
  • Docs route structure.
  • llms.txt quality.
  • MCP tool names and input schemas.
  • Skill-file safety instructions.

Prerequisites

Before using Sourced, confirm:

  • a signed-in Sourced workspace approved by the API owner
  • canonical OpenAPI access
  • Fern docs and SDK package source access
  • package names, import paths, and auth environment variables
  • redirect map and docs domain owner
  • local Node 20+, pnpm 10+, and Python 3.10+ for proof checks

The upload path is /dashboard/projects once the API owner confirms the OpenAPI file is safe to upload.

Hard part: Fern config is product logic

Fern config often carries real API-design decisions: grouped resources, SDK names, pagination choices, docs navigation, and per-language settings. Treat those as migration inputs, not decoration. If a Sourced preview uses a different method name or resource grouping, record the difference and decide whether it is acceptable before any package publish.

Manual path

Use Fern's config and generator output as the old contract. Generate new SDKs with your chosen tool, then diff method surfaces and docs routes manually. This requires careful package smoke testing before npm or PyPI publish.

Sourced path

After the API owner confirms the OpenAPI file is safe to upload, use Sourced preview artifacts:

  • Client packages for TypeScript and Python.
  • Docs preview and WYSIWYG guide surface.
  • Standalone skill-file generator and MCP server generator when agent artifacts are needed.
  • Release readiness for GitHub, npm, PyPI, private noindex docs URLs, DNS readiness, and explicitly approved production custom-domain cutover.

Do not turn on real publishing until a human accepts the compatibility report and approves the exact repo, branch, package, version, docs domain, DNS record, and indexability change.

Agent prompt

Migrate our Fern API docs and SDK workflow to Sourced.
Inventory fern.config.json, generators.yml, OpenAPI, package names, docs routes, CI, and custom domain.
Confirm Sourced workspace access, old SDK package/repo access, package names/import paths/auth env vars, redirect map, DNS owner approval, and local Node/pnpm/Python proof tools.
Compare old and new SDK public surfaces and docs routes.
Use Sourced previews after approval for client packages and docs; use separate Sourced skill-file and MCP tools if needed.
Do not publish packages, change DNS, or upload private API material until the owner approves that exact action. Produce an approval checklist.

Fit check

If the team needs many SDK languages immediately, Fern may remain the better generator. If the team wants TypeScript and Python packages, docs previews, standalone skill/MCP tools, and approval-gated release checks around one OpenAPI workflow, Sourced is a fit.

Compare Fern pricing, read the Stainless alternatives guide, or start free and upgrade only when publishing or production docs go live.