Download Size & Speed

Home page load, production builds, served locally over http:// — median of 7 cold-context runs in headless Chromium.

Bytes transferred, per stack
Number under each bar = separate HTTP requests needed
vanilla-spa 10 requests 11.3 KB vanilla-static 8 requests 19.4 KB site-server 10 requests 28.0 KB vue 3 requests 42.9 KB angular 3 requests 77.9 KB react 3 requests 93.2 KB
DOMContentLoaded, per stack (ms)
Time from navigation start to the document being ready — localhost, so absolute values are tiny
vue 21.8 ms react 25.2 ms angular 28.2 ms vanilla-spa 39.6 ms vanilla-static 42.7 ms site-server 44.9 ms
Read this carefully, it cuts against the obvious take: the framework stacks had faster DOMContentLoaded despite shipping 2–8× more bytes, because bundling puts everything in one JS file (3 requests total) instead of 6–7 small files (8–10 requests). On localhost, request count matters more than byte count because latency is near zero. On a real network with real latency per request, more requests cost more — but on a real network with limited bandwidth, more bytes cost more. Neither chart on its own tells you which stack is "faster" in production; it depends entirely on the network the site is actually served over.