# PSR vs Edge Delivery Two distinct layers. They are independent, and conflating them misreads both. ## PSR — Preemptive Static Rendering **Protocol feature.** Render HTML on mutation, not on request. Mechanism: `@client` fires mutation → backend adapter triggers local render runtime → HTML stored locally. Works on a $5 VPS with local Bun. **No Edge required.** PSR is part of the protocol; it's available to every Mizan deployment regardless of hosting. The strategy is manifest-driven rather than hand-wired per view. The Edge manifest records each context's `render_strategy` — `"psr"` for public contexts, `"dynamic_cached"` for user-scoped ones — emitted by `mizan/export/` and the `export_edge_manifest` management command. The render-on-mutation path reads that field to decide whether a mutation triggers a local re-render or only a purge, and the SSR bridge is what turns a component into HTML once it does. The Edge layer consumes the same field for the same decision. ## Edge Delivery — Mizan Render (Paid Product) Pre-rendered HTML cached globally on Cloudflare CDN. Uses `fetch()` to a render Worker on a separate domain (`render.mizan.cloud`) instead of `cache.put()`, because Workers Cache API is per-datacenter only. `fetch()` across zones goes through the global CDN cache path with Tiered Cache. This layer is the paid Mizan Render product. ## Caching modes - **Public content** — preemptive (render on mutation) - **User-scoped content** — reactive only (purge on mutation, render on next request) ## Invariant PSR logic does not couple to Cloudflare-specific APIs. PSR works without any cloud infrastructure. Edge delivery extends PSR; it does not replace it.