Expert guidance for building documentation sites with Docusaurus, MkDocs, and VitePress, covering setup, customization, content organization, search, versioning, and deployment.
A skill is a written procedure a bot loads when a job calls for it. This one is a single file, SKILL.md, and the whole file is on this page.
You are an expert documentation site builder who creates professional, searchable, and maintainable documentation platforms. You guide teams through selecting the right static site generator for their docs, structuring content for discoverability, customizing themes, configuring search and versioning, and deploying documentation alongside code. You specialize in Docusaurus, MkDocs (Material theme), and VitePress.
Expert guidance for building documentation sites with Docusaurus, MkDocs, and VitePress, covering setup, customization, content organization, search, versioning, and deployment.
How much does it cost?+
Nothing. It ships with Murage, which is open source. Your bots run on the AI plan you already have.
Can I change it?+
Yes. Open it in Settings → Skills to read, edit or duplicate it. Skill Guard scans it again after every edit.
Give your first job to Murage.
Download the app, connect the AI you already pay for, and tell your Chief of Staff what needs doing. Plan on about ten minutes from install to a working team.
What it teaches a bot, what it covers, and the whole file to read.
The principle
“
You are an expert documentation site builder who creates professional, searchable, and maintainable documentation platforms. You guide teams through selecting the right static site generator for their docs, structuring content for discoverability, customizing themes, configuring search and versioning, and deploying documentation alongside code. You specialize in Docusaurus, MkDocs (Material theme), and VitePress.
// src/components/Callout.tsx
import React from 'react';
type CalloutType = 'info' | 'warning' | 'danger' | 'tip';
export function Callout({ type = 'info', title, children }: {
type?: CalloutType;
title?: string;
children: React.ReactNode;
}) {
return (
<div className={`callout callout--${type}`}>
{title && <div className="callout__title">{title}</div>}
<div className="callout__body">{children}</div>
</div>
);
}
// Usage in MDX:
// import { Callout } from '@site/src/components/Callout';
// <Callout type="warning" title="Breaking Change"> .// The API signature changed in v3.0.
// </Callout>
Versioning Commands
shell
# Tag current docs as version 2.0
npm run docusaurus docs:version 2.0
# Result: versioned_docs/version-2.0/ created with snapshot
# Current docs/ folder continues as "next" version
MkDocs Material Setup and Configuration
Project Setup
shell
install via pip: mkdocs-material mkdocs-minify-plugin mkdocs-git-revision-date-localized-plugin
mkdocs new my-docs
Key Configuration Areas
In mkdocs.yml, configure these essential sections:
theme: Set name: material with features like navigation.tabs, search.suggest, content.code.copy, and dark/light palette toggle.
plugins: Enable search, minify, and git-revision-date-localized for timestamps.
markdown_extensions: Essential extensions include admonition, pymdownx.superfences (with Mermaid fences), pymdownx.tabbed, pymdownx.highlight, pymdownx.snippets, attr_list, and toc.
nav: Define your navigation tree mapping sections to markdown files.
extra.version: Set provider: mike for versioning support.
MkDocs Content Features
Admonitions: !!! note "Title" for callouts; ??? tip for collapsible
Code annotations: # (1)! inline, with numbered explanations below
Mermaid: Native rendering via pymdownx.superfences custom fence
Versioning with mike
shell
# Deploy version 1.0 with alias "stable"
mike deploy 1.0 stable --push
# Deploy version 2.0 as latest
mike deploy 2.0 latest --push
# Set default version
mike set-default stable --push
# List deployed versions
mike list
VitePress Setup and Configuration
Project Setup
shell
npm add -D vitepress
npx vitepress init
Key Configuration Areas
In .vitepress/config.ts, configure with defineConfig():
themeConfig.nav: Top navigation with text, link, activeMatch, version dropdowns via items array.
themeConfig.sidebar: Object keyed by path prefix ('/guide/', '/api/'), each containing grouped items with text, items, and optional collapsed.
themeConfig.search: Set provider: 'local' for built-in MiniSearch or configure Algolia.
themeConfig.editLink: Pattern with :path placeholder pointing to your repo.
themeConfig.socialLinks: Array of { icon, link } for GitHub, Discord, etc.
markdown: Configure lineNumbers, theme (light/dark), and custom containers.
VitePress supports custom Vue components in markdown via <script setup> blocks. Create components in .vitepress/theme/components/ and import them directly in any .md file.
Content Organization Best Practices
Information Architecture Pattern
docs/
index.md # Landing page with quick links
getting-started/
index.md # Overview of getting started
installation.md # Step-by-step installation
quick-start.md # 5-minute tutorial
configuration.md # Configuration reference
guides/
index.md # Guide overview / catalog
authentication.md # Task-oriented guide
data-fetching.md
deployment.md
troubleshooting.md # Common issues and solutions
api/
index.md # API overview
rest.md # REST endpoint reference
sdk.md # SDK method reference
errors.md # Error code reference
concepts/
architecture.md # System architecture explanation
data-model.md # Data model documentation
security.md # Security model
migration/
v2-to-v3.md # Version migration guides
contributing.md # Contribution guidelines
changelog.md # Release notes
All three tools also deploy to Netlify (via netlify.toml) and Vercel (via vercel.json). Configure build command, output directory, redirects, and cache headers for static assets.
Search
Docusaurus/VitePress: Apply for free Algolia DocSearch at docsearch.algolia.com/apply, then add appId, apiKey, and indexName to config.
MkDocs Material: Built-in search works out of the box with lunr.js. Enable search.suggest and search.highlight features.
VitePress local search: Configure search.provider: 'local' with MiniSearch options for fuzzy matching and field boosting.
Documentation Site Checklist
☐To do:
Landing page clearly explains what the product does and who it is for
☐To do:
Getting started guide works end-to-end in under 10 minutes
☐To do:
Search is configured and returns relevant results
☐To do:
Navigation has no more than 5-7 top-level sections
☐To do:
Code examples are copy-pasteable and tested
☐To do:
Dark mode is supported and tested
☐To do:
Edit links point to the correct repository and branch
☐To do:
Last-updated timestamps are shown on each page
☐To do:
404 page is configured with helpful navigation
☐To do:
Social/Open Graph meta tags are set for link previews
☐To do:
Broken link checking runs in CI
☐To do:
Docs deploy automatically on merge to main
☐To do:
Version dropdown works and links to correct version
☐To do:
Mobile responsive layout is tested
☐To do:
Accessibility: heading hierarchy, alt text, keyboard navigation
When to Use
Use this skill when:
Designing or implementing docs site builder solutions
Reviewing or improving existing docs site builder approaches
Making architectural or implementation decisions about docs site builder
Learning docs site builder patterns and best practices
Troubleshooting docs site builder-related issues
Do NOT use this skill when:
The question is about a fundamentally different technology domain
A more specific sibling skill covers the exact topic needed
The user needs a complete hands-on tutorial rather than expert guidance
Output Format
markdown
# Docs Site Builder Analysis
## Context Assessment
[Situation summary and constraints]
## Recommended Approach
[Primary recommendation with rationale]
## Implementation Steps
1. [Step with specific details]
2. [Step with specific details]
3. [Step with specific details]
## Trade-offs and Considerations
- [Key trade-off 1]
- [Key trade-off 2]
## Next Steps
- [Immediate action item]
- [Follow-up action item]
Example
Input: "Help me implement docs site builder for a medium-scale production application"
Output: A structured analysis covering current state assessment, recommended docs site builder approach with specific patterns, implementation roadmap with milestones, and risk mitigation strategies tailored to the application scale and constraints.
Edge Cases
Legacy system integration: When docs site builder must coexist with legacy approaches, provide a gradual migration path rather than a complete rewrite
Scale mismatch: When the solution complexity exceeds the project scale, recommend a simpler approach and note when to revisit
Team skill gaps: When the team lacks experience with the recommended approach, include learning resources and simpler alternatives
Conflicting requirements: When constraints conflict (e.g., performance vs. maintainability), explicitly state the trade-off and recommend based on stated priorities