All projectsSHIPPED!
PERSONAL · 2025 – NOWFRONTEND
This site: a portfolio built like a product
Version 2 of my portfolio. Every page is pre-rendered, every word and image comes from validated JSON, and the whole thing is built from reusable components.
01
How it's built
Content as data
Projects, roles, stats and copy live in JSON files validated with Zod. A new project is a new file, not new code.
Pre-rendered pages
Every route is rendered to HTML at build time, so pages load fast and share with their own previews.
Accessible motion
Animations respect reduced-motion settings; keyboard focus is always visible.
Tested
Unit tests for the content, end-to-end tests for every route, and CI on every pull request.
02
Version 1

Got a role, a project or a question?
Send a message right from the site. It lands straight in my inbox.