When looking into the JAMstack and Static Site Generators (SSGs) for the first time, you’ll find a lot of folks that use either Jekyll or Hugo (and yes I see you staring me 11ty, Gatsby, Ember, and the rest of the gang; but I only have so much space to make the title into a bad joke).
Often times, the conclusion reached when comparing Jekyl and Hugo is that Hugo is a better choice because of it’s single Go binary and stupid-fast build times.
I think Jekyll however should be the first choice if you’re getting into static sites. I say this because of Jekyll’s maturity in the SSG ecosystem, it’s simplicity of theming, it’s similarly simple method of including templates, it’s extensive collections feature, easy-to-understand Ruby syntax, widely available documentation & tutorials, and it’s use of the Liquid templating language.
And yes, it’s slower than Hugo where build times are concerned, but is that really a problem? The best-practice for SSGs is to build locally anyway, and therefore I’m not fussy if my site takes
3s to build in Jekyll vs
300ms in Hugo, since the HTML output is the same (and that’s really the important bit, eh?).
The above being said, using Shopify’s Liquid Parser (written in
C) combined with adding
incremental: true to Jekyll’s
_config.yml (enabling incremental builds) will give hot-reloading times of
1s when serving, and reduce overall build times by almost
70% in my experience.
Also, I use Netlify’s CLI and recommend others do so, as building locally is orders of magnitude faster than letting Netlify (or GitHub/GitLab/Vercel) spin up a container runtime, verify dependencies, and execute a build. If one’s build workflow is local instead of remote, you’ll save valuable build minutes, have faster builds, and then the only bottleneck of sorts is the upload speed to where the site is being deployed.
And just to be clear, this is less of a post trying to vouch for Jekyll as it is an encouragement for others not to immediately dismiss Jekyll when looking at SSGs. Jekyll’s innate simplicity shines when website complexity rears it’s ugly head, and it can definitely hold its own at scale.
I do think everyone should try out different SSGs, especially if they’re written in a language you’re familiar with (and therefore have a runtime to utilize) or — and here’s my personal litmus test — if you can read the documentation in one pass and understand fundamentally what's going on.
So by all means give the gamut of SSGs a try, but don’t forget Jekyll; contained within it is a monstrously capable Hyde.