A new portfolio site, designed and built with the same care I'd give any other product brief.

Where I started. My old portfolio was technically impressive (hand-coded SCSS, perfect Lighthouse score) but weak where it mattered most: storytelling. The content structure was too rigid to fix without starting over.
What I did. Treated the rebuild as a product brief: mapped the audience, set deliberate constraints, and built a flexible content system that could scale.
What changed. A portfolio that works as a product. Fast, considered at every breakpoint, and shaped by a clear sense of who it's for. New case studies can land without touching the codebase.
Before any visual decisions, I mapped everyone who might land on the site against two axes: browsing vs evaluating, aesthetics vs information. Friends, recruiters, fellow designers, hiring managers, conference organisers. The exercise made the priority obvious. The people who matter most cluster in the evaluating-information corner. They want evidence and substance.

That mapping shaped the constraints. About page doubling as the homepage, because they want to know who I am fast. Four pages total, no footer, no burger menu on mobile because hiding navigation across four pages is silly. Every decision came from the inverse question: what would make this worse? Cutting those things is what made it better.
The real engineering went into the case studies. I wanted to tell different stories in different shapes without each one being a custom build. Strapi's Dynamic Zones let me drop charts, comparison sliders, carousels, or just text blocks into any case study, in any order. The content dictates the layout, not the other way around.


The same care went into the responsive behaviour. Six Tailwind breakpoints, all finessed. Component behaviour adapts too: a tooltip on desktop becomes a drawer on touch screens. Same intent, different device. The whole site was tracked in Linear like any product I'd ship, with Claude Code working from a CLAUDE.md, plus Lighthouse and Playwright E2E checks gating every pull request.





That meant audience research, deliberate constraints, and a content system that scales. It also closed the design-to-dev gap that most portfolios advertise but few demonstrate. The site is the case study.