Skip to content

feat: render the portfolio through deep, tested modules - #9

Open
DutchyD wants to merge 1 commit into
developmentfrom
feat/render-portfolio-pages
Open

feat: render the portfolio through deep, tested modules#9
DutchyD wants to merge 1 commit into
developmentfrom
feat/render-portfolio-pages

Conversation

@DutchyD

Copy link
Copy Markdown
Contributor

Summary

  • Renders every page of the portfolio: sections (prose, hero, skills, q&a, contact, projects), the project index and detail pages, and the site footer.
  • Four architecture passes shaped the seams: the Folio request path behind a resource table with injected fetch and locale-store adapters, a compiler-enforced Section registry, a closed Translate key set, a Navigation module that owns path comparison, and a Deliver seam that keeps server code out of the render path.
  • A correctness sweep closed nine defects, including a honeypot that was announced to screen readers and silently dropped their messages, a blank .env.example copy that broke every page at boot, and provenance notices addressed by display position instead of wire position.
  • 146 tests (from 26), split into node modules and jsdom rendering projects. Domain language is in CONTEXT.md; decisions in docs/adr/00010004.

Test plan

  • pnpm test — 146 passing
  • pnpm run typecheck — clean
  • pnpm exec biome check — clean
  • pnpm run build — client bundle verified free of server code and mail credentials
  • Manual pass over /, a content page, /projects and a project detail against the live API

https://claude.ai/code/session_01YUPksjXpiy7ciBpmqwAQCb

Four architecture passes over the site work: the Folio request path,
Section registry, Strings, Navigation and Deliver seams; a correctness
sweep closing nine defects, among them a screen-reader-visible honeypot
that silently dropped messages, a blank-.env boot failure and provenance
notices addressed by display position; and 146 tests where there were 26.
Decisions are recorded in docs/adr and the domain language in CONTEXT.md.
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@DutchyD