Design

Warm before the crawler arrives

The difficult request is the first one. If a crawler reaches a JavaScript page before a snapshot exists, starting Chrome at that moment adds work to an already waiting client. RenderCache’s alpha takes a different starting point: discover the public URLs from the sitemap, then render them before requests need the saved HTML.

The worker queue is bounded. Missing pages get priority, refreshes are scheduled, and repeated work for a page is deduplicated. That does not make coverage automatic: an empty sitemap, a failed browser or a wrong readiness selector can leave pages without useful snapshots. The status page therefore shows what is discovered, cached, missing, queued and failing, with request-added pages reported separately.

Once a snapshot exists, an ordinary expired copy can be served while a refresh runs in the background. A transient origin failure keeps the older response and backs off. A private or authentication-dependent outcome is treated differently and withdraws the shared copy. Warmth should never become a reason to keep serving content that no longer belongs in a public cache.

A cold request still falls through to the origin and requests background rendering. It does not wait for Chrome, and the origin response may still be a shell. That behavior is deliberate and visible. Check warm coverage in the quickstart before adding crawler routing.