Skip to content

About Docs Vault

How this static documentation portal works.

Docs Vault is a static site that aggregates documentation from multiple open source projects into one searchable portal.

Every upstream project is configured in config/projects.mjs. Before each build, loaders clone or pull the source repository into .cache/repos/ and copy transformed Markdown into src/content/docs/<project>/.

LoaderUse case
gitDefault loader for Starlight/MDX upstream docs
vueVue.js docs with VitePress syntax cleanup

Add a custom loader by extending GitDocsLoader in loaders/projects/ and registering it in loaders/index.ts.

Terminal window
# Recommended on 8 GB servers
npm run build:lite
# Sync all enabled projects, then build
npm run build:full
# Sync specific projects only
npm run sync -- --only vue
npm run build

The git loader finishes in seconds. Astro’s content indexer is what uses RAM.

Default: staged builds (npm run build) — each project is built separately (~2 GB peak), then the portal merges Pagefind indexes. Avoid build:mono on 8 GB machines.

  • Default config enables Starlight only
  • Set enabled: true in config/projects.mjs to add more projects
  • Tune heap: DOCSV_NODE_HEAP_MB=1536 npm run build
  • Optional: install Bun for faster sync scripts (not Astro build)
  1. Add an entry to config/projects.mjs
  2. Optionally create a project-specific loader
  3. Run npm run sync
  4. The sidebar picks up the new autogenerate group automatically