It would make sense if suboptimal or another word was used instead. But it wasn't and the end result makes it appear as though there is a harmful risk when in fact there is none.
The use case is static and mostly static websites. The article author suggested using manual HTML and CSS, alongside Web Components for the non-static JavaScript parts. Make of that what you will, but it's not "no alternatives".
It's like watching someone masterfully use an excavator, but then seeing them use that same excavator to hang an Ikea picture frame on a wall because they don't know how to use a hammer.
I disagree that React is fundamentally bad. React (et al) probably should not be used in 80% of the cases it is being used for, but it is plenty fast for 80% of cases it is reasonable to use. And yes, I read the author's links on the topic.
What I found to slow SPA type things (mostly built in React due to its popularity) to a crawl are ~bad~ terrible choices for UI libs, several (!) tracking libraries, badly loaded 3rd party assets, unoptimised images, ads, not using URLs properly, and a cascade of API calls. All of which independent of React, but much of it affordances of client-side fuckery.
0 - The idea to set up an entire stack and everything that comes with it to render a hand full of paragraphs borders on lunacy. It is equally insane to wire up a dozen services and as many databases to manage a hand full of entities for a dozen users. I have come to terms with the fact that all software is fundamentally broken and everybody involved (including myself) has been infested with brain worms. The Butlerian Jihad can't come soon enough.
Of course if web components, I haven't really looked into them, provide a similar level of abstraction, thats great. If not people will end up (mis)using React and co because it's easier from a developer experience point of view.
There are alternatives of course. Astro [1] produces native, static html from JSX. Deno has Fresh [2], which offers a similar thing in the Deno ecosystem. Next.js [3] has static html option, but last time I tried it, it wasn't as nice as Astro or Fresh in this particular area.
[1]: https://astro.build/ [2]: https://fresh.deno.dev/ [3]: https://nextjs.org/