This site runs without a server, without a database, without a plugin. A build produces 234 HTML files, a CDN serves them as they are. People sometimes tell me this is a step backwards.

What does not exist cannot be hacked

A good share of web attacks target things that are not there: a database queried wrong, a form that executes, an abandoned plugin left untouched for two years. Nothing to inject, nothing to corrupt, nothing to force.

One surface is left, and it is a small one: the admin, which talks to the GitHub API with a session token. It is the only place on the site that I watch, and that is why the CMS script is pinned there by version and by fingerprint. The most peaceful security is still the one you do not have to defend, provided you know exactly what falls outside the rule.

What a dynamic site exposes, what is left when there are only files Two columns of four stacked cells, aligned row by row. On the left, under the heading dynamic site, four filled cells carrying: a database queried wrong, a form that executes, an abandoned plugin, the admin. On the right, under the heading static site, three empty cells drawn with a dashed outline carrying nothing to inject, nothing to corrupt, nothing to force, then a fourth filled cell drawn in the accent colour carrying the admin. Below that last cell is written: the only place on the site that I watch. DYNAMIC SITE STATIC SITE a database queried wrong nothing to inject a form that executes nothing to corrupt an abandoned plugin nothing to force the admin the admin the only place on the site that I watch
Four surfaces on one side, a single one on the other, and that one is watched.

Nothing to bring down, nothing to maintain

A traffic spike that brings a dynamic site to its knees slides off files duplicated as close as possible to the visitor. On launch day, when the audience jumps all at once, the question does not come up. That robustness is not added afterwards: it is in the architecture, or it is not there at all.

Two chains for one and the same traffic spike Two rows of boxes linked by arrows, one above the other. On top, three boxes of equal width filling the whole line: a server, a database, a plugin; the heading on the right reads a dynamic site to its knees. Below, only two boxes, drawn in the accent colour, filling no more than the first two thirds of the line: a CDN, then 234 HTML files; the heading on the right reads as close as possible to the visitor. A TRAFFIC SPIKE A DYNAMIC SITE TO ITS KNEES a server a database a plugin A TRAFFIC SPIKE AS CLOSE AS POSSIBLE TO THE VISITOR a CDN 234 HTML files
The same traffic spike: three things to bring down on top, none at the bottom.

The rest follows. No server to patch every month, no emergency security update on a Friday night. Hosting costs a fraction of a dynamic site, often nothing at all, and the money goes to design and content rather than to plumbing.

A static site does not go down because there is nothing running. That is less a feat than a consequence.