The purpose of this website is to report results from putting Hugo up against Nift on build times. A nearly empty website was created using Hugo with 10,000 pages (repository, demo), the exact same website was replicated using Nift (repository, demo).

Read the repository readme for how to build the Hugo website. To build the Nift website run nsm build-all -s from a terminal/command prompt window.

The times in the following table were computed on my 2014 11" i5 Macbook Air with 8gb ram running Ubuntu 18.04 with desktop environment gnome-session-flashback. Snap was used to install Hugo (version 0.80.0) while Nift (version 2.3.10) was compiled and installed from source.

Site Generator Real User Sys
Hugo v0.80.0 4.222s 11.644s 1.276s
Nift v2.3.10 1.107s 1.846s 1.982s
Site Generator Real User Sys

Note that real build time is what really matters when it comes to checking changes and getting back to coding. Nift is the clear winner when it comes to real build time coming in almost four times as fast as Hugo at building the whole website.

Also if you take the build updated functionality of Nift in to account (which Hugo does not have as far as I have been able to work out), Nift can run build-updated -s with real time of ~0.221 seconds on my machine. So Nift can be almost 20 times faster than Hugo at building your website.

I have checked the build times with Nift using the same website but with 20k pages and 100k pages, the build times scale linearly (ie. 20k page website build times are double the 10k page website build times, and 100k page website build times are ten times the 10k page website build times). Unfortunately this trend does not seem to scale to millions of pages, though a website with 2 million pages has been successfully built with Nift on an old ~2011 macbook pro where I replaced the memory with 16gb (I'm more worried about my file system crashing going further).

The in-built scripting language functionstein (f++) for Nift can be extremely fast as well. Here is an f++ script which creates and deletes 100k files which runs in a little over 3 seconds on my machine, make sure you do not have the directory open outside the terminal when running the script otherwise your file system will crash. Alternatively this bash script takes more like 3 minutes. The somewhat inconsistent whitespace etc. in the f++ script is a follow on from just showing the language is flexible enough there for people to choose their own style to keep consistent (depending on the impression one is trying to convey of course).