This is what an AI/RAG pipeline sees when it indexes this page — the same output served at https://camelmind-docs.vercel.app/api/llms/getting-started/migrate-from-docusaurus-mkdocs.Back to doc

Rendered doc

Migrate from Docusaurus or MkDocs

Migrate an existing Docusaurus or MkDocs site to CamelMind with one command, then review and adapt the result.

Migrate an existing Docusaurus or MkDocs documentation site to a new CamelMind project with one command.

The migration tool detects your documentation framework, converts your Markdown files to MDX, and builds your CamelMind navigation from your existing sidebar or navigation structure. Your original repository stays as is in the same location.

Tip

If you are migrating a highly customized site, do not try to reproduce every Docusaurus or MkDocs customization all at once. Start with your content and information architecture, validate the migrated site, then replace framework-specific customizations with CamelMind features where possible.


Before you start

Before you migrate a Docusaurus or MkDocs repository to CamelMind, verify these migration prerequisites:

  • Node.js 20 or later
  • A local copy of your Docusaurus or MkDocs repository
  • A clean or committed working tree in your source repository

You do not need to install CamelMind before starting the migration. The migration command uses npx to fetch the latest CamelMind version automatically.


Run the migration

From the directory containing your documentation repository, run:

bash
npx camelmind@latest migrate path/to/your-docs-repo

CamelMind automatically detects:

  • Docusaurus from sidebars.js, sidebars.mjs, or sidebars.cjs
  • MkDocs from mkdocs.yml

The migration creates a new CamelMind project next to your source repository:

text
parent-directory/
├── your-docs-repo/
└── your-docs-repo-camelmind/

The source repository remains unchanged.

Preview a CamelMind migration

Before migrating your Docusaurus or MkDocs repository, use the CamelMind migrate command with --dry-run to preview the migration without creating or modifying files.

bash
npx camelmind@latest migrate path/to/your-docs-repo --dry-run

The --dry-run option shows what the CamelMind migration would do while leaving your source repository unchanged.


Review the migration report

Every migration ends with a report. The report identifies:

  • Markdown files converted to MDX
  • Navigation entries created
  • CSS and other assets carried over
  • Items that require manual attention

For example, the report includes a navigation entry if CamelMind cannot resolve it to a source file.

Review the items need manual attention section before moving on. These items do not necessarily mean the migration failed — they identify places where the source site's structure or customization requires a decision.


Run your migrated CamelMind site

After migrating your Docusaurus or MkDocs repository, change to the new CamelMind project directory to run your site:

bash
cd ../your-docs-repo-camelmind

If the migration did not install dependencies, run:

bash
npm install

Then start the development server:

bash
npm run dev

Open http://localhost:3000 and review the migrated site.


For most sites, we recommend migrating in stages rather than trying to reproduce the existing site on the first run.

1

Migrate the content

Start with the Markdown content and basic navigation.

Do not worry about making the site look like the original site yet. The goal is to establish that your documentation content migrated.

2

Review the navigation

Compare your existing Docusaurus sidebar or MkDocs navigation with the generated nav/nav.yml. Check for missing/misplaced pages, broken/external links, custom navigation entries, and redirect rules.

Fix the navigation before spending time on visual customizations.

3

Review your content

Open representative pages throughout the site. Pay particular attention to pages that use:

  • Custom Markdown syntax
  • MDX
  • Embedded components
  • HTML
  • Tabs
  • Admonitions
  • Code blocks
  • Images
  • Custom links
  • Frontmatter

The migration converts Markdown files to MDX, but framework-specific syntax may require manual changes.

4

Replace customizations

Once the content and navigation are working, review your existing customizations.

This is where it is better to adapt the documentation to CamelMind rather than recreate the old framework implementation.

5

Validate the complete site

Before switching to CamelMind, compare the migrated site with your existing documentation.

Check navigation, links, images, search, page metadata, custom content, and important URLs.

Keep the original site available until you've completed your validation.


Migrate customizations

Docusaurus and MkDocs sites often accumulate custom components, plugins, CSS, scripts, and theme modifications over time.

The migration tool imports content and structure, not framework-specific customizations. Evaluate if custom code is still needed before recreating it.

Docusaurus sites may contain custom React components used directly in MDX, for example:

mdx
<CustomProductCard product="api" />

Instead of automatically rebuilding the component, determine whether CamelMind already provides the functionality you need.

  • If the component provides a standard documentation pattern, replace it with the appropriate CamelMind component.
  • If it provides unique product functionality, evaluate whether that functionality is still necessary before rebuilding it.

Migrate a highly customized site

If your documentation site has significant customizations, migrate a representative portion of the site first. For example, choose:

  • A typical documentation page
  • A page with custom components
  • A page with code examples
  • A page with images
  • A page using special navigation
  • Your home or landing page

Run the migration and use the result to determine what you need to adapt. Once you are comfortable with the approach, migrate the complete repository.

This is safer than trying to reproduce a highly customized site in a single migration pass.


Migration options

OptionDescription
--out <path>Specify the output directory. Defaults to <repo-name>-camelmind, next to the source repository.
--docs <path>Specify the documentation directory relative to the source repository. Defaults to docs.
--sidebars <path>Force Docusaurus mode and specify a sidebars.js, .mjs, or .cjs file.
--no-installSkip npm install in the new project.
--dry-runPreview the migration without writing files.
-y, --yesSkip the overwrite confirmation when the output directory already exists.

Troubleshooting

CamelMind does not detect my site

Make sure your repository contains the expected configuration file:

  • Docusaurus: sidebars.js, sidebars.mjs, or sidebars.cjs
  • MkDocs: mkdocs.yml

If necessary, use --sidebars to explicitly specify the Docusaurus sidebar configuration.

Some navigation entries need manual attention

Review the migration report and the generated nav/nav.yml. A navigation entry requires manual attention if CamelMind cannot automatically resolve its source page.

Check the original sidebar or mkdocs.yml configuration and make the appropriate adjustment in nav/nav.yml.

A custom component does not work

Replace broken components with native CamelMind equivalents, or rebuild only essential custom logic directly for CamelMind.

My site has many customizations

Migrate a representative sample of pages first to establish your pattern before converting the entire site.


Get help with your migration

Every documentation site is different, and heavily customized Docusaurus and MkDocs sites may require some additional work.

If you run into an issue during migration, use the feedback widget in CamelMind to reach out for support. When contacting us, include:

  • Whether you're migrating from Docusaurus or MkDocs
  • What you're trying to migrate
  • Any relevant customization or plugin
  • The migration command you ran
  • The relevant portion of the migration report
  • Any error message you encountered

This information helps us understand your migration and recommend the best approach, and helps us improve the migration experience in future releases.

What the AI sees

1> For a complete documentation index, see /llms.txt. To read any public page as Markdown, append .md to the URL.
2 
3Migrate an existing Docusaurus or MkDocs documentation site to a new CamelMind project with one command.
4 
5The migration tool detects your documentation framework, converts your Markdown files to MDX, and builds your CamelMind navigation from your existing sidebar or navigation structure. Your original repository stays as is in the same location.
6 
7<Callout type="tip">
8If you are migrating a highly customized site, do not try to reproduce every Docusaurus or MkDocs customization all at once. Start with your content and information architecture, validate the migrated site, then replace framework-specific customizations with CamelMind features where possible.
9</Callout>
10 
11---
12 
13## Before you start
14 
15Before you migrate a Docusaurus or MkDocs repository to CamelMind, verify these migration prerequisites:
16 
17- Node.js 20 or later
18- A local copy of your Docusaurus or MkDocs repository
19- A clean or committed working tree in your source repository
20 
21You do not need to install CamelMind before starting the migration. The migration command uses `npx` to fetch the latest CamelMind version automatically.
22 
23---
24 
25## Run the migration
26 
27From the directory containing your documentation repository, run:
28 
29```bash
30npx camelmind@latest migrate path/to/your-docs-repo
31```
32 
33CamelMind automatically detects:
34 
35- **Docusaurus** from `sidebars.js`, `sidebars.mjs`, or `sidebars.cjs`
36- **MkDocs** from `mkdocs.yml`
37 
38The migration creates a new CamelMind project next to your source repository:
39 
40```text
41parent-directory/
42├── your-docs-repo/
43└── your-docs-repo-camelmind/
44```
45 
46The source repository remains unchanged.
47 
48### Preview a CamelMind migration
49 
50Before migrating your Docusaurus or MkDocs repository, use the CamelMind `migrate` command with `--dry-run` to preview the migration without creating or modifying files.
51 
52```bash
53npx camelmind@latest migrate path/to/your-docs-repo --dry-run
54```
55 
56The `--dry-run` option shows what the CamelMind migration would do while leaving your source repository unchanged.
57 
58---
59 
60## Review the migration report
61 
62Every migration ends with a report. The report identifies:
63 
64- Markdown files converted to MDX
65- Navigation entries created
66- CSS and other assets carried over
67- Items that require manual attention
68 
69For example, the report includes a navigation entry if CamelMind cannot resolve it to a source file.
70 
71Review the **items need manual attention** section before moving on. These items do not necessarily mean the migration failed — they identify places where the source site's structure or customization requires a decision.
72 
73---
74 
75## Run your migrated CamelMind site
76 
77After migrating your Docusaurus or MkDocs repository, change to the new CamelMind project directory to run your site:
78 
79```bash
80cd ../your-docs-repo-camelmind
81```
82 
83If the migration did not install dependencies, run:
84 
85```bash
86npm install
87```
88 
89Then start the development server:
90 
91```bash
92npm run dev
93```
94 
95Open [http://localhost:3000](http://localhost:3000) and review the migrated site.
96 
97---
98 
99## Recommended migration workflow
100 
101For most sites, we recommend migrating in stages rather than trying to reproduce the existing site on the first run.
102 
103<Steps>
104<Step n={1} title="Migrate the content">
105 
106Start with the Markdown content and basic navigation.
107 
108Do not worry about making the site look like the original site yet. The goal is to establish that your documentation content migrated.
109 
110</Step>
111<Step n={2} title="Review the navigation">
112 
113Compare your existing Docusaurus sidebar or MkDocs navigation with the generated `nav/nav.yml`. Check for missing/misplaced pages, broken/external links, custom navigation entries, and redirect rules.
114 
115Fix the navigation before spending time on visual customizations.
116 
117</Step>
118<Step n={3} title="Review your content">
119 
120Open representative pages throughout the site. Pay particular attention to pages that use:
121 
122- Custom Markdown syntax
123- MDX
124- Embedded components
125- HTML
126- Tabs
127- Admonitions
128- Code blocks
129- Images
130- Custom links
131- Frontmatter
132 
133The migration converts Markdown files to MDX, but framework-specific syntax may require manual changes.
134 
135</Step>
136<Step n={4} title="Replace customizations">
137 
138Once the content and navigation are working, review your existing customizations.
139 
140This is where it is better to **adapt the documentation to CamelMind rather than recreate the old framework implementation**.
141 
142</Step>
143<Step n={5} title="Validate the complete site">
144 
145Before switching to CamelMind, compare the migrated site with your existing documentation.
146 
147Check navigation, links, images, search, page metadata, custom content, and important URLs.
148 
149Keep the original site available until you've completed your validation.
150 
151</Step>
152</Steps>
153 
154---
155 
156## Migrate customizations
157 
158Docusaurus and MkDocs sites often accumulate custom components, plugins, CSS, scripts, and theme modifications over time.
159 
160The migration tool imports content and structure, not framework-specific customizations. Evaluate if custom code is still needed before recreating it.
161 
162=== "Custom React components"
163 
164Docusaurus sites may contain custom React components used directly in MDX, for example:
165 
166```mdx
167<CustomProductCard product="api" />
168```
169 
170Instead of automatically rebuilding the component, determine whether CamelMind already provides the functionality you need.
171 
172- If the component provides a standard documentation pattern, replace it with the appropriate [CamelMind component](/getting-started/mdx-components).
173- If it provides unique product functionality, evaluate whether that functionality is still necessary before rebuilding it.
174 
175=== "MkDocs plugins"
176 
177MkDocs sites often rely on plugins to add functionality to Markdown processing, navigation, search, or page generation. For each plugin, identify what it actually provides to the reader. Then:
178 
1791. Check whether CamelMind already provides the same capability.
1802. Look for a simpler CamelMind-native implementation.
1813. Recreate the plugin behavior only if you still require the functionality.
182 
183This avoids carrying framework-specific dependencies into your new site unnecessarily.
184 
185=== "Custom CSS and themes"
186 
187If your existing site has extensive CSS overrides, the migration may carry over relevant CSS.
188 
189Start with the migrated site and identify the visual customizations that matter to your users — brand colors, typography, logos, layout, callouts, code blocks, navigation, and custom page elements. Then adapt those elements to CamelMind rather than reproducing the entire Docusaurus or MkDocs theme.
190 
191=== "Custom navigation"
192 
193The migration uses your existing Docusaurus sidebar or MkDocs navigation to generate `nav/nav.yml`.
194 
195If your existing navigation contains custom logic, generated entries, or framework-specific behavior, review the generated navigation manually. Prefer [CamelMind's navigation configuration](/getting-started/navigation) over carrying forward scripts that existed only to generate the old framework's navigation.
196 
197=== "Custom landing pages"
198 
199Docusaurus and MkDocs sites sometimes use custom React pages or theme templates for their home page. Treat the landing page as a separate design task:
200 
2011. Identify the content and actions users need.
2022. Recreate that experience in CamelMind.
2033. Remove framework-specific code that no longer serves a purpose.
204 
205=== "Build scripts"
206 
207Review custom build scripts, plugins, and CI steps after the initial migration. Some scripts may no longer be necessary because CamelMind handles the underlying functionality. For each script, ask:
208 
209- Does this still solve a problem?
210- Is this required for the content, or only for the old framework?
211- Can CamelMind handle this natively?
212- Can you simplify the workflow?
213 
214When migrating existing build scripts to a CamelMind project, convert them to TypeScript `.ts` files in `scripts/` to match the rest of the application code (`lib/, camelmind.config.ts`). Keep a plain `.sh` wrapper only when you need to glue together a few shell commands around a script.
215 
216===
217 
218---
219 
220## Migrate a highly customized site
221 
222If your documentation site has significant customizations, migrate a representative portion of the site first. For example, choose:
223 
224- A typical documentation page
225- A page with custom components
226- A page with code examples
227- A page with images
228- A page using special navigation
229- Your home or landing page
230 
231Run the migration and use the result to determine what you need to adapt. Once you are comfortable with the approach, migrate the complete repository.
232 
233This is safer than trying to reproduce a highly customized site in a single migration pass.
234 
235---
236 
237## Migration options
238 
239| Option | Description |
240|---|---|
241| `--out <path>` | Specify the output directory. Defaults to `<repo-name>-camelmind`, next to the source repository. |
242| `--docs <path>` | Specify the documentation directory relative to the source repository. Defaults to `docs`. |
243| `--sidebars <path>` | Force Docusaurus mode and specify a `sidebars.js`, `.mjs`, or `.cjs` file. |
244| `--no-install` | Skip `npm install` in the new project. |
245| `--dry-run` | Preview the migration without writing files. |
246| `-y`, `--yes` | Skip the overwrite confirmation when the output directory already exists. |
247 
248---
249 
250## Troubleshooting
251 
252<Details summary="CamelMind does not detect my site">
253 
254Make sure your repository contains the expected configuration file:
255 
256- Docusaurus: `sidebars.js`, `sidebars.mjs`, or `sidebars.cjs`
257- MkDocs: `mkdocs.yml`
258 
259If necessary, use `--sidebars` to explicitly specify the Docusaurus sidebar configuration.
260 
261</Details>
262 
263<Details summary="Some navigation entries need manual attention">
264 
265Review the migration report and the generated `nav/nav.yml`. A navigation entry requires manual attention if CamelMind cannot automatically resolve its source page.
266 
267Check the original sidebar or `mkdocs.yml` configuration and make the appropriate adjustment in `nav/nav.yml`.
268</Details>
269 
270<Details summary="A custom component does not work">
271 
272Replace broken components with native CamelMind equivalents, or rebuild only essential custom logic directly for CamelMind.
273</Details>
274 
275<Details summary="My site has many customizations">
276 
277Migrate a representative sample of pages first to establish your pattern before converting the entire site.
278</Details>
279 
280---
281 
282## Get help with your migration
283 
284Every documentation site is different, and heavily customized Docusaurus and MkDocs sites may require some additional work.
285 
286If you run into an issue during migration, use the [feedback widget](/features/feedback-widget) in CamelMind to reach out for support. When contacting us, include:
287 
288- Whether you're migrating from Docusaurus or MkDocs
289- What you're trying to migrate
290- Any relevant customization or plugin
291- The migration command you ran
292- The relevant portion of the migration report
293- Any error message you encountered
294 
295This information helps us understand your migration and recommend the best approach, and helps us improve the migration experience in future releases.

Issues (2)

Warnings (1)

Notes (1)