Interaction to Next Paint replaced First Input Delay as a Core Web Vital in 2024, and it's a much harder metric to game. I've spent a fair amount of time recently digging slow interactions out of production apps. This post covers how I find them and the fixes that actually work.
This site has been running on the same Jekyll and webpack setup since 2018. It's been dormant for the last few years. I've rebuilt it with Astro and this post covers that move.
A friend of mine introduced me to Svelte and the approach impressed me. Instead of doing a lot of work in the browser inside a virtual DOM (like a lot of frameworks), Svelte is a compiler step, meaning the code is compiled to efficient vanilla JavaScript when the project is built. It results in a considerably lighter load whilst also being able to leverage useful functionality such as reactivity which might be why you're choosing to use a framework in the first place. I combined this with Sapper - since retired in favour of SvelteKit - to get a lightweight, statically generated application out of the box.