Static Site Generators

Updated 14-Sep-2023

Static Site Generators

The future of the web seems to be the past, namely static sites produced by static site generators. These effectively remove the database component (or reduce it tremendously) so that websites become much faster and easier to scale. This is not to mention the great impact that PageSpeed and Web Vitals are having on increasing the need for speedier and better user experiences on the web.

For dynamic content such as tracking users, shopping carts, and any personalization, this can come from javascript which would then make the necessary connections to the needed data and drive transformations in the browser.

This post is meant as an overview of the technologies from a digital agency and client perspective. For in-depth tutorials and technical discussion, we leave this to our sister organization Lanna Linux.

SSGs by Programming Language

There are many, many SSGs, but the main ones are organized by programming language, and the primary of each is as follows:

  • Go --> Hugo
  • Ruby --> Jekyll
  • PHP --> Statamic
  • Python --> Pelican
  • JS --> Gatsby

SSGs as a Developers' Tool

I've tried out some of this stuff but to be straightforward, these are tools for programmers, rather than content managers or site administrators. That is, one needs to be very familiar with the languages and the design of the SSGs in order to get them to work.

SSGs and ROI

While a developers tool, this is an important innovation which can bleed over into the mainstream web environment. The promise of reduced cost of management and time is too much to ignore. For those who build and scale sites and contact multiple clients who need higher performance and ease of management, an SSG-based workflow is very compelling. SSGs can deliver a very high ROI, provided it is thought through and demonstrated with pilot projects.

Hugo, Jekyll, Gatsby, Statamic

I tried with Hugo but it was a bit of work and in the end there is only so much functionality one gets out of the box. This is one of the problems when trying to replace a mature system that one has 15 years of experience with a not-as-mature experience that one is just getting to know, and which is not really designed as a replacement.

Jekyll is probably the easiest and most popular to tackle, but dealing with Ruby is such a huge issue, it really makes one weep. Gatsby is well-known and well-loved, but not by me and I am not a javascript developer. This leaves two other languages and options: PHP (which I am most familiar with out of the list) and Python (which I know a little of and whose importance has grown over time). Statamic is a somewhat popular PHP SSG but it is nowhere near mature and supported than the Python option Pelican.

Pelican Maturity

And so, what can we do with Pelican? A closer look at the technology, the learning curve, and what it can deliver in terms of reduced cost and increased performance within a reasonable timescale (ROI).