« Dev Blog

E2 speed: fixed, verified live

Report dated October 9, 2026, retested Oct 9 around 1:00am MDT. The middleware waste is gone. Originally a standalone report file; collected into the Dev Blog on October 13, 2026, with the content intact.

What was wrong, and what's fixed

✓ FIXED: Middleware ran on every image, re-fetching each one through an edge function (~500ms wasted per asset). Now static assets skip the middleware entirely.
✓ FIXED: Edge was told max-age=0, must-revalidate, re-checking origin on every load. Now images ship immutable, max-age=1yr.
✓ VERIFIED: Fresh test just now (Oct 9): every asset returns the immutable header, served with no function in the path.

Live right now

AssetSizeCache header
homepage HTML40 KBmax-age=0, must-revalidate (correct, HTML must stay fresh)
hero image25 KBimmutable, 1yr
world-map54 KBimmutable, 1yr
game-town50 KBimmutable, 1yr
llama-chat19 KBimmutable, 1yr
passport17 KBimmutable, 1yr
film-poster10 KBimmutable, 1yr
home-script.js2 KBmax-age=1hr

The page itself

222 KB
total page weight
1.8 KB
JavaScript (CSS inlined, zero render-blocking)
6/7
images lazy-load; only the 25 KB hero is eager
Why it was slow before. Every image took a detour: the edge woke up a server function, which made its own request to fetch the image, downloaded the whole file into memory, and handed it back. ~500ms per image. Then the cache settings forced the edge to re-check the origin every time. Two detours, ~1s of waste on every asset. Both are now removed.
» Lower-quality data: the report's own timing note

Honest note from the original report: timing tests from our server still show network noise (400ms TLS, edge PoP variance) that swamps the improvement in absolute numbers. The proof is architectural: the slow code path no longer runs, and the response headers confirm it. On a real phone connection the waste is gone.

Back to the Dev Blog index.