Migrating A thousand nodes to a Modern Stack
How I migrated A thousand nodes to a modern stack
Migrating A thousand nodes to a Modern Stack
I used to maintain a developer blog called A thousand nodes. It started as a Drupal site, mostly because I was working on Drupal projects at the time. I wrote about Drupal, JavaScript experiments, and whatever else I found interesting. Things were going well, until a server crash wiped out the site and all my backups. I had some email-based backups (thanks to a Drupal module), but never got around to rebuilding the site.
I tried reviving the blog a couple of times, once with Hugo and Netlify, but those attempts didn't stick. Maintenance was a pain, and I never kept up with upgrades. Fast forward to today; I've been building a lot of new apps with AI, and I decided it was time to give the blog another shot. This time, I'd use Next.js and migrate whatever content I could recover from the Internet Archive.
Building the new blog
Here's my usual starting point for new projects:
- Create a Next.js app
- Set up Tailwind CSS
- Add Shadcn UI
This time, I let Cursor and Claude help with the setup. The process was straightforward, and I didn't run into any major issues with Next.js or the folder structure. However, I did face some setup challenges with MDX, mostly around version mismatches and configuration.
Recovering Old Content
I didn't migrate the old articles by hand. Instead, I used AI to help pull content from the Wayback Machine. Some articles were rewritten a bit in the process, but I've added a note to each migrated post:
Note: This is a restored article from the original A thousand nodes blog (circa 2012).
Finding the Old Blog
I wasn't sure exactly when the original site went down, and I'd used the domain for other things since. After some digging, I found a decent snapshot on the Wayback Machine. Not all links worked, but I was able to recover most of the main articles.
Gathering Content
To get the old posts back, I used Cursor and curl to pull content from the Wayback Machine. Some Drupal node list page links still worked, so those were easy. For broken links, I had to dig through older snapshots to find the right URLs. There are still a few missing articles; I'll keep looking for them when I have time.
Adding MDX support
As with the last attempt, I wanted to use MDF for writing posts. It was a bit tricky to get it working on the new project. I expected it to be easier, but took a bit of debugging, mostly version related issues.
OG Image
While I was at it, I thought why not try the OG Images plugin for Next.js. I had played around with it for GoVisually earlier. It's a great feature for SEO and social media sharing.
Looking Ahead
Now that the blog is back, I have a few plans:
- Maybe a newsletter
- Comments (if I can keep the spam out)
- Interactive code playgrounds
- More new content
But mostly, I just want to write and share what I'm learning. If you've ever rebuilt something from scratch or have tips for making this process easier, let me know, Twitter or GitHub are the best places to reach me.