Contributing
Blue Dots is built as open Digital Public Goods, and contributions are welcome — to the DPGs and to this documentation.
Contributing to the DPGs
Section titled “Contributing to the DPGs”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
./interfaceor./testingonly. - Add tests; target ≥ 70% line coverage. Use the in-memory fake from each package’s
./testingexport.
CI must pass (lint, typecheck, test, build, dep-check) before merge; branch protection enforces it.
Contributing to these docs
Section titled “Contributing to these docs”This site is Astro + Starlight. Content lives in src/content/docs/ as Markdown/MDX.
-
Fork and clone the docs repository.
-
pnpm installthenpnpm devto preview locally. -
Edit or add a
.md/.mdxpage; register new pages in the sidebar inastro.config.mjs. -
Run
pnpm buildto confirm it compiles, then open a PR.
Where to ask
Section titled “Where to ask”- File issues and PRs on the relevant repository under the Blue Dots Economy GitHub org.

