Static sites start fast and then slowly stop being fast, usually one convenience at a time. Here is what I have found worth defending.

Fonts are the biggest single lever

A web font is a render-blocking resource that lives on someone else’s server. Two fixes cover most of it:

  1. Self-host and preload. No extra DNS lookup, no third-party TLS handshake.
  2. Set font-display: swap and give the fallback a matching metric, so the page does not jump when the real font lands.

If you only do one thing, do the fonts. Everything else is rounding error by comparison.

Ship less JavaScript

The fastest script is the one that is not there. For a blog, the honest answer is that you need approximately none of it. This site ships a handful of lines for the theme toggle and nothing else.

Feature Needs JS? Alternative
Navigation No Plain links
Syntax colours No Highlight at build time
Dark mode Barely CSS media query + a toggle

Things that matter less than people think

  • Minifying HTML. Real, but tiny once gzip is involved.
  • Inlining every stylesheet. Helps the first paint, hurts caching after that.
  • Chasing a perfect Lighthouse score. Optimise the metric your visitors feel, which is usually time-to-first-content on a bad connection.

<- All posts