Portfolio v2
This site. A redesign in a monorepo with its own identity, a Go content api, internationalization and verifiable quality gates — including a black-and-white composition test that failed the first version of the interface.
- Context
- The previous portfolio communicated a generic fullstack profile. The new thesis is a declared niche — quality, security and operations — and a visual identity derived from Japanese composition: notan, ma and earth pigment instead of alarm red.
- Pressure
- The identity forbids the easy path: no HUD, no gauges, no decorative kanji, no asset from the game used as reference. What remains is precision, space and materiality — none of which the eye verifies on its own.
- Reading
- A two-value notan test — the screen flattened to pure black and white — showed the hierarchy lived entirely in color: the primary CTA, the decision line and the verdict bar vanished. The same measurement showed the opposite of what was expected for the accent, at 1.3% of the fold against a 10% ceiling.
- Decision
- Rebuild hierarchy in value, not color: a light outline on the CTA over the dark ground, a decision line starting at a high value, a panel behind the verdict. The accent stayed under the ceiling, because a limit is a ceiling and not a target.
- Execution
- Palette and typography moved into CSS tokens, with no hex written inside a component. Contrast checked pair by pair in both themes, visible keyboard focus on every surface, a skip link as the first focusable element and fonts self-hosted through next/font. The code came from AI agents at three levels, from lightest to strongest: every task had a brief, a list of allowed files and hashes before and after, and a file outside the list fails the delivery. Anything touching the contract, the api or CI is first reviewed by an agent that did not write it, and the merge is mine.
- Evidence
- Contrast measured in both themes, accent area summed pixel by pixel across the fold and shared JavaScript size checked in a production build — not in development mode, where an initial 184 kB reading was inflated.
- Impact
- The identity stopped being a description and became an executable contract: nine rules verifiable in the repository, each with the instrument that measures it. A new screen is only approved after passing the two-value test.











