# Cache Tags

> Tag Umbraco Delivery API responses with cache keys, and purge exactly the right ones once every server has applied a change.

## Docs

- [Cache Tags for Umbraco](https://cache-tags.thebuilder.dk/overview): Cache Umbraco Delivery API responses at the frontend, and purge exactly the right ones once every server has applied a change.
- [Why Cache Tags](https://cache-tags.thebuilder.dk/why): The problems with caching a headless Umbraco site on a timer, purging everything or purging by path, and how cache tags solve them.
- [Quickstart](https://cache-tags.thebuilder.dk/quickstart): Install Cache Tags, point it at your frontend, and watch a publish purge exactly the pages that changed.

## Frontends

- [Next.js](https://cache-tags.thebuilder.dk/nextjs): Cache Delivery API responses with Next.js Cache Components, tagged with Umbraco's keys, and purge them from a signed webhook.

## How it works

- [Keys](https://cache-tags.thebuilder.dk/keys): What each cache key covers, which responses get one, and how a change is planned as keys.
- [How a purge is timed](https://cache-tags.thebuilder.dk/timing): Why a purge waits for every Umbraco server, and why listings are purged a second time once every server's index has the change.

## Guides

- [Purge targets](https://cache-tags.thebuilder.dk/targets): Send purges to your frontend as a signed webhook, to Cloudflare, or to anything else through your own target.
- [Your own APIs](https://cache-tags.thebuilder.dk/your-apis): Tag responses from your site's own controllers, record changes to their data, and purge by hand.
- [Backoffice](https://cache-tags.thebuilder.dk/backoffice): Follow each change to its purges, purge by hand, and manage purge targets from Umbraco.
- [Check it on your site](https://cache-tags.thebuilder.dk/verify): Look at one header, then roll out in steps.

## Reference

- [Configuration](https://cache-tags.thebuilder.dk/configuration): Every Cache Tags setting, under CacheTags in appsettings.json.
- [Troubleshooting](https://cache-tags.thebuilder.dk/troubleshooting): What to check when responses carry no keys, a purge does not arrive, or a listing stays old.
- [License](https://cache-tags.thebuilder.dk/license): Cache Tags for Umbraco is MIT licensed.

## Changelog

- [No releases yet](https://cache-tags.thebuilder.dk/changelog/no-releases-yet)

## RSS Feeds

- [Cache Tags — Changelog](https://cache-tags.thebuilder.dk/changelog/rss.xml)

## Agent resources

- [llms-full.txt](https://cache-tags.thebuilder.dk/llms-full.txt): The full Markdown of every page in one file.
- [Page Markdown](https://cache-tags.thebuilder.dk/index.md): Append `.md` to any page URL to fetch that page as raw Markdown.
- [JSON API](https://cache-tags.thebuilder.dk/api/docs/pages.json): Page index of the JSON docs API; each entry links the page's JSON and Markdown forms. Described by the OpenAPI document at https://cache-tags.thebuilder.dk/openapi.json.
- [Agent skills](https://cache-tags.thebuilder.dk/.well-known/agent-skills/index.json): Agent Skills discovery index of the skills this site publishes.
- [API catalog](https://cache-tags.thebuilder.dk/.well-known/api-catalog): RFC 9727 linkset of the APIs documented here.
- [AI catalog](https://cache-tags.thebuilder.dk/.well-known/ai-catalog.json): ARD manifest of the agent-facing resources on this site (MCP server, skills, APIs).
- [agent-readability.json](https://cache-tags.thebuilder.dk/agent-readability.json): Manifest of every agent-facing artifact on this site.
- [Sitemap](https://cache-tags.thebuilder.dk/sitemap.xml): Every indexable page URL with its last-modified date.
