These days, developer experience (DX) is often the strongest case for using JavaScript frameworks. The idea is simple: frameworks improve DX with abstractions and tooling that cut boilerplate and help developers move faster. The tradeoff is bloat, larger bundles, slower load times, and a hit to user experience (UX).

But does it have to work like that? Do you always have to trade UX for DX? And are frameworks really the only path to a good developer experience?