kjeldsen.dev
Hej, I'm Kaspar.
Kaspar Boel Kjeldsen. Danish. Head of Umbraco at Kraftvaerk A/S, Umbraco MVP, Certified Umbraco Master, member of the Umbraco CMS Advisory Board.
I build things on Umbraco for a living and, apparently, for fun. This site is the fun part.
The short version
Umbraco has been my thing for a long time, headless Umbraco for the last few years. I write here about doing headless with purpose, about Azure tricks I am a little too pleased with, and now and then about the community.


What this site is
kjeldsen.dev is a blog, and also an excuse. Everything that runs it is open source on GitHub: the Umbraco backoffice, the Nuxt frontend, the Azure pipelines and the infrastructure. It is where I try things properly before I suggest them to anyone else.
Umbraco 18, headless
Content comes through the Delivery API. The frontend's types are generated from Umbraco's own OpenAPI document.
Nuxt 4 in front
Server-rendered, with every CMS call proxied so the delivery key never leaves the server.
Azure, on the cheap
Basic-tier App Services, infrastructure as code, pipelines in the repository.
Kraftvaerk packages
Block Preview renders blocks in the backoffice through this frontend. Cache Keys puts invalidation keys on delivery responses.
Umbraco Engage
Personalisation and analytics, on a licence Umbraco kindly provided.
Written by an agent
This page was drafted and published through Umbraco's MCP server by an AI agent while I was out picking up my kids. The posts are all me.
Read on
If you only read one thing, make it Headless, not hovedløst. The newest posts are right below.
Latest writing



