| Metric | Before | After | Change |
| --- | --- | --- | --- |
| app.html first response size | 421kb | 106kb | -75% (!) |
| First response duration | 60ms | 40ms | -33% |
huge thanks to @cogk for doing most of the work for this PR on this issue: https://github.com/frappe/frappe/issues/17449#issuecomment-1728328726
Co-authored-by: Corentin Flr <10946971+cogk@users.noreply.github.com>
* feat: Add custom icons with the `app_include_icons` hook
These custom icons are available on the desk only. They can be picked in the `ControlIcon` picker.
Co-authored-by: Abraham Kalungi <85731451+kalungia@users.noreply.github.com>
* fix: skip conf for including icons
* test: Fix test_include_icons
---------
Co-authored-by: Abraham Kalungi <85731451+kalungia@users.noreply.github.com>
Co-authored-by: Ankush Menat <ankushmenat@gmail.com>
changes:
- compact boot info in /app HTML
/app size went from 451kb to 393kb - ~13% less
Verified that regex applied on this JSON aren't affecting perf, infact
found them to be faster with compact JSON.
- Send json string instead of placing JSON literal in code using Jinja.
JS takes more time to pass object literal than parsing a plain JSON string.
Overall content transfer size remains roughly same (albeit slightly
lower) since double escaping ends up adding extra `\` around quotes.
Co-authored-by: Suraj Shetty <surajshetty3416@gmail.com>
- For better HTTP caching and cache busting
- assets.json is created under [app]/dist folder which contains the map
of input file and output file name, this is used to get the correct path for
bundled assets
- Deprecate use of build.json
- *.bundle.js files placed anywhere in the public folder are bundled
- Built files are created in public/build folder which is gitignored
WIP