Building a Blog With Hugo
A quick introduction to GitHub Pages and Hugo
If you read my very first post, you would know that I’ve been thinking about writing a blog for years. I’ve been blogging for years for employers. But, just recently, I finally launched my first technical blog. The one you are reading right now. I also have a travel blog that only gets updated when I travel for vacation. In this blog series, I’m going to talk about how I built my blog site using Hugo. This post is part one of a five-part series. Why Hugo? Keep reading to find out.
Where do I start?
When I decided it was time to get off my butt and finally do what I have been thinking about for years, I looked at WordPress. I have used WordPress in the past for company blogs. It turns out that I built my travel blog on WordPress. However, this time, I wanted to see if I could do things differently. I spoke with several friends about what they were using. Many were using WordPress. But, a few had mentioned they were using GitHub to host their blog.
I also knew I had to start learning more about GitHub as well as continuous integration and delivery. Many folks, people who typically lump themselves into the category of DevOps, refer to it simply as CI/CD. What is CI/CD? Here are some decent articles I like to refer people to:
In a future blog post, I’ll write about how I use CI/CD concepts to publish my blog. For these reasons, I decided I would take a peek at GitHub and see what my friends were talking about.
GitHub Pages
It turns out that GitHub has a feature known as GitHub Pages. To put it concisely, GitHub Pages is a “feature” of GitHub where you can develop your website and host it in a special GitHub repository. Once you are ready to release your website to the rest of the world, commit your changes, push it to your repository on GitHub. Voila!! You have a live website that you built from scratch. You also don’t need to worry about running the infrastructure behind it. GitHub takes care of that for you. Wanna know more? Watch the video below:
GitHub recommends using Jekyll to create your blog. However, I struggled to get the hang of it. I also wasn’t impressed with the Jekyll themes that are officially supported by GitHub Pages. So, I chose to go with Hugo.
Hugo
Hugo is an open-source framework, similar to Jekyll, for building static websites. It is written in the programming language: Go. It is typically referred to as Golang. I have no clue how to write anything in Go. But don’t fret if you are in the same boat as me. You don’t need to know anything about it. Hugo is a simple executable that is available for Linux, MacOS, and Windows. You can find the latest release here. If you are up for the task, you can download the source for Hugo and build it yourself. I chose NOT to go that route. I’m most familiar with Windows so, that’s what I decided to do.
Once you get Hugo installed on your system, you are off to the races!
But, before you create your first Hugo site, go check out the Hugo Themes site. There are a bunch of themes to choose from on the site. My blog is using the Hugo Future Imperfect Slim theme. Once you have figured out what theme you want to use, then you can begin down the path to Hugo website development.
In part 2 of this series, I’ll go through what it takes to get a bare Hugo site built and up and running.
Series Table of Contents
Here is what the rest of the series will cover:
- Part 2: Creating your first Hugo site
- Part 3: Customizing your theme/site
- Part 4: Configuring Google Analytics
- Part 5: Publishing your site
If there is something you think I’m missing and feel should be added, please let me know.