This repository contains the BDC web platform monorepo.
The platform is built using:
- Astro (static-first rendering)
- MDX (content pages)
- USWDS (design system)
- React (when state or interactivity required)
apps/
- site/ → Public-facing website
- docs/ → Documentation site (future)
docs/ → Developer documentation
packages/ → Shared code (future)
Primary public-facing marketing website. Built with Astro and MDX.
Run local development server:
npm install
npm run dev -w @bdc/siteBuild:
npm run build -w @bdc/sitePreview:
npm run preview -w @bdc/siteTBD
All architectural rules and development standards are documented in /docs.
Start here:
These documents define:
- When to use Astro vs React
- How to create components
- Where content belongs
- USWDS usage rules
- Client JavaScript policies
- Astro-first
- MDX for pages
- USWDS-first styling
- Zero client JavaScript, unless required
- File-based routing
- Performance-focused
All contributions follow a fork-based workflow with squash merges:
- Fork this repository to your own GitHub account.
- Clone your fork and create a feature branch for your work.
- Develop on your fork, committing as often as you like — commit history on your branch is for your benefit during development.
- Open a pull request from your fork's branch to
stagecc/bdc-web:main. - Address review feedback — all PRs require at least one approving review before merge.
- Squash and merge — once approved, the PR is merged using GitHub's Squash and merge option. This collapses all commits into a single commit on
main, keeping the project history clean and linear.
Why squash merge? Each commit on
maincorresponds to exactly one PR, making history easy to read, bisect, and revert if needed.
Pull requests are automatically validated by CI, which runs:
- Lint — Biome checks for code quality and formatting issues (results appear as inline annotations on the PR diff)
- Build — the app is built to catch compilation errors
Both checks must pass before a PR can be merged.
- Review
/docs/architecture.md - Confirm React is only used when necessary
- Confirm no unnecessary client hydration
- Confirm USWDS conventions are followed