Docs Vault is a static site that aggregates documentation from multiple open source projects into one searchable portal.
- Astro — static site generator
- Starlight — documentation framework
- Lucode Starlight — shadcn/ui-inspired theme
- Pagefind — full-text search (built into Starlight)
Loaders
Section titled “Loaders”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>/.
| Loader | Use case |
|---|---|
git | Default loader for Starlight/MDX upstream docs |
vue | Vue.js docs with VitePress syntax cleanup |
Add a custom loader by extending GitDocsLoader in loaders/projects/ and registering it in loaders/index.ts.
Commands
Section titled “Commands”# Recommended on 8 GB serversnpm run build:lite
# Sync all enabled projects, then buildnpm run build:full
# Sync specific projects onlynpm run sync -- --only vuenpm run buildMemory tips
Section titled “Memory tips”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: trueinconfig/projects.mjsto add more projects - Tune heap:
DOCSV_NODE_HEAP_MB=1536 npm run build - Optional: install Bun for faster sync scripts (not Astro build)
Adding a project
Section titled “Adding a project”- Add an entry to
config/projects.mjs - Optionally create a project-specific loader
- Run
npm run sync - The sidebar picks up the new
autogenerategroup automatically