This blog currently runs on Hugo but I’ve taken to poking around with WordPress a bit since while Hugo does its job admirably for me and I don’t really mind the write post, commit to git, push to server workflow I have going on with it there are some things that do annoy me, namely the lack of comments, having to manually enter the time and date of a post and not being able to automatically publish in the future—now that last point, I am aware it would be possible through some sort of webhook but I’m just not interested in setting that up at the moment and it seems like something that would be somewhat janky and unexact.
WordPress of course isn’t perfect either, since it requires something other than pure static hosting and will probably require more optimization from a performance point of view but I think having comments—yes, I know about solutions like Disqus but I don’t want the comments being hosted by a third party in a way that I can’t easily export to other places—as well as some other neat things enabled by the site not being completely static such as pingbacks might be worth the extra hassle of figuring out the hosting. I also think the slightly more visual editing flow might not be all bad though I’m very used to the the Markdown based editing available in Hugo but there are times where having something visual is nice, for example when doing something I don’t do as often like adding an image to the post, it’s nice being able to just add it through a visual interface instead of poking around for the proper syntax or snippet to do that.
It would however also mean being a bit more diligent with my backups or potentially getting some sort of managed hosting solution which I don’t really want to throw the extra money on at the moment, since with my current git based workflow my posts are most of the time on at least three different computers: my desktop, my laptop as well as the git server. This means I’m fairly safe from most hardware failures as well as natural catastrophes since the data is stored in a very distributed fashion, but if I start hosting WordPress which I would probably host myself the posts would as a rule only reside on a single central server—sure, they might be cached by a CDN for a short time but that’s not really a backup solution.
Lastly, there is also the matter of getting my posts ported over to WordPress from Hugo. Importers in the other direction are easy enough to find, since static site generators are all the rage around techier bloggers these days but something that would cleanly import a Hugo blog into WordPress doesn’t seem to exist. It seems the best solution for me since I don’t have that many posts—only around 70—is to import them through the RSS importer and this has worked fairly well after I modified it a bit, there was only a single post I needed to manually fix. However, this isn’t a perfect solution since the internal links in my posts seem to be static which means if I end up changing domains which I’m considering going through those links would lead to a redirect. I’m also in general not a huge fan of internal links being static references instead of relative ones, since that means changes to the domain means a lot of editing of posts which is unecessary. Though thinking about it, I think I could probably fix that with some SQL, even now after the posts have been imported, hmm… Or maybe I’ll just modify the importer again and reimport, might be the easier solution. Or possibly the extra redirect doesn’t matter that much since I want to keep the old domain redirecting anyway in order to not contribute to link rot.
Whatever the case, there is still a decent amount of work that needs to be done if I want to go through with this change—which I think I still do even after all the many negatives and seemingly few positives pointed out here. While I have adapted the theme I use in Hugo for WordPress I still haven’t added some of the extra features I want to make use of like comments so that’s something that needs to happen. I guess there’s nothing else to do now than to get working on that.