My site runs on Astro's SSR mode via Cloudflare Workers — every page request runs live, on the server, not pre-built at deploy time. That's what lets /blog/[slug] resolve any post dynamically instead of me having to pre-generate every possible URL.
The problem: if every visitor triggers a live call to Notion or GitHub's API, that's slow (network round-trip on every single page load) and risky (both APIs have rate limits — enough traffic and I'd start getting throttled or blocked).
Since blog posts and work entries don't change every minute, there's no reason to re-fetch them from Notion on every visit. Cloudflare KV gave me a simple fix: check a cached copy first, only hit Notion/GitHub live when the cache is empty or stale, then save the result for the next visitor. One slow request per hour, instead of one slow request per visitor.