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.
I started using Bitbucket before Github offered free private repositories, so I’m sticking with Bitbucket. There shouldn’t be any difference here.
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’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
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.
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.
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
www custom resource record, as recommended by Netlify.
Once you’ve added your site to Netlify, just deploy it. Boom, done.