We have been building websites for decades now. And for the last few years, WordPress has been a de facto standard when it came to choosing the platform for the new website. WordPress is a powerful, free, open source CMS, with a great selection of themes and plugins. It also has a huge community which often comes handy.
WordPress is great and we love it, but we also want to play with the new things. So, given the opportunity for our own website, we decided to try a different route.
Static site generators had a fair share of hype lately. The primary reason for choosing a static site generator over the traditional CMS is of course performance. Nothing beats the pre-generated static HTML file.
When it comes to static site generators, there is plenty of choice. The two most popular tools are Jekyll and Hugo. We decided to try out Hugo.
The installation is super easy – either a single pre-compiled binary, or a distribution package. The documentation is good. And the selection of themes is decent too.
It only took a few hours (less than a day) to build a clean and simple website. Have a look at these screenshots.
Managing the content with HTML or Markdown seems very native, and a lot easier than with the What You See Is What You Get (WYSIWYG) editor. The generated site is super fast indeed. Unnaturally fast. It takes some getting used, especially when running on a local machine.
The extra bit of convenience is that everything can be under the version control, like git. This allows easier collaboration and history tracking, than managing the content with visual tools and storing it in the database.
But then there are the downsides as well. Firstly, the themes. They carry a lot more business logic than their WordPress counterparts. This means that switching from one theme to another is not that easy. Each theme has it’s own range of variables, assumptions, and expectations.
Secondly, truly static is rare. Even the simplest of websites tend to rely on some bit of dynamic functionality. Contact form is the simplest example. Integrations with social networks, mailing lists, comments, analytics, and other third-party services should also be considered.
There are solutions of course. For example, Staticman is one of the tools that helps you bring dynamic functionality to the static website. But of these tools, are commercial and/or very limited in terms of functionality.
Thirdly, the deployment process. We are well versed in deploying applications to different environments, but even for us, it seemed weird and unnecessary to have a deployment process for the static website. A dynamic CMS like WordPress makes a lot of sense all of a sudden.
Eventually, after playing around with Hugo for a few days, we decided to go the traditional way – WordPress for the win! But the experiment was well worth it. Even if we are not using Hugo for this website now, we understand the benefits of the tool a lot better now and will probably use a static site generator for more appropriate projects in the future.