Colophon
How this site is built
The resume says I design and build in one loop. This site is the evidence.
Stack
- Nuxt 4, server-rendered on Vercel
- Vue 3 and TypeScript
- Tailwind v4, with every color, radius, shadow and spacing as a token
- shadcn-vue primitives on reka-ui, Phosphor icons
- Storybook 10, with the accessibility addon set to fail a story on any violation
- Prettier, husky and commitlint on every commit
The design system
One token file drives four theme states: light, dark, and the off-the-clock pair, as classes on the root element. A component never knows which theme it is in. It uses semantic tokens and inherits the swap, so the other side of this site is the same components wearing different tokens, the same idea that let dark mode ship as a token swap at DNSFilter. Layout is a 12-column grid with gutters. Content lives in typed data, so a wording change is a data change and the templates stay dumb.
How it was made
Designed and built in one loop, the way my resume describes. I wrote a contract for the project first: the architecture, the design system rules, the copy rules, and the definition of done for a component. Then Claude Code built against that contract and the design system, and I reviewed every component in Storybook in all four theme states before it shipped. It is the same pipeline I run at Censys, on my own time.
What it is not
Not a template, not a page builder, not a static export. There is no code in the project pages by choice; the screens carry the story. The source is private.