2 min readMay 15, 2026by maintainer

Operations

Nexus Docs is file-based, but runtime behavior depends on validation, indexing, background jobs, and database-backed user permissions.

Validate content

Run the content validator before publishing a documentation change:

Bash
npx tsx scripts/validate-content.ts

The validator checks:

  • Required frontmatter
  • Frontmatter schema validity
  • Empty content bodies
  • Broken internal /docs/... links
  • Extension slug format when extensions is set
  • last_verified_at dates that are in the future

After content changes, rebuild the MeiliSearch index:

Bash
docker compose exec worker npx tsx scripts/reindex.ts

The indexed record includes metadata such as title, summary, slug, product, tags, access tier, and extension grants. Search requests apply ACL-aware filters before returning results.

Stale content checks

Use last_verified_at and review_interval_days in frontmatter to track review age:

YAML
last_verified_at: "2026-05-15"
review_interval_days: 90

Then run:

Bash
npx tsx scripts/stale-content-check.ts

Use this for pages that become risky when outdated, such as installation instructions, security behavior, API contracts, or integration guides.

Draft and deprecated pages

Use draft status while writing:

YAML
status: draft

Drafts are hidden from normal navigation. Admin viewers can see drafts when the navigation builder is called with draft visibility.

Use deprecated status when a page should remain available but clearly marked:

YAML
status: deprecated

The document route renders a deprecation banner above the content body.

Archive old rendered content

Rendered documentation must stay under content/. Anything under docs/ is repository support documentation and is not loaded by the public docs renderer.

When replacing a documentation set, move old files outside content/, for example:

Text
docs/archive/initial-content-2026-05-15/

That keeps the history available in the repository without leaving old pages live in the app.

Operations | Nexus Docs