Blaugust has inspired me to write a lot more, and to think about my blog, so I thought I would start writing an open-ended series of posts about a very long-term, often-neglected project of mine: Migrating to a new blogging platform.
Over the years, I’ve made a bunch of web sites. I’ve been with a bunch of different web hosts. I currently have four different web sites that I “maintain” (with varying degrees of updates, from none to frequent): A real-name site, a writing site, a music site, and a gaming site. They all have different domain names. Only one of those actually gets any traffic, and that’s the gaming site (ie. this one). My real-name site used to get some traffic when I wrote about politics and stuff, but I haven’t written anything there in years. I’m quite sure my family thinks I’m dead.
First let’s define the problems that I want to eliminate. Large migration projects should always start with a mission statement, or something like that.
Too Many Sites
I usually only update one site at a time. When I’m interested in gaming, I update the gaming site. When I’m interested in writing, I update the writing site. And so on. This means there are long stretches where one or more sites appear to be dead. My real-name site, which is basically a landing page where prospective employers can Google me, is a ghost town. Having to go different places to add content is a pain.
For a long time, I’ve wanted to present a unified front on the web, a single place where everyone can go to see everything I’m doing. For a while I setup a Tumblr that mirrored all of my blogs. I think I still do. I’m not sure actually. It might have gone dark by now.
Web Host Woes
My current web host is driving me insane. It is slow delivering my pages. It’s really, really slow. I have seen it take up to a full second to deliver a static HTML web page. It may not affect you the reader that much, but it affects me the writer a great deal when I’m on the site editing blog posts. It’s maddening.
Beyond that, my current web host does not provide any free SSL certificates. In 2019, free SSL certificates should be standard with every web host plan. One might even opine that web hosts in 2019 should not even allow unencrypted sites.
WordPress Is Yuck
I hate WordPress. There, I said it. It’s big, it’s bloated, it’s antiquated. It’s just a mess. It’s the dictionary definition of a long-term software project that has suffered too much entropy and can’t possibly recover from it. It’s like using Microsoft Word when you just want to make a grocery list.
You folks who just use the managed WordPress site may not see it, but I run a self-hosted installation and it’s really not fun. There’s a reason there’s a whole industry of people who make money writing plugins and themes and maintaining WordPress sites for others… because WordPress is a nightmare to deal with.
So now let’s set out some goals for this long-term project of mine, the Quest For The One Blog. How can I fix what is now getting to be close to 20 years of web entropy?
Change Web Host
During this migration, I definitely want to move to a different web host, one that can serve up pages in less than a second. I’m kind of broke right now, so it’s almost certainly going to be one of those $5/month shared Linux hosting plans. I already have the domain names that I can point there.
Change Blog Platform
I do not want to use WordPress anymore. Honestly I would prefer to use a .NET solution, but given my restriction of using a shared Linux hosting plan, I’m probably going to be stuck with PHP or Node.js or Ruby or whatever the latest web-related flavor of the month is.
And before you say it, no I don’t want to use Blogger or SquareSpace or any other managed blogging service, either. For one thing, managed services are almost always at least $20/month. For another, I don’t want to be trapped in them.
For another reason, I want to write my posts in plain text Markdown from now on. I don’t want to touch any kind of web-based WYSIWIG editor in the process of posting blog posts, if I can help it. In other words, I want to write my way, and have the blogging platform adapt to it. I don’t want to adapt my writing process to the blog platform anymore.
I don’t want to maintain a database alongside the blog. I want all of the content to exist as plain text files (as much as possible) within the file structure. This ensures the content can be moved and read anywhere in the foreseeable future. Backing up will become as simple as an FTP download.
I want to create a single repository where all of my blog content can be found. One place for the reader, but even more importantly, one place for me to maintain. This place should be easy to backup and maintain far into the future.
In a perfect world, all the existing links to that content would remain operational, so that existing Google searches will still find my stuff in the new location(s). That means setting up a fairly complex set of redirects.
Accomplishing this goal is going to involve a lot of exporting and importing data from disparate platforms. WordPress fortunately has a fairly robust “export” feature that saves your blog content in a handy XML format. Some places even let you import those exact XML files.
I would love to be able to export and incorporate all of my Twitter content into the archive, and maybe even those dozen or so Facebook posts I did some years back.
The One Blog
Going forward, I want one site where I can put all my content, be it gaming, writing, music, programming, or just personal diaries. One place for everything. The One Blog. The Holy Grail.
This is a complicated subject, though. Obviously I don’t want prospective employers to Google me and find that post where I rant about how much I hate the corporate bureaucracy and plan to take down the whole system from the inside. [Note: That is not real. I made that up for illustrative purposes. I would make a great and dutiful employee.]
Similarly, people who are interested in my thoughts on gaming might not care in the slightest about how I figured out how to apply the perfect EQ curve to a microphone track.
So I have to figure out a way to provide different entry points into my world for different readers, all in the same blog. This is a puzzle I have struggled with for at least ten years, without a good answer. (Other than maintaining multiple blogs for different audiences, which is the exact thing I don’t want to do anymore.) The only solution that comes to mind is some way for readers to opt-in to different types of content, via. account permissions or something like that. It will probably involve multiple domain names as well.
It would be really nice if I could setup a “test” environment where I could tinker with the site before going live with changes. That basically means having the ability for two different sites to use the same content data, or at least having some easy way to clone the live data to a test site. [UPDATE: Ideally I’d like the test site to be on my local network, not up on the web somewhere, so it’s faster and easier to modify.]
I would love to find a way to utilize ASP.NET instead of PHP, but I don’t think I’m going to have much luck there, unless I want to actually write the dern thing.
UPDATE: One goal I forgot is that if and when the “switchover” takes place, I want it to be fairly seamless for the reader. Existing RSS feeds will continue to work, bookmarks will not have to updated, things like that.
I’m sure I’ll think of other things along the way.
So there it is. Simple goals, should be pretty simple to make it happen.
With this series, I hope to document the slow descent into madness that this undertaking will surely cause. Simply declaring “I don’t want to use WordPress anymore” renders 99% of all Google search results about blogging useless to me.