Technology

Building a website

April 7, 2017

|

Fredrik Westermarck

At smartson.se we were in dire need to update our website that we’re aimed at business’. One of our objectives were to enable the ability to express our brand and vision in a way that we were not able to achieve with our, outdated, Content Management System.

The goal led us on a journey where we in the end, a bit unexpectedly, found our-selfs using a static site generator in-favor of a CMS. My initial reaction when I started to examine static site generators was that it felt that is was going way back in time  — but boy was I proven wrong.

So how did we end up evaluating static site generators? We realized that our use case didn’t require any database-driven backend. The reason was that the features that were going to be implemented on the site were all rather, uhum, static. Except for the content that was going to get published on the site.

We did examine quite a few of the more popular static site generators before we finally decided on Hugo. To name a few of the other SSGs that we also examined; Jekyll, Hexo and Octopress.

Hugo shares a lot of important key factors with other static site generators, like:

The most decisive factors that made us choose Hugo was:

The, by far, major factor for us was that Hugo is fast — lightning fast. Reportedly Hugo 0.16 with Go 1.6 is even faster than Hugo 0.15 that we use. The reports indicate that the build times have decreased between 10% and 99% depending on the complexity of the site being generated. But still Hugo 0.15 is fast as is, and that is fortunate for us since we have to rely on Hugo 0.15.

One hurdle to tackle before starting a new site is to be able to develop the site, another is to have non-technical users editing the content and the deployment of the site and pushing updates. Our new site has two sections that we needed to enable other users within our company to edit, namely the News and the Client testimonials sections.

We started to investigate our different options and found Forestry.io which at the time were in a closed beta test. We applied to participate in the beta to try it out during our development of the new site. Forestry.io is a service that build Hugo or Jekyll sites from a git repository and deploys the site when the build is complete to statics site hosting providers such as Amazon S3, GitHub Pages and more. Forestry.io also solves the editing by non-technical staff by adding an editorial UI on top of the Markdown files that Hugo uses. It also automates the site deployment when content have been added or existing content has been edited.

Once invited into the beta we started using it, and we discovered several bugs, some of them were rather severe to us, but since it was during the development of our new site, it didn’t bother us at the time. The guys over at Forestry.io (Hi, Scott Gallant and Jordan Patterson!) have been more than helpful to resolve the issues that we found along the way. Almost all of the bugs have been resolved in a timely manner. In the fall of 2016 Forestry.io migrated from a closed beta into production.

The drawbacks of using a static site generator tool that one must consider before venturing into a development project using a static site generator. One of the major drawback is that you cannot easily schedule publishing of a post. Sure, you can cron a git push to the repository but that is not something that all users can do. In our case we agreed that this was not going to be a future requirement.

In September we launched our new business site, you can have a look at it at business.smartson.com. We’re pretty pleased with how the site turned out and both Hugo and Forestry.io did provide the features and in the latter case the support that we needed.

After the launch of the business site we decided to move forward with Hugo and migrate about 150 sites that were in need of an overhaul to better match the current Smartson design language. The sites in question were hosted on Wordpress and to make the transition as efficient as possible we developed a basic theme, scripted the export of the sites and the creation of the Hugo sites with the theme. We then generated the sites and deployed them using website hosting on Google Cloud Storage. All and all in a couple of weeks.