Developer-first documentation with diagrams-as-code.
This workspace combines Fumadocs v15, Next.js, and Kroki-backed diagram rendering. The default development flow is local-first, so you can run the docs without Docker and avoid rebuilding containers on every change.
- Node.js 22+
- pnpm 10+
cd LearningPlatformDocs
pnpm install
pnpm devVisit http://localhost:3000.
Local development uses hot reload, and diagrams default to the public Kroki instance at https://kroki.io, so Docker is not required.
Press Ctrl+C in the terminal running pnpm dev.
If you want the full containerized stack with a self-hosted Kroki service:
cd LearningPlatformDocs
pnpm dev:dockerTo stop it:
cd LearningPlatformDocs
pnpm stop:dockerpnpm dev- start the docs app locally with Next.js hot reloadpnpm dev:docker- start the Docker-based docs + Kroki stackpnpm build:openapi- regenerate OpenAPI-derived docs contentpnpm lint- run workspace lintingpnpm typecheck- run workspace type checking
The docs app supports these environment variables:
KROKI_BASE_URL- Kroki server URL. Defaults tohttps://kroki.io.API_RES_PATH- directory used for OpenAPI resources. Defaults toopenapi.IS_PROD_STATIC- enable static export mode when set totrue.GITHUB_PAGES_REPO_NAME- repository name used for GitHub Pages base paths.
If you want to run your own Kroki locally without Docker Compose, set:
KROKI_BASE_URL=http://localhost:8000LearningPlatformDocs/
|-- apps/
| `-- docs/ # Next.js + Fumadocs app
|-- scripts/ # Docker helper scripts
|-- docker-compose.dev.yml # Optional docs + kroki stack
`-- package.json # Workspace scripts
- Check that
KROKI_BASE_URLpoints to a reachable Kroki server. - If you are using the default public endpoint, verify outbound network access.
- Confirm the diagram language exists in
LANG_MAPinsideapps/docs/src/app/api/diagram/route.ts.
cd LearningPlatformDocs
pnpm typecheck