How do you feel about JS frameworks like NextJS [1], Razzle [2], and Gatsby [3]? They try to reduce the bundle and first times to paint and interactions.
I'm not very familiar with Razzle, but Next and Gatsby are examples of what I was referring to in the last paragraph, SPA frameworks that have a PWA mode.
[1] https://nextjs.org/
[2] https://github.com/jaredpalmer/razzle
[3] https://www.gatsbyjs.org/