No build step, on purpose

nordicops.dev is hand-written HTML, CSS, and a few dozen lines of vanilla JavaScript. There's no static site generator, no templating engine, and no npm install. Every page is a real file you could open in a text editor and read top to bottom. For a site this size, that's not a limitation — it's the fastest workflow I've found, and it means the site will still build in ten years because there's nothing to build.

The tradeoff is obvious: updating something that appears on every page — the navigation, the footer — means touching every file. I accept that in exchange for never debugging a generator, a plugin, or a dependency update that broke a layout at 11pm.

Type and color

Body text is set in Inter; anything that resembles code, metadata, or a heading uses JetBrains Mono. The color palette is deliberately narrow — a near-black background, one accent teal borrowed from the Nordic aurora rather than any specific brand, and amber reserved for warnings and highlights so it doesn't lose meaning from overuse.

i

Dark mode is the only mode. I write about dark mode done right in this post — this site is the implementation of that argument.

Hosting and infrastructure

The site is served as static files behind a CDN, with the origin sitting on a small VM in the same homelab documented on the uses page. Deploys are a git push and an rsync script — no CI pipeline, because there's nothing to compile and the whole site is under a megabyte.

What I'd change

Realistically, the lack of templating will eventually get annoying enough that I write a five-line script to stitch header and footer includes together at deploy time. I've resisted so far because every time I think about it, I finish the actual blog post instead.

!

If you're viewing this on a spotty connection: good news, there's nothing to wait for. No web fonts blocking render longer than necessary, no client-side framework hydrating before the page becomes interactive.