Liftgate
Images
A verification surface for the Cloudflare Images pipeline. Every sample below is the same handful of PNGs in public/images/ — what differs is the route each one takes to the browser.
On :3000 (vinext dev) /_next/image is a passthrough and serves the original bytes — that proves the markup, not the binding. On :1337 (alchemy/workerd) the same URLs resolve the IMAGES binding and come back resized and re-encoded.
Optimized — the same source at three widths
One 1600×1200 source. If the optimizer is live, the 384px render transfers a small fraction of the 1.3MB original and arrives as AVIF or WebP rather than PNG. Measured on :1337, 2026-08-09: 2,232 bytes at w=128 rising to 26,466 at w=1920, against a 1.3MB source.
Optimized vs. raw — the control
The pair that makes a silent failure visible: both should LOOK identical, and the network panel should disagree about how many bytes it cost. If the left one 404s or 500s while the right still renders, the optimizer is the broken half — not the asset.





