The Great Experiment

TL;DR: Every single part of this website — Umbraco backoffice, Nuxt frontend, Azure pipelines, and all the infrastructure — is open source. You can dig into it all on GitHub

This site started as a blog, but quickly became something else: an excuse to overengineer on purpose. I wanted to see how far I could push a headless Umbraco setup in Azure — and more importantly, how cheap I could run it without cutting corners on architecture.

The result? A blog that costs about 13 DKK/day to run, with caching, scaling, and a proper setup that would be considered serious infrastructure for something far more complex than, well, a personal blog.

Why Umbraco?

Because Umbraco is the foundation that makes this fun. It’s the friendly CMS, but also flexible enough to let me go fully headless, experiment with caching strategies, and stress-test what a “proper” setup looks like when you treat even a blog as production-grade.

Caching Is the Trick

The experiment now runs on basic-tier App Services, which means both the frontend and Umbraco backoffice are always on. That keeps things simple and predictable.

Every route is cached. Until recently with Azure Frontdoor - but I have had to revise that strategy as Umbraco graciously has provided me with an Umbraco Engage license, and that level of caching combined with personalization... Doesn't gel. So instead the routes are now cached by the frontend with Nuxt Multi Cache, which allows for more dynamic control and notably, allows segmented visitors to break out of the cache (and into another one). More to come on this.