Building a static website with Hugo

I had two basic requirements when choosing a tool to build this site:

  1. I wanted to build a static website so that I had the freedom to host the site anywhere without having to install, configure, or maintain any server software.
  2. I wanted to be able to write my posts in Markdown. With Markdown, I can write posts with simple formatting both offline and online, on any computer, and with any editor. I didn’t want my posts to be tied to any particular blogging software or CMS.

After some research on Hacker News, StaticGen, and GitHub along with some experimentation, I decided to go with Hugo. I choose Hugo because it was easy to install and run, the Hugo website and documentation was well done, and because it seems to be fast and flexible.

Installing Hugo is as simple as downloading the binary from GitHub and copying it to /usr/local/bin. The following steps illustrate how easy it is to create a new site, add some content, and start a local server:

$ hugo new site /path/to/site
$ cd path/to/site
$ hugo new post/first.md
$ hugo server --theme=lanyon-custom --watch --buildDrafts

Hugo is fast and if you use --watch it rebuilds and reloads content automatically. For a small site like ThreadHunter, Markdown changes are reflected almost instantly in the browser.

My first impressions of Hugo are that it is fast and easy to use locally but I’ve run into issues with broken urls when publishing the site. I’m not sure if this is a problem with Hugo, the Lanyon theme I’m using, or my server configuration.

Look for future posts on Hugo as I add content and work on customizing the site.