Files
homarr/apps/docs
Thomas Camlong 905f795b56 fix(docs): disable swcHtmlMinimizer and fix broken links
The SWC HTML minifier rejects slightly invalid HTML that browsers
tolerate, breaking the build on every page. Disable it while keeping
all other Docusaurus Faster optimizations.

Also fix broken relative links in after-the-installation.mdx and
donate.mdx by using absolute paths.
2026-06-11 21:25:25 +02:00
..

Homarr Documentation (@homarr/docs)

The official homarr.dev documentation site, built with Docusaurus 3 and living inside the Homarr monorepo.

Why it's in the monorepo

Having documentation alongside the application code enables:

  • Two-way linking — the docs app imports from @homarr/definitions for type-safe integration/widget metadata, and the main app references doc paths via generated sitemap types
  • Atomic PRs — code changes and their documentation updates ship in the same pull request
  • Shared tooling — same Node version, pnpm catalog, oxlint/oxfmt, CI pipeline
  • Build-time validation — Docusaurus strict mode catches broken links and references at build time

Development

From the monorepo root:

# Start the docs dev server (port 3003)
pnpm dev:docs

# Or from within this directory
pnpm dev

Build

# Build docs only
pnpm turbo build --filter=@homarr/docs

# Build everything (docs + main app + tasks + websocket)
pnpm build

Lint & Format

Uses oxlint and oxfmt (same as the rest of the monorepo):

pnpm lint        # oxlint
pnpm format      # oxfmt (check)
pnpm format -- --write  # oxfmt (fix)

Typecheck

pnpm typecheck

Content Structure

docs/
├── getting-started/    # Installation guides, glossary, prerequisites
├── management/         # Boards, apps, users, integrations, settings, tasks, API
├── integrations/       # 55 integration guides (one folder each)
├── widgets/            # 42 widget guides (one folder each)
├── advanced/           # SSO, env vars, proxy, styling, CLI, development
└── community/          # FAQ, donate, license, translations, get-in-touch

Each integration/widget doc follows a consistent pattern:

  • index.ts — typed metadata (IntegrationDefinition / WidgetDefinition)
  • index.mdx — content using shared React components (IntegrationHeader, WidgetHeader, etc.)

Importing from homarr packages

The docs app has @homarr/definitions as a workspace dependency. You can import integration kinds, widget kinds, and other definitions directly:

import { IntegrationKind } from '@homarr/definitions';

This enables type-safe references to homarr domain concepts within documentation code.

Search (Algolia DocSearch)

Search uses the Docusaurus Algolia index (crawler cd77a285-2756-4557-bf21-ee703748df15). A separate markdown index is built for LLM markdown indexing.

Crawler reference config: docsearch.config.js.

Verify search health:

pnpm verify:search

Tech Stack

Layer Technology
Site generator Docusaurus 3 (@docusaurus/preset-classic)
Styling Tailwind CSS 3 + Docusaurus Infima
Icons @tabler/icons-react
Diagrams Mermaid (@docusaurus/theme-mermaid)
Search Algolia DocSearch
Analytics PostHog
Charts @nivo/line

Contributing

When making changes to the homarr codebase that affect user-facing behavior, always update the corresponding documentation in this app. See .cursor/rules/documentation-sync.mdc for the complete mapping of code changes to doc locations.