It's that time again.
I spent a few days browsing Dribbble and Framer templates, trying to find direction for this redesign. In 2025, I tried to copy a design and I hated it. More on that here. So it was important for this new design to come from me. I liked the "minimal" feel of the old design, but it was minimal by default. I wanted this new design to be minimal on purpose.
Thankfully, the design is the entirety of this refresh. No breaking changes in languages, libraries, or frameworks meant I could focus entirely on getting the design right.
Design
Before changing anything, I decided what had to stay:
- Small, light type — the thing I liked most about the old site.
- A monochrome palette — no accent colors doing the heavy lifting.
- Hierarchy from the type itself — not from boxes, badges, or icons.
- Quiet — nothing louder than it needs to be.
Constraints turn an endless set of options into something you can actually reason about. When a new idea came up, the question wasn't "is this cool?" It was "does this fit?" It ended up helping me more than I thought it would.
The biggest change is that the site has real structure now. Everything sits in a single framed column, with thin rules marking its edges and dividing its sections. Each section follows the same layout: a small label on the left, and the content on the right. Images, code, and demos all stay inside that content column, so nothing breaks the frame. This is what separates minimal from empty. When content aligns to a consistent frame, the space around it reads as deliberate instead of leftover. You barely notice the grid, but you feel it.
Without decoration, typography does all of the work. Titles get size. Supporting text steps back. Labels are small and quiet. The things that actually matter get the most contrast. When everything is quiet, small differences carry a lot of weight. A slightly darker shade or a slightly heavier weight is enough to guide your eye, so getting those steps right mattered more than anything else on the page.
Most of the process, though, was subtraction. This redesign was less about adding the right things, and more about moving and removing what was there until what was left felt inevitable.
Projects
Projects are back! I pulled them for a few reasons, but mostly because they'd become unmaintained, and I didn't want to showcase outdated work. Recently, I've made a point of dedicating time to side projects that I care about and use, so there's more to come!
There's a section on the home page and a full projects page, and each project gets its own page with a closer look and links to the live site and source.
Conclusion
I'm still a better dev than designer. But this is the first version of my site where everything feels like a decision rather than a default. Same type, same quiet, but with structure and intent behind it.
I'm certain that I'll break it again before too long.
Thanks for reading! Let me know what you think, & as always, happy coding!