It's always been a dream for me to build a JS bundle analyzer that highlights those things. Also how much CSS is in the JS bundle and how much HTML (/ SVGs) for no good reason. Maybe AI can do that now
Posts by Jacob "kurtextrem" Groß
I remember us talking about this 2 or maybe 3 years by now after PerfNow? Really exciting to hear this might be something the public can play with soon-ish 👀
(because if you haven't looked at every scenario/specifics, how do you know you got the full picture / the right answer and not just the most obvious one?)
> Everyone pays it, regardless of whether they check out.
Agreed personally (the argument is similar like only optimizing for wealthy regions), but as money is often the primary driver of eCom, I'm looking for comparison data to understand specific behavior and not only "the" one median N.
That's what I was trying to point out: a median eCom shop likely doesn't have the same characteristics as the median of the web. So looking at the median of all the web gives us a great impression of the web, but a bad specific one (e.g. for eCom)
I'd say that's not the same as looking at users that buy stuff from your website. Unless you have the checkout on the same page as your product page, users will have to navigate at least twice. So it's certainly interesting to look at unsuccessful vs successful navs
When I looked at Framer data, I was similarly surprised. It's over N=2 for us, but still ... surprising.
I wonder if N is higher for eCom shops (especially if you filter for successful checkout sessions)?
We're on the same page with that: kurtextrem.de/posts/improv.... The difference is, I think React has good parts, while your take is, it's solely bad.
Good question. For my part, I always try to consider the "good" parts of "bad" things and find this, at least to some degree, valuable to do. I heard your pain & success stories of moving away, but my concern was to still consider some of its good pieces (like OOO streaming).
Fair point. I'm trying to stay optimistic, but I can see why you don't
In any case, I don't want to derail this, but the React team also has adopted view transitions. And the chrome devtools extensibility API. Both aren't legacy APIs.
I don't know what happens in the future, e.g. if they adopt moveBefore(), but that at least shows they might care a bit more nowadays.
The point I was trying to make was, React has shipped out of order streaming many years ago. That in turn brought broader attention to the topic in the first place (because mako is majorly less known).
In any case, I’d rather use <template> over a WC because of the upcoming declarative partial updates: github.com/WICG/declara....
So it’s <template> streamed out of order + 1kb runtime inline script to replace the suspense placeholders (marked with an HTML comment) with the final output that is streamed in.
I see + agree with the 50kb point, but is “hostage” really true with (true) concurrent hydration?
I personally would count a `<template>` as “parser integration”, what makes you think different? To get us on the same page, this is basically (simplified) what React does:
1) gal.hagever.com/posts/out-of...
2) Kitajs has adopted the “$RC” runtime React established: github.com/kitajs/html/...
It's certainly a well written article!
... and I hate to be this guy: React (likely other major frameworks too that I don't know?) has enabled this exact pattern by using Suspense on the backend for many years now.
Geekbench 6 single-core scores over time at 4 price points: - fastest iOS - fastest Android - mid-tier Android - low-end Android
How's the mobile CPU landscape evolving? Thanks to process node improvements, a mid-range Android from 2025 is (finally!) as fast as 2017's iPhone 8, but a low-end (~$100) smartphone isn't yet as speedy as a decade-old iPhone 6s.
can't wait for the update - it's my favorite read of every year 😄
@ricky.fm When you have multiple (unrelated) expensive components running transitions to update, how could you "flush" some transitions individually instead of batching? (apart from making each comp faster to render)
Thank you, Jacob, for trusting WPR to bring clarity to web performance. ⚡
💫 When performance experts choose WebPerformance Report to simplify and share their insights, it reinforces our mission to make data more actionable for everyone.
Thank you, Jacob @kurtextrem.de, for trusting WPR to bring clarity to web performance. ⚡
👉 webperformancereport.com#Testimonials
#webperf
@mmocny.com we talked about this at a dinner 2y? ago. Chromium doesn't collect how many people turn off JavaScript if I remember correctly, right?
If you see me in the crowd, feel welcome to say hi!
(I can also invite you to the #WebPerf Slack)
#PerfNow has incredibly interesting talks. Anyone who's serious about performance should join.
Proud that we at @framer.com are sponsors.
Time to change that! Maybe if you tell some of your Vercel colleagues how great it is, it might happen next year?
Belated hi from @perfnow.nl! Come talk to us (me & @kurtextrem.de) about React performance, Framer sites, LCP/INP and more :D
More people from the big frameworks should join! @danielroe.dev was here last year, which was awesome too. Would love to have someone from React's team here at some point :)
Senior performance engineer @kurtextrem.de talks about Framer's journey to adopting Rolldown and the chunking configurations used in production.
Full video in comments⏬