2026 Redesign
Every year I redesign this site. It has become a tradition, and I enjoy it.
This urge to rebuild things reflects how I approach everything: constant experimentation. I have many side projects. Most will never ship, and that is fine. They are not meant to be products. They are my playground for learning.
What’s different this time
I made one thing my priority: maintainability. There is nothing worse than returning to your own code after a few months and feeling like a stranger wrote it. So I stripped away the clever but complicated features that made me proud at the time but would confuse my future self.
The result is a cleaner, faster site that I enjoy maintaining.

The stack
This version runs on Astro 5 with static output. I initially picked Astro as an experiment, but after working with it for a while, I genuinely like the experience. For static sites, it makes sense: ships zero JavaScript by default, builds quickly, and has a great developer experience. I am looking forward to using it for something bigger.
Although I am a React fan, I did not build this version around bespoke React components. Astro’s built-in interactivity is minimal, but it is exactly enough for what I need. That is the beauty of it: I do not reach for a framework out of habit. I use what the project actually requires.
Styling is Tailwind CSS v4. I used to be skeptical; it felt like inline styles with extra steps. I changed my mind. Previously, I was a big fan of MUI’s sx prop, which had a similar philosophy while keeping markup lighter. Tailwind won me over anyway. The main benefit is that I do not name things. No more .card-header-title-wrapper debates with myself; I can focus on writing styles. It is not perfect, but it makes it obvious where my CSS needs optimization. When I want plain CSS, I use it. Tailwind does not lock me out.
I also use my own CSS reset library. It is minimal and opinionated in the ways I care about. It is satisfying to ship something I built.
For icons, I am using Google Material Symbols. I have used them since the previous version of the site and see no reason to switch. Compared to SVG icon libraries or React icon components, symbols are lightweight: one font file, no per-icon imports, and no component overhead. They scale with font size, inherit color naturally, and the variable font version lets me adjust weight and optical size on the fly. Simple, fast, and native.
Why notes instead of a blog
One new addition to this version is a notes section. You are reading it now.
But I am not a blogger. I do not write for an audience; the internet already has enough content, and AI generates more every second. These notes exist for me: a place to capture what I learned, what I am thinking about, and what I probably want to remember.
Speaking of AI, I use it for grammar checks. English is not my first language, and AI tools catch mistakes I would miss. Despite the hype, I see real potential here. The key is staying in the loop. AI assists, and I decide.
If you find something useful here, good. But I am building this for an audience of one.