Static site generator for Vortex RFC proposals built with Bun.
index.ts - Main build script and dev server
styles.css - Site styling (light/dark themes)
proposed/ - RFC markdown files in proposed state
accepted/ - RFC markdown files in accepted state
completed/ - RFC markdown files in completed state
dist/ - Build output (gitignored)
RFC filenames follow the format NNNN-slug.md (e.g., 0001-galp-patches.md).
Numbering is global across all states - no duplicates allowed.
bun run build # Build static site to ./dist/
bun run dev # Dev server with live reload on localhost:3000
bun run clean # Remove dist/- Scans
proposed/,accepted/,completed/for RFC files - Parses RFC number from filename (e.g.,
0002-foo.md→ RFC 0002) - Determines state from containing folder
- Extracts title from first
#heading - Converts markdown to HTML using
Bun.markdown.html() - Generates
dist/index.html(table of contents with filter UI) - Generates
dist/rfc/{number}.htmlfor each RFC
- Uses
Bun.serve()to serve static files fromdist/ - Watches
proposed/,accepted/,completed/, andstyles.cssfor changes - SSE endpoint at
/__reloadfor live reload
RFCs progress through three states by moving files between folders:
- proposed: New RFCs under discussion
- accepted: Approved RFCs ready for implementation
- completed: Fully implemented RFCs
The index page shows a state pill for each RFC and supports filtering by state.
- CSS custom properties for theming (
--bg,--fg,--link, etc.) - System preference detection via
prefers-color-scheme - Two-state toggle: dark ↔ light
- Theme persisted to localStorage
- Keep dependencies minimal (only
@types/buncurrently) - Use Bun built-ins:
Bun.file,Bun.Glob,Bun.markdown,Bun.serve