apps/docs/README.md
Documentation for Zitadel, built with Fumadocs and Next.js.
Ensure you have followed the root quick start to set up dependencies.
Start the development server:
pnpm nx run @zitadel/docs:dev
The site will be available at http://localhost:3000.
Key scripts for documentation workflows:
| Script | Description |
|---|---|
dev | Starts the development server. |
build | Builds the production application. |
fetch:remote-content | Fetches remote tags and referenced content. |
generate | Runs all generation steps (fetch:remote-content, generate:proto-docs, generate:api-reference, generate:index-pages). |
check:links | Validates content integrity (broken links, missing frontmatter, schema errors). |
check-types | Validates typescript types. |
test | Runs all validation steps (check-types, check:links). |
lint | checks for code style and syntax errors (ESLint). |
clean | Cleans the build output and generated files. |
pnpm lint to check for syntax and style issues in JS/TS/MDX files.pnpm check:links to validate content structure, including:
title)The docs build process automatically handling the following steps via generate:
_filename.mdx for content embedded in other pages (not indexed individually).file property in code blocks to embed code from the repo.Refer to the Google Developer Style Guide for general guidelines.
All documentation content is located in the content directory. Note that the system strictly accepts only .mdx files.
To add a new page:
.mdx file in the appropriate subdirectory of content.lib/sidebar-data.ts to make it accessible in the navigation.Use docs(<scope>): <short summary> for PR titles.
Pass quality checks before submitting:
pnpm nx run @zitadel/docs:build
pnpm nx run @zitadel/docs:check:links
You can also run specific steps individually:
pnpm fetch:remote-contentpnpm generate:api-reference