My Blogging Experiences
Within the last year I decided to start blogging again. Years ago my blog had been based on Wordpress. There seemed to be a lot of "magic" that I didn't care to understand, which led to me feeling like I couldn't customize my site as easily as I'd wanted. Combine that with the alerts from my web host about outdated Wordpress installs and plugins it had become more of a headache to use Wordpress than it was worth to me to publish an occasional blog post.
Fortunately static site generators have become more popular, and with good reason. They offer simplicity in content creation and improved performance and security when your content is deployed. Hosting these files is usually cheaper (sometimes free) and easier as you're only distributing pre-rendered HTML files. This also plays very nicely with caching and CDNs too.
The whole "static site thing" clicked with me. I liked the idea of maintaining a git repo of markdown files for each blog post. When I first started with static sites I looked around online and found what other people were doing to maintain their static sites. It seemed like Jekyll had a pretty good community and I decided to give it a shot.
Ultimately I feel like this was the wrong decision for me. I've never worked with Ruby, so I had to install it. I was unfamilar with how its package management system worked, how to build stuff, and the command line interface (CLI). I convinced myself that it wouldn't be that bad because "look at how simple those instructions are on the website."
Over time when I would try to write a post I'd get errors related to various packages, things would stop working, I couldn't easily setup my writing environment on another system, and the list goes on. This became another headache for me so my writing slowed down again. To be clear, I'm not knocking Jekyll, I know a lot of people love it. It just wasn't the right tool for me and that plays into my next decision.
Enter Hugo
Hugo is a blazingly fast static site generator, written in Go (not that it matters to much to an end user). It takes a few milliseconds to process my content from markdown to html. At the time of writing this I don't have a ton of content, but other sites like Smashing Magazine do and it works well for them. You can read more about Hugo at it's website gohugo.io
Why do I like Hugo? The thing that first caught my attention about Hugo is that it is just one executable. Rather than installing frameworks and packages and hoping things don't break when I want to write something I've got one file for managing everything. Only one file to worry about updating when a new release comes out. Only one file to have to worry about managing for a build & deployment pipeline (more on this later). This was exactly what I needed.
I've found the CLI pretty straightforward and well documented. Anytime I've had questions their documentation, tutorial videos, or discourse site have been helpful in getting me back on track quickly. The same goes for most aspects of working with Hugo, whether I'm creating a theme, organzing content, creating a shortcode, or something else I've been able to get up-to-speed very easily with Hugo.
Wrapping Up
Static sites are making a comeback. This is in large part due to the performance and security gains site owners will experience after making the switch. An often overlooked aspect of static sites is finding the tooling that fits you right, so try a few out before you settle on one. As far as generators go there are many options to choose from, I happen to love Hugo. Find your new favorite static site generator today!