Running Chrome’s Lighthouse on an app and there are some recommendations that I think could be implemented:
Anvil Images
Mark the made-with-anvil.png as loading="lazy"
Update made-with-anvil.png to .webp to reduce size.
Use HTTP/2
Enable HTTP/2 for resource loading
in a blank app, there are 15 requests over http/1.1
- nvgvbg.anvil.app
- …css/runner-v3.min.css
- …css/daterangepicker.min.css
- …css/font-awesome.min.css
- …lib/jquery.min.js
- …lib/jquery-migrate.min.js
- …img/logo-35.png
- …img/made-with-anvil.png
- …lib/moment.min.js
- …lib/moment-timezone-with-data-10-year-range.min.js
- …lib/daterangepicker.min.js
- …lib/skulpt.min.js
- …lib/skulpt-stdlib.js
- …js/runner2.bundle.js
- …_/manifest.json
Preconnect
Preconnect to anvil.works
<link rel="preconnect" href="https://anvil.works">
Selectable Includes
Be able to disable the inclusion of non-essential resources
- daterangepicker.min.css
- font-awesome.min.css
- runner-v3.min.css
Selectable support for legacy browsers
Give the option to not transpile Baseline features in …js/runner2.bundle.js
- runner2.bundle.js?sha=b4e7fca81fdb:2
Array.prototype.at - runner2.bundle.js?sha=b4e7fca81fdb:2
Array.prototype.flat - runner2.bundle.js?sha=b4e7fca81fdb:2
Array.prototype.includes - runner2.bundle.js?sha=b4e7fca81fdb:2
Array.prototype.sort - runner2.bundle.js?sha=b4e7fca81fdb:2
Array.prototype.unshift - runner2.bundle.js?sha=b4e7fca81fdb:2
Object.fromEntries - runner2.bundle.js?sha=b4e7fca81fdb:2
Object.getOwnPropertyDescriptor - runner2.bundle.js?sha=b4e7fca81fdb:2
String.fromCodePoint - runner2.bundle.js?sha=b4e7fca81fdb:2
String.prototype.replaceAll