Migrate from Mintlify
Mintlify repositories already contain Markdown or MDX, so the content move is usually direct. The
main migration work is turning docs.json navigation and hosted dashboard behavior into source
controlled Farming Labs and application configuration.
Prefer the Git repository
Use the repository connected to Mintlify. It preserves MDX, docs.json, snippets, assets, and
OpenAPI files more accurately than scraping the published website.
1. Inventory the source
Collect:
docs.jsonor legacymint.json- every referenced
.mdand.mdxpage images/, logos, favicons, fonts, and downloadable assetssnippets/and imported MDX partials- OpenAPI or AsyncAPI documents
- redirects and external navigation links
- custom React components and CSS
- dashboard-only authentication, analytics, domain, preview, and deployment settings
2. Map the files
| Mintlify | Farming Labs Docs |
|---|---|
.md and .mdx pages | Target docs content tree |
docs.json navigation | Directory hierarchy plus page order |
docs.json appearance | Theme factory and theme.ui overrides |
images/** and public assets | Target public/static directory |
snippets/** | Shared MDX components, copied content, or local imports |
| OpenAPI documents | apiReference configuration |
| redirects | Application or hosting redirects |
| hosted search and AI | search and ai configuration |
Keep a copy of docs.json as migration input, but do not rename it to docs.config.ts; their
configuration models are different.
3. Rebuild navigation
Mintlify navigation can contain pages, groups, tabs, dropdowns, anchors, languages, and external links. Translate it in this order:
- Turn groups into content directories.
- Move pages into the same order and add numeric
orderfrontmatter. - Use folder landing pages for group introductions.
- Recreate top-level tabs or product areas using routes and application navigation.
- Preserve external links in a custom sidebar or top navigation.
- Map each language tree to its target locale content root.
Do not rely on alphabetical ordering when docs.json specifies a deliberate sequence.
4. Convert frontmatter
Preserve portable fields such as title, description, icon, and OpenAPI operation metadata.
Review Mintlify-only fields individually. Represent an explicit source URL through the destination
file path or redirect rather than leaving unsupported routing fields in frontmatter.
Add Farming Labs fields where useful:
---
title: "Quickstart"
description: "Install the SDK and make the first request"
order: 2
related:
- /docs/installation
agent:
tokenBudget: 900
---5. Convert components
| Mintlify pattern | Target |
|---|---|
<Note>, <Tip>, <Warning>, <Info> | <Callout type="..."> |
<Tabs> and <Tab> | Built-in <Tabs> and <Tab> |
<Card> and <CardGroup> | Built-in cards or a registered custom component |
<CodeGroup> | Tabs containing code blocks |
<Accordion> and <AccordionGroup> | Details/summary or a registered component |
<Steps> and <Step> | Ordered headings/list or a registered component |
<Frame> | Figure, image, and caption markup |
<Snippet> or imported partial | Local MDX import or copied shared content |
Some component names overlap while their props differ. Verify every converted component with a production build instead of assuming identical APIs.
6. Move assets and API definitions
Copy public assets without changing their public URL when possible. Check absolute /images/...
paths, relative images, dark/light variants, video, and downloadable files.
For OpenAPI:
- Preserve the exact specification file or hosted URL.
- Configure
apiReference. - Compare operation routes and examples.
- Recreate API authentication and proxy behavior separately.
7. Recreate hosted behavior
Mintlify dashboard settings do not automatically move with the repository. Confirm and recreate:
- custom domain and DNS
- redirects
- authentication and protected pages
- analytics and consent behavior
- search
- Ask AI
- preview and branch deployment
- feedback and support links
Farming Labs page actions already expose Copy Markdown and Open in LLM when configured. Verify the
matching .md route rather than copying a Mintlify-specific page action component.
8. Validate and recover
Run the production build, then compare:
- every path listed in Mintlify navigation
- navigation labels, order, nesting, and language selection
- images, snippets, cards, tabs, accordions, and code groups
- OpenAPI operation pages
- redirects and authentication boundaries
- search, AI, analytics, and page actions
If an MDX component fails, replace one component family at a time and keep the page route stable. If a dashboard behavior was missed, delay the domain cutover until it has an explicit replacement.
Source references
Migrate Mintlify MDX, docs.json navigation, components, OpenAPI, and hosted integrations
How is this guide?