See, being "entirely on the developer" I'd place that blame on the developers OF these frameworks.
Because they end up used client side to do things that scripting off don't work. That's fine if building full stack in electron, but it's idiotic trash if you're going to deploy to a website.
Even in cases when it's justified -- games, map API's, etc -- the very techniques by which they work are many times more code and riddled with bad practices.
Even the bloody tutorials show what utter trash react is right from the start. Even their tic tac toe example pisses on the markup by placing the event listeners there instead of in the script, pissing style into the markup where it doesn't flipping belong, recreating the entire structure on the DOM when only one element changes, excess DIV for nothing because they don't understand how floats or flex-wrap work and instead piss extra DIV into the markup like they were still making TR 1990's style...
Hence how they end up writing around 7k of code that compiles to 9k on deployment, that relies on a megabyte or more of "libraries" spread out over three to five files, all to do 5 to 7k of code's job WITHOUT the dumbass framework/library trash.
That it's so CLEARLY a lie is why I'm so angry about it. That people are so willing to pack themselves full of manure and line up to believe this trash...
Oh and side note, you want to know how STUPID promises are, look at request... and the COMPLETE lack of error handling that's why when my VPN just made medium go bits up face-down 504, it sat there with the little green animation at the top and did nothing. Followed by multiple instances of this being posted.
PERFECT example of how mind-numbingly DUMBASS promises are.