See the Nais handbook for a more detailed explanation of the documentation structure and how to contribute.
If a page should have a warning about not being available in test-nais, add the following near the top of the page:
<<not_in_test_nais("Name of feature")>>Add the following to the frontmatter of the page:
conditional: [not-test-nais, not-nav]Add the following to the frontmatter of the page:
conditional: [tenant, nav, ssb]
^^^^^^--- the keyword "tenant" is required to exclude all not mentionedFour agents handle documentation tasks:
@research-agent → @technical-writer → @plain-language-en → @docs-qa
@research-agent— Investigates Nais source repos via GitHub MCP. Read-only.@technical-writer— Writes/edits docs following repo conventions (Diataxis, mkdocs, Jinja macros).@plain-language-en— Copy-edits for plain language, removes AI jargon.@docs-qa— Verifies docs accuracy against Nais source code. Read-only.
Start with @research-agent to gather context, hand off to @technical-writer to draft, which auto-hands off to @plain-language-en for polish. Then hand off to @docs-qa to verify accuracy against source code. Use @docs-qa standalone to audit any existing page.
The documentation site lives in svdoc/ and is built with SvelteKit + Bun. Tasks are managed with mise.
Follow the mise installation guide. All other tools (such as Bun) are pinned in mise.toml and installed automatically.
mise run setupmise run localThis installs dependencies (if needed) and starts the dev server.
TENANT=nav NOT_TENANT=not-nav mise run local:devBuild one or more tenant-specific versions into out/<tenant>/:
mise run build nav nav test-naismise run check # run lint + svelte-check
mise run check:lint # prettier + eslint
mise run check:svelte-check # svelte-check only
mise run fmt # format with prettier