Campaign website for Mark Henrickson, candidate for Salem City Council.
Live site: https://henricksonforsalem.pages.dev
- Vite + React + TypeScript — a purely static site: no backend, no forms, no network calls at runtime.
- Tested with Vitest + Testing Library; linted with ESLint.
- Hosted on Cloudflare Pages.
Requires Node 24.
npm install
npm run dev # local dev server
npm test # lint + typecheck + unit tests (coverage)
npm run build # production build to dist/Deploys are manual for now, via Wrangler:
npm run build
npx wrangler pages deploy dist --project-name henricksonforsalem --branch main- Default branch is
dev; PRs are opened as drafts againstdevand reviewed there. dev→mainrelease merges are done by the repo owner.
- Domain-day runbook — the account-handoff / domain-registration session script.
MIT