Website building journey 8/19/2024
Scroll to continue

What’s this about?

For the longest time, I’ve been looking for the best tool to use to build my website. As someone with a lot of experience in webdev I was surprised to find out how difficulty choosing the right tool for the job could be. But I’ve finally landed on a good one.

Who Hurt You?

Next.js did. I am really not a fan of their proprietary edge middleware shit and their general shilling of their own platform for hosting. Unlike most, I know it’s not vendor lock in. I know you can statically compile your whole page and just serve it. But the feeling of an ecosystem being shoved down my mouth just feels wrong (Apple). It’s still among my favorite frontend frameworks, but I just wanted to check out other things (perhaps for the sake of change).

The Journey

As I got sick of Next.js, I was on a lookout for other tools. Here is what I tried out and my experience with those tools.

Next.js Next.js is probably the most batteries included thing out there. It’s simply the best. It’s built on top of React and provides you with SSR, a plethora of 3rd party packages, fetch request caching, image optimization, and much more. It basically has everything you need to build your own site. But a journey would have no start if it was perfect. It has a bunch of proprietary technologies behind it (e.g. middleware is only supported if deploying to Vercel). I am unsure if this is the only case of Vercel exclusive features in the framework but even if it is, it’s not something I want to depend on. So I wanted to move out and look for other tools.

HUGO

HUGO was alright but felt limiting. It’s a simple content driven static site generator that builds your site from content you feed it. For anything more than that you have to dance around their 1000 layers of magic responsible for generating web pages. Perhaps I didn’t give it a proper go, and now I am feeding you misinformation. Regardless it didn’t sit well with me, but I still think it’s great for creating simple content driven websites.

Svelte

Svelte is amazing. I love it. But the tooling isn’t there yet. As I got ready to delve into it, I found out that Svelte 5 release candidate is out. It looked more React-ish than it’s predecessor did, which was not a bad thing for me honestly. So with the RC out I’ve set to try it out. The experience was dogshit. The new syntax had basically no support on WebStorm went back to my good ol friend VSCode in order to try to get something done. The support for the new rune syntax was way better in VSC. I got a good portion of it done but the RC isn’t quite polished yet so it just felt more like wrangling with tools rather than getting things done, which is something I am not very tolerant to.

Angular

Angular is alright. Along with some packages like primeng you can really shit out nice looking GUIs at record speed. That being said it also has it’s shortcomings. It’s not built with SSR in mind right off the bat, and it’s something that you can stitch on top of your project. It also feels very traditional due to its heavily object-oriented design meaning you will write a shitton of boilerplate which I find way less elegant than something like Svelte or React. It was alright but not quite there yet.

Journey’s End

The search finally stopped. I landed on Astro. Gave it a try. React integration, mdx integration, systems that enable content powered site generation, great ecosystem of all sorts of solutions (astro-icon is fucking amazing), very little boilerplate, adapters that allow for SSR (as opposed to SSG). It seems perfect, but that’s something that only time can prove. I will use it for my future projects and see where that road takes me.