Not paying attention.

1. Indiscriminate use of packages when a few lines of code would do.

2. Loading everything on every page.

3. Poor bundling strategy, if any.

4. No minification step.

5. Polyfilling for long dead, obsolete browsers

6. Having multiple libraries that accomplish the same thing

7. Using tools and then not doing any optimization at all (like using React and not enabling React Runtime)

Arguably things like an email client and file storage are apps and not pages so a SPA isn't unreasonable. The thing is, you don't end up with this much code by being diligent and following best practices. You get here by being lazy or uninformed.

What is React runtime? I looked it up and the closest thing I came across is the newly announced React compiler. I have a vested interest in this because currently working on a micro-SaaS that uses React heavily and still suffering bundle bloat even after performing all the usual optimizations.

When you compile JSX to JavaScript, it produces a series of function calls representing the structure of the JSX. In a recent major version, React added a new set of functions which are more efficient at both runtime and during transport, and don't require an explicit import (which helps cut down on unnecessary dependencies).

You mean the automatic runtime introduced in 2020. It does not have any impact on the performance, it's just a pure developer UX improvement.

It improves the bundle size for most apps because the imported functions can be minified better. Depending on your bundler, it can avoid function calls at runtime.

React compiler is awesome for minimizing unnecessary renders but doesn't help with bundle size; might even make it worse. But in my experience it really helps with runtime performance if your code was not already highly optimized.