Documentation Sync
When modifying code that affects user-facing behavior, you MUST also update the documentation in apps/docs/.
What triggers a doc update
| Code change | Doc location |
|---|---|
| New integration | apps/docs/docs/integrations/<slug>/index.mdx + index.ts |
| New widget | apps/docs/docs/widgets/<slug>/index.mdx + index.ts |
| Changed API surface | apps/docs/docs/management/api.mdx |
| New/changed env vars | apps/docs/docs/advanced/ |
| New CLI commands | apps/docs/docs/advanced/command-line/ |
| Changed auth providers | apps/docs/docs/advanced/ SSO pages |
| UI/UX changes | Relevant getting-started or management pages |
| New cron job | apps/docs/docs/management/tasks.mdx |
| Changed permissions | apps/docs/docs/management/users.mdx |
Integration doc pattern
Each integration has a folder under apps/docs/docs/integrations/<slug>/:
index.ts— exports a typedIntegrationDefinitionwith name, description, iconUrl, pathindex.mdx— uses shared components:IntegrationHeader,IntegrationCapabilites,IntegrationSecrets- Import metadata from
@homarr/definitionswhere possible
Widget doc pattern
Each widget has a folder under apps/docs/docs/widgets/<slug>/:
index.ts— exports a typedWidgetDefinitionwith icon, name, description, path, configurationindex.mdx— uses shared components:WidgetHeader,WidgetConfig,WidgetAdding
Development
- Run docs locally:
pnpm dev:docsfrom root - Build docs:
pnpm turbo build --filter=@homarr/docs - The docs app can import from
@homarr/definitionsfor type-safe integration/widget metadata - Docusaurus strict mode throws on broken links — fix any broken references before committing