### Source Peer feedback, collected in #167. Quote (translated): lucide icons cannot be tree-shaken by default, but it is possible with Babel, a custom Rollup plugin or direct imports. Brotli compression can also help. ### Background The split of the bundle per route is #176, and the unused files are removed in #180. This issue is about what is left: Brotli and the icons. The app imports the icons by name from `lucide-react`, which is an ES module and normally tree-shakes, so the claim about Lucide must be checked before anything is changed. ### What to do - [ ] Measure with a bundle visualizer (for example `rollup-plugin-visualizer`) how many kB the icons are in the built bundle. Only if it is more than the icons we use, change the imports. - [ ] Describe how to serve the JavaScript and CSS with Brotli on the VM (Apache `mod_brotli` or the `mod_deflate` fallback) in `docs/VM_SETUP.md`, next to the cache header (#175), and check it with `curl -sI -H 'Accept-Encoding: br'`. - [ ] Add the transferred size with Brotli to the numbers in `docs/SUSTAINABILITY.md`. ### Done when - [ ] The size of the icons in the bundle is measured and written down, and the decision about Brotli is written down in `docs/SUSTAINABILITY.md`. _Comment made with Claude Code in discussion with Ronja_