color
scheme

April 18, 2023

it's been a long time coming, but I am finally developing a new site for myself. I'm taking the opportunity to wrench myself from my usual choice of the Kirby CMS in favor of something more minimal, and with no server-side reliance: the static site generator Eleventy. After suppressing the initial sinking dissociation of seeing that ridiculous list of node dependencies and the further shock of being able to throw so many data formats into an Eleventy document, I'm finding it pretty sick and dope to use. It's refreshing to not have a full PHP application buzzing away on the server just to produce some simple HTML pages, and the hot-reloading local dev server included is very slick. I've heard about systems like this since meteor.js probably 10 years ago but I just never wanted to take the leap into full js life.

Dogs Bower front
Dogs Bower, for scale

The benefits of static websites are numerous and include portability and perfect archivability, and I wanted my own site to reflect something real about how I believe webpages should be. The Maybe I'll explore that belief more if I decide I enjoy blogging, but that belief can be summed up in one concept: Webpages (distinct from websites) are documents, not applications. Perhaps a more practical benefit of using a static site generator is that with services like Github Pages and Netlify, hosting can be free once again. But why not just do it how it was done before? PHP driven sites come pretty close, as they traditionally end up with pure HTML after generation, and I do like its time-tested, crusty vibe. PHP, however, is actually quite a bad language, and its success as the king of small, even arty website development is due, as far as I can tell, to only one factor.

The one thing I wanted to avoid was client-side, runtime generated content with a mess of javascript to put everything in place, which has been the norm for some time with various popular javascript frameworks poising websites as "apps," necessitating the backing of multi-billion-dollar companies just to make it all work using a language as ill-suited for this purpose as javascript. The issues that come with this style of development are so numerous and intrisic to everything that I disagree with about the world of modern web development that to begin to name them here would be for me like peering into hell. With Eleventy, at least, the relatively modest mess of javascript stays on my machine and hangs together just long enough to produce the version of the site that I wish to face the public.

Dogs Bower back

It's perhaps ironic that all of this rube-goldbergian modular machinery normally in service of these frameworks I'm avoiding, when used for static site generation, ends up with equivalent functionality of much older PHP-driven systems. But it feels new. Using Nunjucks for the templating work feels so close to certain PHP templating engines that I have to laugh that maybe there really is no better way.

All of that being said, Kirby still rocks, and for client work, the custom admin panel is undefeated. Clients have very few issues with the client panel for updating their sites, and the Kirby team continues to make improvements on their product (Though the simplicity of Kirby 2 vs newer versions will always make me wonder if it could have gone another way).