Introduction
Hey folks, happy to share I’ve been rebuilding my personal site from the ground up and it’s live now, ready for a new sprint of regular blog posts from me. Last time I wrote one was all the way back in 2022.
Lots of things have changed since then and I’ll make sure to share more in upcoming blog posts.
But first, let me tell you about the experience of rebuilding my site!
It was quite fun, honestly, and especially with AI tools these days, I feel I’m a lot more fearless in terms of what I want to build on my site.
The Janky old wordpress site
The old version of the site is fully gone and good riddance. It was an old wordpress mess riddled with various random plugins and what-not that didn’t quite work well together. I still remember having to write custom PHP to glue some things together.
Sadly, I don’t even have a picture of that anymore to show you, but trust me, the new look is much much better.
One thing to note - there is a reason I picked Wordpress back then. It was because I was afraid of the myriad of issues that can occur when you build something from scratch.
And that was a valid reason to pick something that comes out of the box, honestly. But my thinking on this has significantly changed since then. Building stuff yourself is not so hard these days because AI tools help you bridge the gap significantly!
Also, building things for yourself can have so many benefits - you get to learn a lot and potentially even build your own mini products. This is how I built Claude Control for example - I really wanted a background agent solution for Claude Code so I built one for myself.
But that was just the starting point - I’ve been exploring a lot of novel things you can build for youself when you have your own Claude Code in the cloud. Can’t wait to tell you all about that soon!
Also, turns out that if you solve problems for yourself you tend to solve problems for others as well. A bunch of other people have discovered the tool and are using it daily!
Anyways, that’s something I’ll share more thoroughly in a separate post, let me tell you how I built the new site from the ground up now.
The new tech stack
I decided to build the site using Astro, hosted on Vercel with Resend for emails.
This “stack” is very vanilla. You basically need to build everything on your own and that is the point.
In a nutshell, Astro is a static site builder that allows you to have all the bells and whistles - css, js, backend endpoints, etc.
But at its core, it’s a very simple CMS-ish thing where you can write blog posts in markdown and it automatically gets published when you push to main. This fits great with my workflow because I like to write my posts from the comfort of my favorite editor, rather than a janky wordpress site.
For emails, I was considering paying for a SaaS that gives you everything out of the box, but shipping simple software is so easy these days that I was willing to just bite the bullet, setup Resend and implement my entire email subscription stack from scratch. And it worked great!
Sure, there were a couple of weird styling issues and a few bugs here and there but nothing Claude couldn’t handle.
It still took time to get it all setup - around 9-10h of tinkering in total, but it’s all setup quite nicely now and I have the flexibility to do whatever weird stuff I want, not limited by the offerings of a SaaS.
Vercel was also a no-brainer because it’s very familiar to me - I host other projects there and it gives you nice, simple analytics out of the box. I’d happily pay to not have to deal with Google Analytics anymore.
Migrating all the old content
This would typically be the most laborious and annoying part to deal with. I’ve seen other bloggers pay someone to do it for them as it’s just clicking and copy-pasting like crazy.
However, I decided to pay Claude to do it instead. I pointed it to my old sitemap, asked it to crawl it and then convert all old posts to the new markdown format.
There is one gotcha here - to make this work, I didn’t make Claude do the work. I made it write a script to do the work. From my experimentation with AI agents, I’ve found them to be quite flakey and unreliable when they have to do repetitive work like that.
However, they are quite reliable at writing scripts to do the repetitive work for them. So Claude wrote a python script to scrape the content and one more to load it into the new Astro site. I made a few adjustments in the end to slugs and titles to ensure I don’t lose out on all that sweet SEO, but more or less, what used to be a horrendous activity to consider turned out to be a breeze.
I also used this opportunity to clean up some old filler content I’d produced in the past - ie event announcements and blog posts that I find are now irrelevant. This lead to a lot of broken links across the whole site.
But guess what - Claude managed to one-shot a Python script to unlink all the broken links and it worked flawlessly.
Leveraging AI for writing
One benefit of using Astro is that all the posts are in markdown so they can be written in any editor. But markdown is also the best canvas for AI tools as well!
So I deployed a Claude Code container on my repo using Claude Control and I connected to it via Slack.
Now, anytime I have a blog post idea, I open my phone and start Whispering to it while I’m playing with my cat.
I’d never use AI to write the actual content of my blog posts but it’s great at making outlines for my blog post ideas.
In fact, that’s how I wrote this one - shortly before going to bed, I brain dumped my post idea to claude control and went to sleep. On the next day, I had the bones of the article ready. Then I sat down and added the actual content - the outline was great for guiding my thoughts while writing this.
This workflow is quite basic and one might argue not too useful, but as always with AI tools - it requires some tinkering to explore, experiment and discover until you figure out how to maximize its potential fully.
Now I have the playground to make that happen.
Conclusion
This post was the first of many to kick things off properly.
I enjoyed writing this style of content, where I explore how I built a project and what I learnt along the way.
Hope you found it fun and useful too!
I’ll also write more posts about all the sorts of things I’ve been exploring and building in the past few months - consider subscribing so you don’t miss out!