A budget tool that does not want your build
Bundle analyzers are one of the few tool categories where almost every option asks you to upload the thing you are analysing. That is a strange requirement for build output: it is the compiled, minified, source-mapped version of your private code, and a dist folder is often hundreds of megabytes. This page does the reading locally instead — the folder is parsed with the File API and each file is gzipped in the tab with `CompressionStream`, which is the same algorithm a server sends.
Three decisions shape what the tool reports:
- “Entry” is a closure, not a flag. Vite splits shared dependencies into vendor chunks that are neither the entry nor a dynamic entry — but they still arrive before the page is interactive. The analyzer starts from the real entry and follows the manifest imports, so the first-paint number is what a visitor actually downloads rather than a flattering subset.
- Gzip here means what your server sends. Each text asset is compressed in the tab before it is reported, so the numbers match a gzip-configured server instead of an optimistic estimate. Already-compressed files (fonts, images) are not re-compressed; the page says so rather than pretending they shrink.
- A verdict, not just a table. Set a per-chunk budget, a total-JavaScript budget and a single-asset budget, and the analyzer says which file exceeds which limit and by how much — the same shape as the performance budget this site holds itself to. The report can be copied as Markdown for a PR description.
Two honest notes about the numbers. Source maps are reported separately because visitors never download them unless devtools asks — they are huge and would otherwise dominate every “largest file” list. And your server may prefer Brotli, which is typically 15–20% smaller than the gzip shown here; if your host enables it, the real transfer is smaller than this report. What the report will not tell you is why a chunk is big — for that you still need a source-level visualiser, but you no longer need to hand your build to someone else’s server to find out which chunk to look at.