FR EN ES
2026-02-08

Why a static site

This site is static. No database, no PHP, no CMS begging you to update seventeen plugins before you can type a comma. HTML files, some CSS, and that's it. And I'm going to tell you why that's exactly the right call.

The factory no one asked for

WordPress. Ah, WordPress. The Swiss Army knife of the web, its fans say. Except a Swiss Army knife, in practice, is a bad knife, a bad screwdriver and a passable corkscrew. WordPress powers 40% of the web, and roughly 40% of the web is slow, vulnerable and stuffed with "Accept cookies" popups. Coincidence? (cough)

For a personal blog (a few posts, a few pictures, zero comments because let's be honest nobody comments), WordPress is like driving a lorry to the corner shop. With air conditioning, GPS and a co-driver.

What about hosted platforms, then? Medium, Substack, all that? They solve the maintenance problem, sure. But in exchange, your content lives on someone else's turf. Subject to their terms, their strategic pivots (because they need to raise another round), and their eventual shutdown. You're not an owner. You're a tenant. And the lease is revocable without notice.

JavaScript, no thanks

We need to talk about JavaScript.

My relationship with JavaScript could be described as "adversarial". In the sense that JavaScript gives me a rash and I return the favour. A website in 2026 averages 2 MB of JS before displaying a single paragraph. Two megabytes. For text. We sent people to the Moon with less memory than it takes to load a blog post on a React framework.

Meanwhile, your old laptop is choking, your screen reader is gasping for air, your mobile data plan is melting away, and half the planet with a slightly slow connection is staring at an eternal spinner. All to display words. Words!

I want an accessible web. One that works on an 80-euro phone as well as on a MacBook Pro. One you can read with a screen reader without wanting to throw your computer out the window. One that loads in a second on a rural ADSL connection. One that doesn't ask your browser to compile an entire framework just to show you a paragraph.

Semantic HTML, sensible CSS, and nearly zero JavaScript. This site can count its <script> tags on one hand, a Simpson's hand at that. As I write this, just one, on a single page, for an interactive diagram, because sometimes you have to. Everything else is pure HTML. Try inspecting the source if you don't believe me. It's the most boring page you'll see all day, and I'm proud of it.

From Pelican to Zola, via Nikola

A static site needs a generator, though. And that means picking a tool. I've been around the block.

Pelican first. Python, friendly community, got the job done. Until the day I wanted something slightly custom in the templates and found myself debugging Jinja2 at 11 p.m., wondering what I'd done to deserve this. The theme ecosystem is... let's say vintage. And multilingual support was more acrobatics than feature.

Nikola next. Python too, more complete, more features. Too many features, actually. Nikola does blogs, sites, photo galleries, Jupyter Notebooks, microformats and probably coffee if you ask nicely. For my needs (Markdown files, three languages, clean HTML output), it was the lorry again.

And then Zola. A single binary. No dependencies. No pip install breaking everything, no virtualenv, no Node.js (shudder). Download, run, it works. The template engine is built in, multilingual is native, compilation is instant (thank you, Rust). It's fast, it's lean, it's exactly what's needed and nothing more.

The beauty of the thing that does nothing

A static site generator takes Markdown files and produces HTML. Full stop. No server interpreting anything. No database sitting there patiently waiting for a script kiddie to come tickle it.

What that means in practice:

Write, don't administrate

Writing a post on this site means: open a text file, type, save. No dashboard. No form. No internet connection needed to write (train wifi, anyone?). Content is in Markdown, a format readable by the naked eye and convertible to anything.

And if Zola vanishes tomorrow? (It's open source, I'm not really worried, but let's play the game.) The Markdown files remain. I switch generators in an afternoon. Hugo, Eleventy, a homemade Bash script on a rainy Sunday… the content couldn't care less.

Try migrating a ten-year-old WordPress to something else. No, seriously, try it. I'll wait. (sounds of coffee being poured)

Right tool, right job

Let's be honest: a static site doesn't do everything. If you need user accounts, real-time comments, a shopping cart or a web app, you need something dynamic, and that's fine. I'm not saying all modern tech is useless (just a good chunk of it, but that's another post).

But for a blog? A portfolio? Documentation? A personal site where you talk about your life, your games and your more or less well-founded opinions? Static is faster, safer, simpler and more durable than anything else.

Less technology, more content. And content is what remains when the frameworks are gone.

The three monuments

I discovered these sites around the same time I discovered CrunchBang Linux. For those who missed it: CrunchBang (#!) was a Debian with Openbox, a grey wallpaper, a right-click menu, and nothing else. It booted in three seconds on a 2005 PC and did everything you asked without complaint. The day I installed #! on an old laptop I thought was destined for the tip, and it came back to life as if nothing had happened… I understood that I'd been lied to for years about what a computer "needed" to run.

It was exactly around that time that I stumbled upon these three sites (sensitive souls beware of the colourful language):

motherfuckingwebsite.com, the original manifesto. A raw HTML page, no CSS, no JS, no images, no nothing. Black text on a white background. And a bulletproof argument: is your site responsive? Mine is too, by default, because I didn't do anything to break it. Does it load fast? Obviously, there's nothing to load. It's the slap in the face every front-end developer deserves who ever typed npm install to display text.

bettermotherfuckingwebsite.com, the response. Same philosophy, but with a tiny bit of CSS: a max width, a readable font, proper margins. The message: you don't have to choose between "ugly and functional" and "pretty and unusable". A few lines of CSS are enough. Not a framework, not a preprocessor, not a bundler, just CSS written by a human who remembers what it's for.

thebestmotherfucking.website, the third act. A notch above in design (dark theme, polished typography), still no JS, still lightweight, still accessible. Proof that minimalism and aesthetics aren't incompatible. You can make things beautiful without making them heavy.

These three sites taught me exactly the same lesson CrunchBang had taught me on the desktop: most of what we pile onto our machines and web pages isn't there for the user. It's there for the developer, the designer, the project manager, the client demo. The user just wants to read some text. And to read text, they don't need any of it.