The problem
My old site read like a CV. It spoke to recruiters, which made it awkward to share anywhere else, and publishing anything on it was a chore. I wanted a place that made people curious, where writing came first and the craft showed without shouting.
What I built
- A design system with one dial. Everything brand-coloured comes from a single hex value. A small engine converts it to OKLCH, then walks the lightness until every pair of text and background passes WCAG AA contrast, in light and dark mode.
- A site you can recolour. The same engine runs in your browser. Pick any colour in the theme panel and the whole site follows, still readable. More than twenty deliberately awkward colours (neon, pastel, pure black and white) are tested on every build.
- A bento home page with a live network tile: nodes, links and pulses that react to your pointer, and hold still if you prefer reduced motion.
- A writing system built on Markdown and git: topics, series, a table of contents, callouts, diagrams, footnotes, full-text search, RSS and a social image for every post.
- Static everywhere. Every page is pre-built HTML served from the edge, with almost no JavaScript.
What I learned
Constraints make design systems honest. Deriving every brand colour from one value forced each token to justify itself, and testing against ugly colours found problems that a tasteful palette would have hidden.
What’s next
Comments, reactions, a newsletter and an installable app. Then, most importantly, the writing.