Finally. Again.
My very first post on this blog went up on January 22, 2009. Here it is, in its entirety:
Finally got my blog up and running. Figured it was about time to start posting some of what I’ve gathered in the hopes that it helps someone else.
Seventeen years later, same energy. Finally got my blog up and running. Again.
How we got here
Between 2009 and 2016 I wrote 622 posts here, most of them about SCCM, ConfigMgr, MDT and OS deployment. Then life happened, as it does, and the blog went quiet.
Quiet turned into neglected. Turns out somebody else found the old WordPress site more interesting than I did. By 2023 it had been hacked, and when I finally dug up the backup it was full of webshells, a spam mailer kit, and fake plugins with names like “wp-security-enforcements.” Nothing says secure like a plugin that has to tell you it’s secure :)
Why now
With all the AI stuff lately, I realized I had something to say and share again. I’ve been using Claude for a LOT of my work over the last few months, at HaloKinetic and at home, and some of it is pretty cool. It seemed only fair that the first thing I write about is how the blog came back to life.
The goal was simple:
- Cheap. No more paying for hosting I never look at.
- Hard to hack. No WordPress, no plugins, no PHP to patch.
- Easy to maintain with Claude. I want to say “write up X” or “fix Y” and have it happen, not click through an admin panel.
The setup
Claude did most of the research and nearly all of the building. Here’s what we landed on:
- Astro, a static site generator. Every post is a plain markdown file. No database, nothing running on a server.
- GitHub, a private repo that holds the whole site. I use GitHub Desktop, because when it comes to git I’m a clicks-and-buttons guy.
- Cloudflare, free tier, which builds and hosts the site. Push to GitHub, and about a minute later it’s live.
Cost for hosting: $0. The only bill left is the domain renewal.
The workflow is basically this: I tell Claude what I want, Claude edits the files and runs a test build, and I commit and push. Same way I’d work with a developer on my team, except this one doesn’t need coffee.
The archaeology
The fun part was getting 17 years of content back.
- Finding the backup. Claude searched my iCloud Drive first and came up empty. I remembered it was buried somewhere in my old Nackers Consulting files, and sure enough, there was a “Chrisnackers.com backup” folder from April 2023.
- Opening it. The host backup was gzipped twice. Not a tar.gz, a tar.gz.gz. Why? No idea. Claude figured it out in about two tries.
- Cleaning it. Claude scanned the old site files and removed 55 pieces of malware, and kept a list of everything it deleted.
- Importing it. All 622 posts came out of the old database and were converted to markdown, with their original dates and categories. Every old link still works, so if you bookmarked a post in 2011, it redirects to the new page.
The images
This was the part I figured was a lost cause. Most of my early posts kept their screenshots on myITforum, which is long gone, and the backup had zero image files in it.
Enter the Wayback Machine. Claude matched every image link in every post against what the Internet Archive had saved, then pulled them down a couple at a time. The Wayback Machine does NOT like being rushed.
- 923 images recovered
- 156 still missing, all from posts written between 2009 and 2011
I even found my old Windows Live Writer backup, which turned out to cover 2012 to 2016. Of course the missing images are all from before that. Doh!
What broke
Plenty, and this is the most useful part. Claude tested as it went and caught most of these before I ever saw them:
- The images 404’d. A redirect rule meant for old post links (year/month/day/title) was also grabbing image paths that happened to have four parts. Fix: shorter image paths.
- The preview build failed. Cloudflare’s branch previews needed one extra line in a config file. The build log said exactly which line, which was nice of it.
- Old category links all went to the same page. A catch-all redirect rule was overriding the more specific rules above it. Fix: delete the catch-all.
- GitHub Desktop and I had a misunderstanding. It created a brand new repo inside my site folder instead of using the folder itself. Claude moved things around and we were back in business. I’ll fess up, that one was me.
The scoreboard
| What | Result |
|---|---|
| Time | One day, a Thursday, in between other work |
| Hosting cost | $0 |
| Posts restored | 622 |
| Images restored | 923 (156 still missing) |
| Malware removed | 55 items |
| Old links still working | All of them |
The good, the bad
The good: It’s fast, it’s free, and there’s nothing left to hack (well at least I hope..). And for the first time, maintaining this thing is a conversation, not a chore. A little bit of a HCIDKIDT moment (Holy Crap I Didn’t Know It Did That), for the old-timers.
The bad: Claude still needs a human checking its work. Every bug above was real, and every one was caught by actually testing the live site, not by assuming it worked. Same rule as any deployment: test, then test again.
If you want to do this yourself
- Find your backup first. Everything else depends on it.
- Pick boring, static tech. Plain files are easy for you AND for an AI to work with.
- Test before you trust. Check the live site, every time.
- Use a preview branch for big changes. The redesign you’re looking at was built and reviewed on a preview link before it ever touched the real site.
What’s next
New posts on ServiceNow, AI, and what I’ve been building with Claude, both at work and at home (Shopify automation, CNC files, and more). The old archive stays put for anyone still running ConfigMgr 2012. You know who you are.
Hope this helps someone else dust off an old blog. Let me know your thoughts/comments!
-Chris