Hello World! In this first post, I’ll get into how this blog is being hosted. I’m using Hugo, Bitbucket, and Netlify.
Comparisons
Framework
I wanted something easy, useable for programmers, flexible, and cheap. I’ve used Jekyll, mainly via the Yext Engineering Blog. Jekyll was a little annoying for me, and I wanted to try something new.
For example, Jekyll draft posts are placed in a _drafts
folder, then moved to the _posts
folder once you’re ready to publish. In Hugo, there’s just a draft
option in the post front matter. I don’t have to move stuff around to publish a draft. Configuring Jekyll was also a little annoying, though admittedly I didn’t really look too much into this.
I briefly took a look at Ghost, but gave up when I couldn’t find out if or how I could run it on my own infrastructure. $29/month is way too much for a nascent blog.
I’ve used Medium in the past, but I don’t want to use it for a hopefully long-lasting blog. Medium is great for individual posts, but you kind of lose ownership over your content. Additionally, I’m currently starting out with exclusively free posts. Medium’s been more aggressively pushing their premium content, which I’ve found very annoying as a user.
Wordpress has too much stuff that I don’t want to deal with, and is a bit annoying to use for programming stuff. Medium and Wordpress also have issues with easily being able to move my content around.
Repository
I started using Bitbucket before Github offered free private repositories, so I’m sticking with Bitbucket. There shouldn’t be any difference here.
Deployment
Most of the sources I found that were using Hugo were also using Netlify. Their basic plan is free, and they seem quite easy to use.
Hugo
Hugo’s Quick Start is quite easy to do. I was also pleased that it’s very easy to run Hugo in draft mode:
$ hugo server -D
Rather than using the Ananke theme, I’m starting with Ezhil.
A note for anyone else new to submodules—they’re essentially repos within your repo. The quick start instructions describe how you add a theme as a submodule. If you clone your repo somewhere, you’ll need to initialize and update your submodules, as mentioned here:
$ git submodule init
$ git submodule update
Repository Setup
Now that you have a new Hugo site locally, you want to create a repo for it. If you’re starting a brand new repo, Bitbucket has instructions on how to get your existing stuff checked in.
Domain
I believe you don’t need a custom domain to use Netlify, but I imagine you want one. You’ll want to find and buy a domain, such as via Google.
Netlify
As advertised, Netlify was extremely easy to set up. First, create an account and link your Git provider. Then click New site from Git. Select your repo, and you’re set. The basic build settings should be correct.
If you’re using a custom domain, you’ll need to get that set up as well. Netlify’s DNS configuration instructions are here. If you’re using Google Domains, you’ll want to add an @
and www
custom resource record, as recommended by Netlify.
Hello World
Once you’ve added your site to Netlify, just deploy it. Boom, done.