Now, with EDR widely deployed it's likely that the exploit usage ends up being caught sooner than later, but pretty sure some dictatorship intelligence agency would have found all those journalists deep compromise worthwhile...
Deleted Comment
Smooth transitions are a nice side effect, but not the reason for an SPA. The core argument of the article, that client-side routing is a solution for page transitions, is a complete misunderstanding of what problems SPAs solve. So absolutely, if you shared that misunderstanding of SPAs and used them to solve the wrong problem, this article is 100% correct.
But SPAs came about in the days of jQuery, not React. You'd have a complex app, and load up a giant pile of jQuery spaghetti, which would then treat each div of your app is its own little mini-app, with lots of small network requests keeping everything in sync. It solved a real problem, of not wanting to reload all that code every time a user on an old browser, with a slow connection, changed some data. jQuery made it feasible to do SPAs instead.
Later, React and other frameworks made it less spaghetti-like. And it really took off. Often, for sketchy reasons. But the strongest argument for SPAs remains using them as a solution to provide a single-load of a large code bundle, that can be cached, to provide minimal network traffic subsequent to the load when the expected session time of a user is long enough to be worth the trouble of the complexity of an SPA.
Any Turing-complete system is spaghetti in the hands of bad programmers. And simple & clear in the hands of good ones who know how to design.
No more hundreds of background processes sapping my battery life and performance.
No more blatantly manipulative ads every time Windows updates, about how I won't be "safe" unless I sign up for OneDrive, switch to Edge, and subscribe to Office Live Dynamics Pro Limited 365, because now word processing and spreadsheets are a subscription for some fucking reason.
No more 3 different generations of UI styles sloppily bolted together (though Linux desktop styling can be plenty sloppy).
No more news feeds in my start menu and task bar filled with the outrage and statistically improbable evil human acts of the day, no doubt with MS ads, alongside prods to install Candy Crush and other crap.
No more whack-a-mole MS telemetry I have to read obscure guides to find out how to turn off.
No more needing to sign in to a FUCKING CLOUD ACCOUNT to use my own computer.
No more stupid crap like copilot, sucking screenshots and forwarding them to MS and OpenAI, and other sparkly AI icons on every damn thing.
Haven't booted Windows in a month or two. So happy to have switched - my computer belongs to me again, for the first time in a long while
A lot of value is driven from those dependencies though. Zapier as a pointed example: Zapier sans dependencies is ... well I don't even know. So sure, you could avoid dependencies at all cost, but at some point you might end up deleting the reason someone else wants to use your code in the first place.
Of course, if you're writing code only for yourself that will totally work, but most professional software engineers are not -- it's a balance and it's not fair to say all they have to do is stop writing glue code.
And, security updates should not break your app! What breaks your app are feature changes, API changes, and the like, which is a breach of backwards compatibility and IMHO kind of lazy and hostile on the part of the library developers. It creates massive unnecessary work for developers, and unnecessary bugs and problems for millions of end users.