How I made this site
I recently decided to use Astro to build this new version of my personal website.
The requirements for my website were:
- Be simple, easy to read and very fast to load
- Be very simple to edit and deploy
- Showcase my projects
- Support a blog in Markdown
- Be extensible without much fuss if I ever want to do something fancier
Gatsby and Next.js are both too much complexity for my needs — I don’t want to write GraphQL or spend time learning framework-specific concepts for what amounts to a projects page and a blog. Writing vanilla HTML and JS felt like a genuinely reasonable option but I also decided against it because I want the ability to easily do something more complicated if I want. And with vanilla HTML/JS I’d just end up reinventing the wheel a bunch with templating anyway.
So I landed on Astro. What I found attractive about Astro was its speed, the fact that there’s 0 JS shipped to the client by default and the fact that it’s UI agnostic so I can easily mix and match whatever other frameworks I want. It was relatively quick to get up to speed on and there was already a simple blog example that I was able to quickly hack into what you see here. I probably spent no more than a day total getting my v0 up. I also chose Tailwind for CSS and Vercel for hosting and deployment. I’ll do some image optimization at some point.
And that’s it — it’s a simple, boring story, the way it should be.