Making static

So in my last post, I was all lyrical about the use of SQLite for my site SoftGuide. Well, that is soon to be a thing of the past. Not because of SQLite or anything, but I have discovered the joy of static websites.

I was recently in a chat room where someone mentioned Hugo. I didn’t know what that was, so I headed over and saw this on their site:

The world’s fastest framework for building websites

Of course, I was immediately intrigued.

Hugo is a static site generator. Now, I have known about such site generators like Jekyll and MkDocs, and I was aware that people use them to write documentation. I also learned some people write their blogs that way, and I couldn’t understand why one would do that.

The problem I have run into lately with SoftGuide is that I wanted to add functionality for writing articles. This turns out to be quite challenging though and, even though there are standard components to use for editing markdown and libraries for rendering it and such sorts of things, having to build a framework to manage the content turned out to be a painful task.

With static site generation, however, the maintenance of the content becomes an absolute breeze.

So after discovering Hugo, I have decided to embark on a rewrite of SoftGuide.

It’s a very steep learning curve. There is a lot to learn in terms of how content is processed by Hugo and how it must be arranged. The templating is also quite daunting. Hugo is written in the Go language and is extremely fast at rendering content, which seems to be a winner compared to some other site generators.

The benefit afterwards, however, is that I will be able to write and publish articles very easily. At least I will spend more time doing that, and not maintaining the framework for it, as I would have been doing.

There is also something very comforting about knowing the content is being compiled into a static site. There is definitely much less than could go wrong in a dynamic site, where pages are being rendered on the fly. By deploying the finished product, it is much easier to confirm that the content is in order. Not only that, but it takes away the processing overhead that dynamic content building on each request has. That’s a biggie!

I am sure I will discover additional challenges along the way, but right now I am excited by what I am seeing and hopefully I will be able to update SoftGuide much more frequently.