Skip to content

Search is only available in production builds. Try building and previewing the site to test it out locally.

Contributing

Blue Dots is built as open Digital Public Goods, and contributions are welcome — to the DPGs and to this documentation.

Both DPGs share a baseline of engineering discipline. Before opening a PR:

  • Conventional Commits are required. Do not bypass hooks with --no-verify.
  • Run the full gate locally: pnpm -w lint, pnpm -w typecheck, pnpm -w test, and (Aggregator) pnpm dep-check.
  • Keep to the conventions: ESM-only, strict TypeScript, no any; snake_case files; routes return typed { error, message } rather than throwing.
  • Respect the boundary rules — cross-package imports go through ./interface or ./testing only.
  • Add tests. On both DPGs, the SonarCloud quality gate asks for 80% coverage on new code. Aggregator packages also enforce at least 70% line coverage in their Vitest config. Use the in-memory fake from each package’s ./testing export.

CI must pass (lint, typecheck, test, build, dep-check) before merge; branch protection enforces it.

This site is Astro + Starlight. Content lives in src/content/docs/ as Markdown/MDX.

  1. Fork and clone the docs repository.

  2. pnpm install then pnpm dev to preview locally.

  3. Edit or add a .md/.mdx page; register new pages in the sidebar in astro.config.mjs.

  4. Run pnpm build to confirm it compiles, then open a PR.