Last summer, frustrated over the loss of my personal domain, I bought a cute url and set up a Wordpress blog with the intention of sharing some content about what I was working on. Our son was born around the same time and so the site sat idle for a few months, but when I picked up writing back in November, the experience with Wordpress irked me. Wordpress is a fine CMS, it is great for getting a quick blog up and going, but I wanted more control over my content.
Recently, much to my surprise, I was able to re-register nielsvaneck.com and that inspired me to move my site and finally ditch Wordpress.
Being a software engineer, writing in Markdown and using a Git repository as a home for my content is more natural than using an opaque CMS. With that as a basis, there are some surprisingly simple methods for setting up a website / blog. GitHub Pages offers basic (and free!) hosting from a Git repo. It can be configured to serve on custom hostnames and it even handles SSL! ✔️
To get content in Markdown served up as HTML, GitHub Pages uses Jekyll, an HTML generator written in Ruby, but with a little bit of work, Hugo, the ‘static-site-generator-du-jour’, can also be used.
So, in the span of an evening of tinkering, I now have the following setup:
- I used
wordpress-export-to-markdown
to generate a Markdown version of my exported Wordpress site - that Markdown content is kept in a private Git repository
- a GitHub action using
hugo-remote
automatically generates static HTML pages when the Markdown content is updated and pushes changes to nielsvaneck.github.io, which is served at https://nielsvaneck.com using GitHub Pages - a separate repository hosts a few simple HTML redirects to handle old links to posts on https://nve.ventures (also served on GitHub Pages)
I’m not super happy with the looks of the site yet, but that’s a matter of toying around with Hugo Themes. The important thing is that the setup works and that my content is fully in my control. 🎉
Hope that was useful, and as they say, watch this space.