totally, React with a basic requirement of Babel to function and Webpack with ability to throw megabytes of crap at the user without understanding what you are doing and what it implies (like barrel files pulling in all the dependency tree of a module, or having runtime functions like "extend" in 150 versions in the same bundle) – all of that resulted in layers of complexity few engineers are willing to learn about.
This article makes incredibly poor arguments to support the title. "destroyed the web" is such a massive stretch - I remember pre-javascript internet and I remember pre-css internet, coded my first HTML page in 1995. Even early JS certainly didn't give us a fraction of the capabilities we have today.
There are many problems with javascript development, just as there are different problems with using other languages. But let's not pretend the web would be better without React or other SPA frameworks.
are you using mobile web at all? I mean if you have an iPhone 15 then I guess you are having a good time. But "React" Internet is hostile to users and is damaging to business. Take a read – https://infrequently.org/2024/01/performance-inequality-gap-...
Admittedly, I'm not a huge user of mobile web (I'm not an iPhone user either, I'm still using a Pixel 4a).
However, I am absolutely not going to defend extremely heavy javascript content either. There needs to be a balance, and as your linked article mentions it will vary a lot depending on the demographics of the audience.
The original article though was not a good critique of any of that (your linked article is much better).
Even so a lot of work has been done to counter a bunch of the problems with doing everything with React. SSR while not a panacea, goes some distance to solving the problem.
all of this for the fake promise of "easiness to reason about" and "great DX". Which is not even remotely true, it’s MORE DIFFICULT to reason about and the DX of putting together these layers of badly configured stuff is anything but "good".
My personal solution is to use the platform – modern JS and CSS are great.
The complexity is sometimes required, but in most web projects, these tools are actively harming the user, and also the long term maintainability, they eat into the business bottom line as well.
If I need to, I can stitch the files together, mangle variables, manipulate the AST or whatever I need to produce a bundle and my tiny script that I invoke with `make` will still be less than 1/10 of average config files for the mainstream tooling.
I made an experiment for years – write the code for the thing I‘d use a dependency for – sample an image size, build a "data model" abstraction, your own reactivity, a build script, backup solution, a cron job, release script etc. etc. etc. and instead of pulling my hair out I learned something useful each time and I can come back to a working and documented code that’s easy to improve and has a straightforward call stack.
There are plenty of ways a site can be built with less complexity. Going to the extreme, write any interactive code in plain old JS and ship it along with your HTML and CSS.
You could use a bundling step if you prefer, its pretty trivial to setup a basic bundler that wraps up multiple JS files. Heck, writing everything in TS and outputting a single file would do the trick.
also, my solution is to be the engineer who understands these layers and gets a job to look into them – and it pains me to see that in 95% of the cases people just used whatever was lying on the table and not thought for a second they could go on MDN and find out there is a native API for their purpose.