The GitHub Issues team redesigned their navigation performance by building a client-side caching layer backed by IndexedDB with stale-while-revalidate semantics, a preheating strategy that proactively populates cache entries before users click, and a service worker that intercepts hard navigations to serve cached data. The result: P10 latency dropped from ~600ms to 70ms, P25 from ~800ms to 120ms, and the median from ~1200ms to 700ms. React soft navigations saw ~70% become instant after preheating, with a 96% cache-hit ratio. The post details the three navigation types (hard, Turbo, React soft), the HPC metric used for measurement, tradeoffs around controlled staleness (~4.7% server/cache divergence), and the remaining challenges around cold-start JavaScript boot time.
Table of contents
The speed of thought: Web performance in 2026The baseline: Navigation mix before we changed anythingStep 1: Client-side caching with IndexedDBMoving the needle on cache-hit ratiosExpanding the fast path: Optimizing turbo and hard navigationsThe resultsThe work aheadTags:Written bySort: