Friend shared a chonky landing page for a Major Cloud Vendor's offerings...and y'all, I don't think anyone has internalised how high on their own supply the contemporary JS community is.
-
Friend shared a chonky landing page for a Major Cloud Vendor's offerings...and y'all, I don't think anyone has internalised how high on their own supply the contemporary JS community is.
It takes some cirrostratus levels of disconnectedness to believe your `chatbot.js` is fine when it clocks in at ~750K (wire, 3MB unzipped) INCLUDING ITS OWN COPY OF REACT, lodash, every polyfill you've ever heard of, and 269 embedded `data:image/...` URLs.
-
Alex Russellreplied to Alex Russell last edited by [email protected]
This is not -- and I cannot stress this enough -- the content of the page. It is a thirsty-ass widget that appears after you have loaded the page (but competes with the page for wire and CPU resources) to show you a little "unread count" bubble that you did not ask for and cannot ignore.
At ~750K, this is almost 20% of the page's 4MB (wire, 18MB unzipped) JS payload (it's a mere 12.5MB/30MB overall).
Rotten to the core.
-
At a product level, this is malpractice. At an engineering level, it's enabling the worst instincts of our generation's "acceptable" PM class. It should be beneath any self-respecting engineer to participate in building something so horribly constructed, nevermind conceptually misbegotten.
-
This chat widget is *absolutely* losing this Major Cloud Vendor money. I guarantee it. They won't know how much until they run the A/B, but it's more than zero, and likely more than they make from it.
And that's the least of its problems. Frontend, as a profession, needs to be better than this. We each can push back, dig into the use-cases, and ask "why is this good for the user?"
-
Alex Russellreplied to Alex Russell last edited by [email protected]
If someone has asked you to build them a component that is going to be embedded on someone else's web page, you have a duty of care to be minimally invasive to the performance, accessibility, and utility of that greater experience.
750KB/3MB for a totally optional chat widget *that doesn't do anything until you click in anyway*, is dereliction of duty. Including a full-fat copy of a heavyweight, legacy desktop oriented framework is *failure* from the word "go".
-
@slightlyoff “Frontend, as a profession” ugh I wish. Best I can do is “sorry, we’re only looking for fullstack devs with decades of backend experience and a weekend playing with React.”
-
@ardouglass @slightlyoff When job hunting I really struggled with so many job opening being like that.
In retrospect now I understand, not a lot of companies have budget to spend on many devs fiddling around with webpack and fixing React issues. Your average Rails dev will have more impact on revenue (despite all flaws Rails has) -
@mokobien @ardouglass And yet, almost every org I talk to is neck deep in their own private webpack + react quagmires.
This is an all-up tech management failure.
-
Laxystem (Masto/Glitch)replied to Alex Russell last edited by
@slightlyoff this post has now convinced me to ask JetBrains Compose to implement server-side rendering.
The heavy lifting should be done by the server, not the client.