This blog is written with Hugo. The choice was originally inspired by my interest in Golang. A blog is a valuable way to keep notes on your developer journey. When I decided to start my developer blog, considering all the options, everything seemed like a massive time investment—-until I found Hugo.
Self hosting a blog
I wanted to self host a blog to preserve the uniqueness of my voice. Medium may improve reach, but I want to find my voice first by writing lots of content and being free to experiment. I also want to experiment with tools and technologies along the way.
First impressions of Hugo
In my first attempt with Hugo, I simply ran the Jekyll migration command. It went so well that there’s not much to say about it. However, I did not attempt to customize much of my blog because I found the documentation overwhelming, I didn’t know Go yet, and I was wondering if I was too hasty to drop Jekyll. A success story from Low Tech Magazine inspired me to keep going.
After taking the time to learn Go, I find that I better understand the theme’s code, and I’m more comfortable with changing the theme. Now I really enjoy the blazing speed of Hugo.
Choosing PaperMod Theme was important to getting started with Hugo. If you choose a good theme, most of what you need to learn is in the theme’s documentation.
Learning how to learn
As with most things, when first starting out with Hugo, it’s good to learn a little, go out and do a little. Use the lessons from applying what you learn to form questions as a guide to learn a little bit more.
In practice, the first steps might look something like this:
- Install Hugo
- Create a website
- Install a theme
- Add some content
- Basic configuration
- Deploy to Github pages
Follow it up with questions about what to do next. If you don’t have questions, write more content! Some ideas:
- Tag your posts
- Use some shortcodes in your content
- Add a chart to your content
- Configure social media OG tags
- Add a favicon
- Choose a different theme
Developer Blog
I chose the PaperMod because of its simple design and powerful configuration options for my developer blog. This is a static blog with content I want to add through my normal usage of text editors or through GitHub directly. The blog is published to GitHub Pages, a free hosting service supported in Hugo’s configuration.
Navigating Hugo
Hugo has many features, but it maybe be helpful to learn the most impactful features first.
Content First
Hugo really shines on a website with lots of content. Establish a good base of content first by learning Hugo’s content management features.
Your experience with Hugo will improve if you get more familiar with the basic features of Hugo before jumping into the more advanced features!
Markdown
Markdown is the default editing experience with Hugo and it uses a Go implementation called Goldmark. Hugo provides powerful features for working with Markdown.
CSS classes and attributes
You can add classes to your markdown text, but some configuration is required.
Emojis
😄 Enable emojis 💙 configuration.
Diagrams
Shortcodes
Themes!
There’s an abundance of themes to choose from. Choose one you like, but double check that it has good documentation.
PaperMod provides a wealth of configuration tools for this blog. I am in awe at how well-designed this theme is. The theme docs are my first point to go check how to do something different with my blog.
Choosing a good theme is key to starting quickly with Hugo. Common steps to customize Papermod is well-documented in the FAQ section.
Summary
There we have some good jumping off points for you to see what is valuable about Hugo, and how to be productive with Hugo. Refer to the documentation links throughout this post for reference, the key points are:
- Create and publish a Hugo website
- Write lots of markdown content
- A good theme will get you really far Give it a try and you’ll have a good developer blog in no time!