September 7, 2026
the favicon that would not die
A redrawn favicon that refused to update in the tab, why it was never the container, and the query-string trick that finally forced it.
September 7, 2026
A redrawn favicon that refused to update in the tab, why it was never the container, and the query-string trick that finally forced it.
September 6, 2026
Stepping back over everything that changed: the green palette, the pixel mountain, sidebar nav, the birds, the night sky, and why light mode was the hard part.
September 5, 2026
Making the header's night mode use a background mountain traced from a photo and real constellations.
September 4, 2026
Moving the site nav from a top bar to a sidebar, with small pixel icons per section.
September 3, 2026
Adding puffins and then way more birds than planned to the header scene, plus fish and a tiny runner.
September 2, 2026
Drawing Lovundfjellet as pixel art for the header, and the fight to get the shape and the favicon right.
September 1, 2026
The old blog design was too generic, so I started over with green and a Lovund feel.
July 3, 2026
What actually broke during the first full walkthrough of the finished blog, the comment 413 mystery that never quite resolved, and what building all of this actually taught me.
July 1, 2026
What a reverse proxy actually is, why every service sits behind one Caddy instance, auto-TLS I haven't tested for real yet, and getting healthchecks to actually mean something.
June 29, 2026
What MinIO and S3-compatible storage actually are, how the blog checks upload types before saving them, and the size-cap bug that took way longer to find than it should have.