TheBuilder.CacheTags
0.1.0-preview.1
dotnet add package TheBuilder.CacheTags --version 0.1.0-preview.1
NuGet\Install-Package TheBuilder.CacheTags -Version 0.1.0-preview.1
<PackageReference Include="TheBuilder.CacheTags" Version="0.1.0-preview.1" />
<PackageVersion Include="TheBuilder.CacheTags" Version="0.1.0-preview.1" />
<PackageReference Include="TheBuilder.CacheTags" />
paket add TheBuilder.CacheTags --version 0.1.0-preview.1
#r "nuget: TheBuilder.CacheTags, 0.1.0-preview.1"
#:package TheBuilder.CacheTags@0.1.0-preview.1
#addin nuget:?package=TheBuilder.CacheTags&version=0.1.0-preview.1&prerelease
#tool nuget:?package=TheBuilder.CacheTags&version=0.1.0-preview.1&prerelease
<p align="center"> <img src="https://raw.githubusercontent.com/thebuilder/umbraco-cache-tags/refs/heads/main/apps/docs/public/logo-mark.svg" width="112" height="112" alt="Cache Tags logo" /> </p>
<h1 align="center">Cache Tags for Umbraco</h1>
<p align="center"> Cache Umbraco Delivery API responses at the frontend for as long as you like,<br /> and purge exactly the right ones once every server has applied a change. </p>
Every cacheable Delivery API response carries its cache keys in a header. Your frontend tags its cache entries with them. When an editor publishes, the package works out which responses showed the change, waits until every Umbraco server serves it, and sends those keys to your frontend or CDN to purge.
- Exact purges. Publishing an article purges its page, the listings it appears in, and the pages that pick it. Nothing else.
- No stale refetch. A purge goes out once every server has applied the change, and listings once every server's Delivery API index has it, so a frontend that refetches at once gets the new version.
- Your cache, your choice. Tag entries with Next.js
cacheTag, purge Cloudflare by tag, or receive a signed webhook in anything else. - See what is cached. Under Settings > Advanced > Cache tags, follow each change to its purges, look up what a key covers, and purge by hand.
The package is a preview. It supports Umbraco 17.4 and later, Umbraco 18 included, on .NET 10.
Getting started
Install the package in your Umbraco site:
dotnet add package TheBuilder.CacheTags --prereleaseTag your frontend's cache entries with the keys in each response's
X-Umbraco-Cache-Keysheader.Add a webhook route to your frontend that checks the signature and expires the keys it receives.
Point the package at it in
appsettings.json:{ "CacheTags": { "Targets": { "nextjs": { "Url": "https://www.example.com/api/cache-tags", "Secret": "<at least 32 characters>" } } } }Publish something, and watch the change and its purge under Settings > Advanced > Cache tags.
The documentation has a complete Next.js setup, every key and setting, Cloudflare, tagging your own APIs, and troubleshooting.
In this repository
src/TheBuilder.CacheTags: the package, with its backoffice client inClient/.samples: an Umbraco site and a Next.js frontend that test the package end to end. Seesamples/README.md.apps/docs: the documentation site.docs/design.md: the design contract the package is held to.
License
MIT. See LICENSE.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- MessagePack (>= 3.1.12)
- Microsoft.OpenApi (>= 2.12.2)
- System.Security.Cryptography.Pkcs (>= 10.0.13)
- System.Security.Cryptography.Xml (>= 10.0.13)
- Umbraco.Cms.Api.Common (>= 17.4.0 && < 19.0.0)
- Umbraco.Cms.Api.Management (>= 17.4.0 && < 19.0.0)
- Umbraco.Cms.Web.Common (>= 17.4.0 && < 19.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.1.0-preview.1 | 60 | 10/23/2026 |