Every so often I tweak and reconfigure my website, and this post ceremoniously marks one of those events. Way back in the early aughts I used to host an early blog on some python blogging software that I was writing myself.1
Naive and inexperienced the software barely worked, but I was proud that it managed to actually render a website and included user accounts and comments. As soon as I realized how much further along other software was I quickly abandoned my little project and switched over to Wordpress.
Initially I was just hosting a blog on Wordpress’ own servers, but soon I decided to strike out on my own and rented a VPS from Digitalocean. Having my own server gave me the experience of setting everything from ground up, running multiple websites, and coming to understand some modicum of the complexity behind the Internet. Up until now this server has just run a couple of Wordpress installs and served a few static sites.2
However, a couple of years ago I started transitioning my site away from a front-facing blog (for which I never wrote with any frequency) to a personal page with secondary blog. This is possible in Wordpress and for a while I had a reasonable setup working that I was happy with. But, with the lack of much dynamic content on the site Wordpress often seemed like overkill. At the time I was reading about the rise of static site generators. After doing some research I finally settled on Hugo and set to work trying to get it up and running.
One of the things that attracted me to the idea of a static site generator is that it let my server concentrate on the simple act of serving up static html files rather than interpreting every request and rendering a new page for the user. The latter method is computationally intensive, and also a vector for bugs and security issues. Static site generators, on the other hand, usually generate the html files from Markdown so your content is more readable and portable even if you choose to move away from a particular generator.
Just to highlight Markdown, the files are human-readable, they’re just text with very simple markup. For instance, the raw text of this post can be read here, as you can see it’s plain-text with a few formatting characters, easy to write and easy to read (without needing any special programs). This format can then be converted into any number of other formats via the great pandoc project. So, for example, here’s this post converted directly into a PDF.
I was able to export all of my old Wordpress content into Markdown which made the process of switching over less painful then it could’ve been. The real hangup was in designing the look of the site. Wordpress makes theming a site particularly easy, you can look at a gallery of popular themes and even preview them on your site. Themes for static generators are harder to install and haven’t really settled on a standard way of doing things so each one requires tweaks and changes to fit your particular site. In the end I just created a my own very simple theme based on Boostrap, a very popular CSS library.
So that brings us up to now. I’ve got this site running via the Hugo static generator on a VPS from Digitalocean. It’s only been a week or so running the new setup but it seems alright. I may even try to write more, but we’ll see…