Built with Fumadocs + Next.js. API reference pages are auto-generated from Python docstrings using griffe2md.
docs/
├── app/ # Next.js app routes (fumadocs)
├── content/docs/ # User guide content (.mdx files)
├── lib/ # Shared layout config
├── api-pages.yaml # API reference page definitions
├── generate-api-docs.py # Generates API reference .mdx from docstrings
├── vercel.json # Vercel deployment config
├── package.json
└── public/ # Static assets
- Node.js >= 18
- uv (Python package manager) for building API reference
- Python packages are installed automatically via
uv sync
cd docs
npm install
npm run devThis starts the Next.js dev server at http://localhost:3000. API reference pages won't be available unless you generate them first.
uv run --extra dev python docs/generate-api-docs.pyThis generates .mdx files into content/docs/api-ref/ from the definitions in api-pages.yaml.
cd docs
npm install
npm run build
npm startDeployed on Vercel at docs.skyrl.ai. The Vercel build command (in vercel.json):
- Installs
uv - Runs
generate-api-docs.py(generates API reference mdx files) - Runs
next build
Generated API reference .mdx files are gitignored — they're built fresh on each deploy.
- Create a
.mdxfile incontent/docs/ - Add frontmatter:
--- title: Your Page Title description: A brief description --- Your content here...
- Update
content/docs/meta.jsonif needed for navigation ordering
Edit api-pages.yaml to add pages. Each page group has a path and a list of pages with sections:
- path: skyrl
pages:
- slug: my-page
title: My Page
description: Description for the page.
sections:
- heading: Section Name
description: Optional section description.
objects:
- skyrl.module.ClassNameThen regenerate: uv run --extra dev python docs/generate-api-docs.py