Migration

An aside to version 3 of this site.

This is the 3rd iteration of this site, featuring better UX (I hope) and DX. A brief history is provided below.

Boring changelog aside…

Q>
Why even do this? Why not incrementally change the old sites instead?
A>

Each iteration represents a step forward in my skill as a programmer, and what better way to see how far I’ve come by learning how well I can learn something new?

In such a fast-moving field, the only thing constant is that things change. The wonderful world of web dev mandates that each week, a new revolutionary library, framework, tool, web standard, etc. is released (still waiting for baseline support for WebGPU…). The rise of LLMs speaks for itself.

So it’s easy to see that the most important skill you have is how well you can learn something.

The wording was carefully chosen here to highlight that how well you learn something ≠ how fast you learn it. And lately more often than not, I’ve seen depth sidelined for breadth.

So why do this? Just for the sake of learning something new. After all, the more you spend time doing something, the better you are at it.

Q>
Why not just use LLMs + skills to do the migration / remake the site for you?
A>

Other than the reasons above…

AI regresses things towards the mean. If you’ve ever seen one vibe-coded website with the linear-gradient text, round buttons, side accent color strip, lucide-icons, etc. you’ve seen them all.

Does this mean we should never ever ever use LLMs for programming? Obviously not. LLMs are great tools that help do the boring / tedious stuff, speed up research, and act as decent rubber duckies.

Improper use of LLMs tends to lead to cognitive surrender. And as a corollary, makes you produce ouputs that are always “in distribution” of the LLM, stuck in whatever local minima you manage to get your LLM at.

At a bare minimum, you should be able to fully explain everything your LLM outputs and scrutinize every line of code produced by it. Every unneeded line of code is a maintainence liability.

Use AI as a tool, don’t let it use you.

On that note, I can’t wait for the release of Drizzle v1, Tanstack Start v1, and wider adoption of Typescript v7.

I will make new blogs whenever I feel like it.