I created lots of blogs in my life, about a lots of subjects. I did movies & video games reviews, personal, company & technical blogs. I used a lot of blogging solutions. One of my last blog, already hosted on my current domain, was I think my best blog. Maybe because I know more about my subject, but also by its technical aspect. Built with Pelican, it was a static site. It got a lot of traffic. I would have kept its content in this new blog, basically the same blog with a different theme and a different site generator, but I messed up and lost all its content. I never pushed my old blog to git, for no reason. I had to format my computer with all the blog data (it was a company computer, and I was given a new one). I deleted my two backups from my USB drive & external hard drive, because of some partition type. And I forgot to renew my hosting, losing the built site himself. I wanted to blog again for a long time. In fact, I never wanted to stop, but I had a hard time finding the right work/life balance. Now I’m confident that I found it, and it’s time to blog again. I’ll start by telling why I chose to build my blog with Hugo.
Why a static blog
For a long time, I was tempted by Medium. Even today, writing this blog post, I’m still thinking maybe I would be better off with only using Medium. It gots a nice UX for writing post, a good UI for reading them, a big tech & non-tech community, and a kind of easy to reach audience. But I prefered to make my own blog. Because I own the design, I’m not dependant on the mood of Medium. Because my posts will be forever owned exclusively by me. And because I’m only dependant on myself, not a third party. I know how using a third party can be awesome and relieve you from a lot of boring tasks, but for this specific case, owning all parts of my blog is something important for me.
Now that I established why I’m not using Medium, let me get back about my Pelican blog. I made the theme myself, wrote posts in my favorite editor, and deployed everything to the most basic OVH shared hosting. At only 25€/year, it handled 1.5k unique visitors in less than an hour without any hiccup (I got to the top of HackerNews, didn’t expect that much traffic). Way before that, I had a wordpress blog in the same hosting, but I had lots of MySQL errors when I reached only 30-50 daily users. It was a long time ago, Wordpress has gotten better since, OVH too. But those experiences made me realize one of the power of a static blog: there is almost no server load.
Another surprise came with Pelican. Without doing any SEO, I was getting high on Google searches. For example, I wrote a post about using Debian as a media center with a specific motherboard. There was a lot of problem to solve, finding the right packages, the right repos for every codecs to work. There was a lot of activity in the official Debian forums and wiki about this subject. But my blog post was the first result for everything related to this, and even on some similar topics but not directly linked. Google favors performance a lot, and by having fast response and not trying to manipulate their algorithms, I won the first place.
Finally, I love writing in markdown. I love being able to write with my favorite editor. I even got a linter for my English (write-good). I love using versioning even on my blog posts, and I love git as a versioning tool. I also want to be able to handle as much traffic as I could, and I’m kind of cheap, so Ghost is too costly for me. Hosting it myself could be a good condition, but it would mean managing the server load myself, and managing the updates, and I don’t want to do any of this.
Then I tried Metalsmith, another popular node generator. This time I wanted to be able to do basic things out of the box. After an hour I gave up this one too. It seems powerful, but not centered around a theme. At first, it does nothing more than moving files from your source folder to your public folder. You have to pick every part of your build, configure it. It’s awesome for customization, espacially with easy to make extensions. But I want someting that works out of the box. I just want to make a theme, and write blog posts.
To describe my experience with Hugo: it simply works. The documentation is good, giving my 80-90% of the answers I seek. The internal modules are easy to use and powerful, the templating logic is natural and easy to use (no more hacks around outside template engine). From the installation of Hugo to the state where I was with Hexo after almost a day, it took me maybe an hour. Then almost everything after that was just working on the typography & style of my blog, which is totally indepedant from the generator. I’m now a fan, and you can read my blog thanks to Hugo.