I spent 2 years making this blog and in this article I decided to summarize that process so that, hopefully, you can make it a lot faster than me. Is is primarly aimed at technical folks (aka IT professionals) but other people can benefit as well.
Mistake #1 - spending too much time on blog customization
Most of that time I got stuck in an infinite loop of picking the right tooling and theme. First looking for the right toolkit (jekyll, then pelican, then hugo, then again pelican and so on…) then when I found my perfect tooling I started looking for my perfect theme and customizing it (jekyll + indiego) and as a result… well, as a result I only wasted time. Please don’t make the same mistake. One wise man told me once - perfect is an enemy of good. Pick tooling that you like and the theme you feel is good enough. In that order! You can always change theme latter or make a custom one if you feel the one you are using is not good enough. That’s how I finally made a choice to pick hugo as a tooling and hugo-future-imperfect-slim as theme. And I don’t regret it.
On blogging tooling
So I decided to summarize my research. Hope it helps someone.
Generally, what you need from a tool:
- fast refresh - you don’t want to wait ages for page reload during testing
- support for Google Analytics
- support for comment system (like Disqus)
- extensibility - plugins that integrate nicely.
Static site generators
Static site generators turn blog posts written in Markdown (easy language similar to HTML) into content ready to deploy as a website. As a result while initial setup may be a headache, it is really cheap to host and use it. Options to use are:
- Jekyll - the golden standard of static site generators. Has many themes and plugins but in my opinion lacks the modern feeling. I ran into multiple issues with Ruby versioning. Different plugins working on different versions of Ruby didn’t make it easier. Besides, page reload is very slow.
- Pelican - many themes make it worth trying plus it runs on Python which is easier than Ruby to handle. However, it lacks features like auto refresh and in my opinion is not as mature as other platforms.
- Hugo - runs really fast and became my personal choice. There are many themes and theme ports availabile and reload is really fast. Also comes with Google Analytics and other essential tooling built right in. Usage is easy and because it is binary it is highly unlikely that you run into serious problems.
Wordpress is de facto standard of blog hosting.
- unlimited number of plugins to choose from
- many themes to pick
- you are responsible for hosting the website - sure that also happens with static site generators but wordpress is a little bit harder as basically the only reliable hosting you have is Google Cloud’s always free small server
- security is your job
- patching is a must and is a real headache
There are multiple options that you can use:
- hosting on AWS/Google Cloud/Azure - this can be nice as Cloud providers offer many different services you can utilize (S3 for hosting, SES for email forms) and unless you are a superstar, your blog bill should not be higher than free usage limits. Google offers a nice small instance that’s always free and which you can utilize.
- Github + Netlify - that’s what I personally use and can recommend. Netlify works really nice as you can use multiple static site generators and the site is responsive. It scales infinitely and doesn’t cost a dime
- Wordpress hosting - Wordpress offers free hosting with a “built-in” domain and cheap hosting with a custom one. Worth trying in my opinion if you enjoy customization of the Wordpress and want it to be reliable
- Cheap hosting - sites like aruba.it offer really cheap hosting but I personally don’t recommend it. My friend got his blog suddenly wiped out and content was lost. I would rather invest in something big or stable enough.
Registering a domain
Most domain registrars seem to charge low fees. Well, the real problem is that those “low fees” are for the first year or 2. After that time, the bill grows substantially. To avoid the surprise, I recommend using Google Domains. Here are the advantages:
- flat fee of 12 USD per year (plus the cost of buying the domain if the name is fancy)
- no hidden fees/strange bill increases
- easy to use interface
- free identity protection.
However, please bear in mind that Google Domains is not availabile everywhere. To check if your country is supported, click here.
Unfortunately, due to that very reason I had to switch to Route53 - which is a bit more expensive (as I also have to pay 50 cents per a hosting zone per a month) but aside from that is almost a good as Google’s product.
I hope this post helped you set up a blog or at least eased the burden of tool picking. Please write in comment section what do you think!