I’ve been operating this blog since 2005 (with only 14 posts in the last 5 years), and it’s been a wordpress blog the entire time. But, to put it succinctly, I don’t really like wordpress! I’m fairly adept at making websites, and yet wordpress manages to baffle and confuse me. At one point I had three separate wordpress installations on this domain (main blog, cartoon blog, music blog) just because… I don’t know really. Mostly because I couldn’t structure and design it how I envisioned, and it was simpler just to split the categories into separate blogs.
In recent years, I’ve made four or five sites using hugo (examples include the Pinball Map blog and the fart earth website. Hugo is a static site generator (SSG) powered by the Go language. SSG means that you compile your site locally, and it spits out a bunch of html (and js, css) files, and then you upload that to your webserver. Overall, it’s much more transparent than Wordpress (which is basically just a front-end wrapper that pulls data from a database). I resisted SSG’s for a while, because I was under the impression that I wanted to be able to publish posts from anywhere (home, work, phone). And with SSGs, you need to have the development environment set up locally in order to post. But then I looked back at my posting record, and it turns out I don’t really need to be able to post from my phone or work computer.
I find it much more peaceful to be able to visually see all my files and data (in a file manager and a text editor) and work on posts and development locally. I should probably be using Jekyll instead of Hugo, since I’m more interested in learning Ruby than Go. But Hugo is very fast and there are cool themes and I’m pretty used to it.
Converting my site from Wordpress to Hugo was pretty easy! There are lots of tutorials for this, but I think Yasoob’s was the most detailed and helpful. The gist is that I ran a wordpress plugin that exported all my posts to Markdown format, and included all my images. Then I exported all my comments as XML, and used a script (by Yasoob) to convert them into a format that Staticman uses. After that I put all those files in the appropriate folders (took me a bit to figure out the folder name format that worked with Staticman and my theme). Then I deleted my wordpress database and folders and replaced it with the /public folder that Hugo generates.
The only somewhat-unique thing about my setup is that instead of using Github Pages or Netlify to host my site, like seemingly everyone else does, I continue to used my shared hosting that I pay a couple bucks a month for. I do this in part out of habit, and because I also have many other sites and miscellaneous pages, and because I have lots of +100mb zip files for my music blog, and it’s simpler to just keep them on this server than transfer them somewhere.
By using staticman for comments, I have to have my code on github. I have it on a private repository, and it uses staticmanlab as a collaborator (I tried setting up my own Heroku instance of staticman, but it didn’t work). Then I created a git submodule on the /public folder, and I push that separately to my webserver. The public_html folder on my webserver has lots of other stuff on it, so I gitignored everything, and then whitelisted the files/folders that are generated by Hugo. Anyway, kind of a strange setup, but it’s working pretty well!
The site is much faster. It’s more fun to design. And it’s more approachable to customize.
I’m still in the process of organizing pages and cleaning up posts. I deleted a bunch of crappy posts that I’ve made over the years (such as bad gifs), and will probably do another round of that.