Why I deleted my design tokens and started over
After six months of accumulating one-off values and edge cases, I hit a wall. Here's what I learned rebuilding from scratch with stricter constraints.
Read post ↗The case for doing less, better
Scope creep is the silent killer. A reflection on how constraints — self-imposed or otherwise — lead to sharper, more honest work.
Read post ↗Building in public: three months in
What I've shipped, what I've scrapped, and what I've learned from sharing the messy middle of building a product in the open.
Read post ↗TypeScript patterns I keep coming back to
A living collection of type utilities and patterns that have quietly saved me hours across multiple projects.
Read post ↗On typography: the decisions most people don't notice
Type is invisible when it works. A walkthrough of the micro-decisions — size, weight, spacing — that make text feel right.
Read post ↗2024: what I made, broke, and shipped
An honest year-in-review covering the highs, the abandoned projects, and the one thing I'll do differently in 2025.
Read post ↗