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:
npx tsx scripts/validate-content.tsThe validator checks:
- Required frontmatter
- Frontmatter schema validity
- Empty content bodies
- Broken internal
/docs/...links - Extension slug format when
extensionsis set last_verified_atdates that are in the future
Reindex search
After content changes, rebuild the MeiliSearch index:
docker compose exec worker npx tsx scripts/reindex.tsThe 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:
last_verified_at: "2026-05-15"
review_interval_days: 90Then run:
npx tsx scripts/stale-content-check.tsUse 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:
status: draftDrafts 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:
status: deprecatedThe 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:
docs/archive/initial-content-2026-05-15/That keeps the history available in the repository without leaving old pages live in the app.