Publish gates
Each gate blocks shipping when it fails. The toolchain exists to keep the site fast, accessible, and honest about what it claims.
Typecheck
Strict TypeScript on every publish — compile-time guarantees before anything reaches production.
Lint
Whole-tree ESLint passes are required; style and correctness rules travel with the repo.
Unit tests
Vitest guards components and utilities so regressions surface before merge.
E2E
Playwright exercises critical user paths; the full suite runs in CI on every gate.
Accessibility
axe-core scans ten public routes — accessibility is a publish gate, not a backlog item.
Disclosure
A five-rule disclosure matrix enforces what can and cannot appear on this portfolio.
Lighthouse
Lighthouse CI watches seven routes on pull requests and eight on full publish runs.
Bundle size
First-load JavaScript stays within size-limit budgets — performance is part of the craft.
Stack
Next.js app router, strict TypeScript, Tailwind design tokens, and content co-located with components. Hosted on Vercel with CI wired through GitHub Actions.
Read the agentic engineering OS narrative for the multi-agent pipeline behind these gates.