This webpage is now made with Svelte and Tailwind. I held out on Svelte for a long time, but its runes API finally won me over. Svelte's tooling and DX is very much top-of-class. It is not perfect, but I love the obvious push for minimal boilerplate and syntax. It's right there in the name!
I have a love-hate relationship with Tailwind. On the one hand, it has everything built in and is basically industry standard. On the other, if you have ever had a list of classes that is about 5 pages wide, you know my pain. But the combo of LLMs + tree shaking make it a lot easier to deal with. And dark mode is an easy win. So Tailwind it is.
- This page was originally HTML, CSS, and JQuery.
- When React was new and I needed to learn it, it was a React app.
- After that, I worked at Google for a long while and mostly used Polymer, Web Components (WC), and Lit, and so it became a native WC app. (Gotta flex!)
- When I left Google, and was getting up to speed on modern React, I fell in love with hooks. But couldn't give up my web components, so I spun up a version of the site using Haunted to let me have hooks in my web components.
- Now it's been a few years again, which is an eternity in webdev, and I have recently fallen in love with Svelte. And it DEFINITELY provides an easier re-onboard after some time away than a custom component plus hooks situation, and I don't need an intersection observer anymore.
- Maybe I'll let whatever the hot new LLM is in 2027 make the decision about what to refactor to next.