Performance & Caching
Use this section if you tune caching, response delivery, assets, or hydration on an installed site.
| I need to… | Read |
|---|---|
| Tune the static HTML page cache | Page cache architecture |
| Understand URL-to-model dependencies | Model URL cache |
| Return 304 responses for unchanged pages | ETags and conditional responses |
| Cache expensive Blade partials | Fragment caching |
| Tune render-blocking CSS and preloads | Frontend asset optimization |
| Flush caches when models change | Cache invalidation |
| Avoid eager loads on cold cache hits | Lazy page hydration |
| Reduce rendered HTML size | Frontend server configuration |
| Guard application boot cost | Boot regression guards |
| Review measured boot candidates | Boot optimization candidate decisions |
Frontend Authoring uses the model URL cache to find every cached URL touched by an edited record. The editor itself is never baked into cached HTML; admin-only edit controls are added later by the beacon.
The performance layers are deliberately composable. The page cache can serve the right rendered HTML for a site’s language and version before PHP runs; lazy page hydration keeps opted-in dynamic or expensive blocks off the critical path; and personalised sections load privately after the shared cached page. When content changes, cache invalidation follows registered model dependencies and content-graph edges to refresh affected URLs instead of requiring a site-wide flush. Fragment caching handles smaller Blade regions with surrogate keys when a whole-page cache is too broad.
See also: packages/core/docs/cache.md, packages/core/docs/extending-capell.md.