rundog.dev

Why I built the site using Astro


Personal Requirements

I wanted a fast site that was simple enough to develop in my free time, with batteries included. Components to keep the css tamed, and server-side generation to keep the page load times small. I don’t need a great deal of client side JavaScript, with the site being naturally static.

Research

I’ve used React in the past, and generally enjoyed using it, but a heavy framework like React or VueJs would be overkill for my needs and would hurt initial page load speeds unless I opted for SSG via Gatsby or similar framework. Svelte and Sveltekit would produce a smaller footprint, but it’s still using a sledgehammer to crack a nut, even with server side generation tools. To keep things light, I first looked into using vanilla webcomponents, then into Lit, and finally Astro. Astro is a natural fit for a blogging homepage, the builtins are excellent, the components are super simple, and the server side generation is by default. Added bonuses are that the blog posts are markdown (enhanced with mdx) which I use on a day-to-day basis, and its primary focus is on delivering good web vitals.