Jacob "kurtextrem" Groß
@kurtextrem.de
Senior Performance Engineer @Framer · The INP optimization guy · webperf/UX/security · @kurtextrem on other platforms.
@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)
November 8, 2025 at 1:43 PM
@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)
Reposted by Jacob "kurtextrem" Groß
💫 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
Thank you, Jacob @kurtextrem.de, for trusting WPR to bring clarity to web performance. ⚡
👉 webperformancereport.com#Testimonials
#webperf
November 3, 2025 at 6:41 PM
💫 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
Thank you, Jacob @kurtextrem.de, for trusting WPR to bring clarity to web performance. ⚡
👉 webperformancereport.com#Testimonials
#webperf
#PerfNow has incredibly interesting talks. Anyone who's serious about performance should join.
Proud that we at @framer.com are sponsors.
Proud that we at @framer.com are sponsors.
October 31, 2025 at 3:01 PM
#PerfNow has incredibly interesting talks. Anyone who's serious about performance should join.
Proud that we at @framer.com are sponsors.
Proud that we at @framer.com are sponsors.
Reposted by Jacob "kurtextrem" Groß
Belated hi from @perfnow.nl! Come talk to us (me & @kurtextrem.de) about React performance, Framer sites, LCP/INP and more :D
October 31, 2025 at 10:05 AM
Belated hi from @perfnow.nl! Come talk to us (me & @kurtextrem.de) about React performance, Framer sites, LCP/INP and more :D
Reposted by Jacob "kurtextrem" Groß
Senior performance engineer @kurtextrem.de talks about Framer's journey to adopting Rolldown and the chunking configurations used in production.
Full video in comments⏬
Full video in comments⏬
October 22, 2025 at 2:30 AM
Senior performance engineer @kurtextrem.de talks about Framer's journey to adopting Rolldown and the chunking configurations used in production.
Full video in comments⏬
Full video in comments⏬
⚛️ReactConf once again mentioned concurrent stores. What if I tell you, we have concurrent external stores today? (kinda)
My latest blog post explains:
👉 How to to pair `useSyncExternalStore` with `useDeferredValue` (and `useMemo`)
⚡ Why this can improve UX & INP during hydration
My latest blog post explains:
👉 How to to pair `useSyncExternalStore` with `useDeferredValue` (and `useMemo`)
⚡ Why this can improve UX & INP during hydration
October 17, 2025 at 4:15 PM
⚛️ReactConf once again mentioned concurrent stores. What if I tell you, we have concurrent external stores today? (kinda)
My latest blog post explains:
👉 How to to pair `useSyncExternalStore` with `useDeferredValue` (and `useMemo`)
⚡ Why this can improve UX & INP during hydration
My latest blog post explains:
👉 How to to pair `useSyncExternalStore` with `useDeferredValue` (and `useMemo`)
⚡ Why this can improve UX & INP during hydration
My first big stage & first LinkedIn live stream appearance is today, 10:55 @ ViteConf.
I'll talk about how Framer integrated VoidZero's new web bundler Rolldown. Plus, some things about performance and why you should still bundle in 2025.
Tune in (free):
www.linkedin.com/events/73138...
I'll talk about how Framer integrated VoidZero's new web bundler Rolldown. Plus, some things about performance and why you should still bundle in 2025.
Tune in (free):
www.linkedin.com/events/73138...
LinkedIn Login, Sign in | LinkedIn
Login to LinkedIn to keep in touch with people you know, share ideas, and build your career.
www.linkedin.com
October 9, 2025 at 6:44 AM
My first big stage & first LinkedIn live stream appearance is today, 10:55 @ ViteConf.
I'll talk about how Framer integrated VoidZero's new web bundler Rolldown. Plus, some things about performance and why you should still bundle in 2025.
Tune in (free):
www.linkedin.com/events/73138...
I'll talk about how Framer integrated VoidZero's new web bundler Rolldown. Plus, some things about performance and why you should still bundle in 2025.
Tune in (free):
www.linkedin.com/events/73138...
Reposted by Jacob "kurtextrem" Groß
ICYMI, I keep updated recommendations for low-spec testing devices here:
infrequently.org/links/#hardw...
infrequently.org/links/#hardw...
Links, Resources, and Humans of Note - Infrequently Noted
Alex Russell on browsers, standards, and the process of progress.
infrequently.org
September 19, 2025 at 7:50 PM
ICYMI, I keep updated recommendations for low-spec testing devices here:
infrequently.org/links/#hardw...
infrequently.org/links/#hardw...
PSA: There's an open bug in React 19.1 that emits a `` for every single `
` tag on a page when you SSR: github.com/facebook/rea....
This can result in *tons* of preloads that are bad for LCP and also wastes network bandwidth/data.
This can result in *tons* of preloads that are bad for LCP and also wastes network bandwidth/data.
August 25, 2025 at 4:55 PM
PSA: There's an open bug in React 19.1 that emits a `` for every single `
` tag on a page when you SSR: github.com/facebook/rea....
This can result in *tons* of preloads that are bad for LCP and also wastes network bandwidth/data.
This can result in *tons* of preloads that are bad for LCP and also wastes network bandwidth/data.
Reposted by Jacob "kurtextrem" Groß
The semver library used in npm, yarn and pnpm could be made 33x faster.
Ran into that while wondering why running `npm install` takes so long on the Preact repo.
marvinh.dev/blog/speedin...
Ran into that while wondering why running `npm install` takes so long on the Preact repo.
marvinh.dev/blog/speedin...
Speeding up the JavaScript ecosystem - Semver
During the installation process, package managers run a bunch of semver comparisons. The semver library used in npm, yarn and pnpm can be made around 33x faster.
marvinh.dev
August 10, 2025 at 8:34 AM
The semver library used in npm, yarn and pnpm could be made 33x faster.
Ran into that while wondering why running `npm install` takes so long on the Preact repo.
marvinh.dev/blog/speedin...
Ran into that while wondering why running `npm install` takes so long on the Preact repo.
marvinh.dev/blog/speedin...
Reposted by Jacob "kurtextrem" Groß
performance.now(), the web performance conference, 30th and 31st of October, Amsterdam. Single track, the best speakers in the industry, plenty of your performance-mad peers around to have fascinating conversations. What's not to like? Let's introduce our speakers ...
perfnow.nl
perfnow.nl
performance.now(); 30th and 31st of October, Amsterdam
On 30th and 31st of October, 2025, the sixth edition of performance.now() will take place in Amsterdam—a single track conference, covering today’s most important web performance insights.
perfnow.nl
June 25, 2025 at 12:35 PM
performance.now(), the web performance conference, 30th and 31st of October, Amsterdam. Single track, the best speakers in the industry, plenty of your performance-mad peers around to have fascinating conversations. What's not to like? Let's introduce our speakers ...
perfnow.nl
perfnow.nl
Reposted by Jacob "kurtextrem" Groß
⚡ Lighthouse (incorrectly) punishes preloading
If you’re like me, you probably struggled with Lighthouse scores at least once. “I already optimized everything; why is my score still yellow?”
Often, the cause is there’s more to optimize. But sometimes, it’s Lighthouse itself.
If you’re like me, you probably struggled with Lighthouse scores at least once. “I already optimized everything; why is my score still yellow?”
Often, the cause is there’s more to optimize. But sometimes, it’s Lighthouse itself.
June 12, 2025 at 10:46 AM
⚡ Lighthouse (incorrectly) punishes preloading
If you’re like me, you probably struggled with Lighthouse scores at least once. “I already optimized everything; why is my score still yellow?”
Often, the cause is there’s more to optimize. But sometimes, it’s Lighthouse itself.
If you’re like me, you probably struggled with Lighthouse scores at least once. “I already optimized everything; why is my score still yellow?”
Often, the cause is there’s more to optimize. But sometimes, it’s Lighthouse itself.
Reposted by Jacob "kurtextrem" Groß
How To Improve INP: Yield Patterns
kurtextrem.de/posts/improv... by @kurtextrem.de
#WebPerf #Performance #INP
kurtextrem.de/posts/improv... by @kurtextrem.de
#WebPerf #Performance #INP
How To Improve INP: Yield Patterns
Detailed insights into patterns like await-interaction-response, yieldToMain, yieldUnlessUrgent & tips for faster Interaction-to-Next-Paint (INP).
kurtextrem.de
May 10, 2025 at 10:35 AM
How To Improve INP: Yield Patterns
kurtextrem.de/posts/improv... by @kurtextrem.de
#WebPerf #Performance #INP
kurtextrem.de/posts/improv... by @kurtextrem.de
#WebPerf #Performance #INP
Chrome 136+ ships a new V8 version that supports a "compile hint", which makes V8 parse and compile all functions in that file eagerly.
Great for entry points – where you know all functions will very likely be used. Less so as 'one weird trick to make all your JS faster'.
Great for entry points – where you know all functions will very likely be used. Less so as 'one weird trick to make all your JS faster'.
April 30, 2025 at 7:13 AM
Chrome 136+ ships a new V8 version that supports a "compile hint", which makes V8 parse and compile all functions in that file eagerly.
Great for entry points – where you know all functions will very likely be used. Less so as 'one weird trick to make all your JS faster'.
Great for entry points – where you know all functions will very likely be used. Less so as 'one weird trick to make all your JS faster'.
Did you know that jQuery outperforms React, what? 😳
Sounds like clickbait, but is reality. The HTTP Archive shows 82% of sites that use jQuery have good INP on mobile📱, while only 67% do when they use React⚛️.
Not just sites, also libraries. Let's fix that👇#webperf
kurtextrem.de/posts/improv...
Sounds like clickbait, but is reality. The HTTP Archive shows 82% of sites that use jQuery have good INP on mobile📱, while only 67% do when they use React⚛️.
Not just sites, also libraries. Let's fix that👇#webperf
kurtextrem.de/posts/improv...
How To Improve INP: React⚛️
All-in-one guide for improving Interaction-to-Next-Paint (INP) Core Web Vital in React applications. Introduces the useAfterPaintEffect hook.
kurtextrem.de
December 2, 2024 at 4:07 PM
Did you know that jQuery outperforms React, what? 😳
Sounds like clickbait, but is reality. The HTTP Archive shows 82% of sites that use jQuery have good INP on mobile📱, while only 67% do when they use React⚛️.
Not just sites, also libraries. Let's fix that👇#webperf
kurtextrem.de/posts/improv...
Sounds like clickbait, but is reality. The HTTP Archive shows 82% of sites that use jQuery have good INP on mobile📱, while only 67% do when they use React⚛️.
Not just sites, also libraries. Let's fix that👇#webperf
kurtextrem.de/posts/improv...
Reposted by Jacob "kurtextrem" Groß
Say hello to `inverse-subset`! The idea is from a conversation with @andydavies.me at #perfnow. When you have a complete font and a subset e.g. Latin, generate another subset consisting of everything not in the original subset. E.g. all characters that are NOT Latin. npmjs.com/package/inverse-subset
inverse-subset
A CLI tool to generate inverse subset fonts using a complete font and a subset font.. Latest version: 1.0.1, last published: 4 minutes ago. Start using inverse-subset in your project by running `npm i...
www.npmjs.com
November 25, 2024 at 5:06 PM
Say hello to `inverse-subset`! The idea is from a conversation with @andydavies.me at #perfnow. When you have a complete font and a subset e.g. Latin, generate another subset consisting of everything not in the original subset. E.g. all characters that are NOT Latin. npmjs.com/package/inverse-subset
Reposted by Jacob "kurtextrem" Groß
is this still true, even for script type=module? 🤯
cc: @chromium.social
… can’t for the life of me find the message but thank you to the person at @perfnow.bsky.social who sent this my way ❤️
web.dev/learn/perfor...
cc: @chromium.social
… can’t for the life of me find the message but thank you to the person at @perfnow.bsky.social who sent this my way ❤️
web.dev/learn/perfor...
November 17, 2024 at 2:40 PM
is this still true, even for script type=module? 🤯
cc: @chromium.social
… can’t for the life of me find the message but thank you to the person at @perfnow.bsky.social who sent this my way ❤️
web.dev/learn/perfor...
cc: @chromium.social
… can’t for the life of me find the message but thank you to the person at @perfnow.bsky.social who sent this my way ❤️
web.dev/learn/perfor...
"Everyone experiences P99" - @anniesullie.bsky.social
... at subway stations, or flaky internet.
Understanding & monitoring that experience can make sense.
blog.chromium.org/2021/04/digg... #PerfNow
... at subway stations, or flaky internet.
Understanding & monitoring that experience can make sense.
blog.chromium.org/2021/04/digg... #PerfNow
November 15, 2024 at 4:32 PM
"Everyone experiences P99" - @anniesullie.bsky.social
... at subway stations, or flaky internet.
Understanding & monitoring that experience can make sense.
blog.chromium.org/2021/04/digg... #PerfNow
... at subway stations, or flaky internet.
Understanding & monitoring that experience can make sense.
blog.chromium.org/2021/04/digg... #PerfNow
Closing talk day 2 @ #PerfNow: @anniesullie.bsky.social showing how much time improving CWVs saved. I like how Alex's great talk at the closing of day 1 was a wake-up call and now we get to see the positive side of things as contrast.
November 15, 2024 at 4:17 PM
Closing talk day 2 @ #PerfNow: @anniesullie.bsky.social showing how much time improving CWVs saved. I like how Alex's great talk at the closing of day 1 was a wake-up call and now we get to see the positive side of things as contrast.
Reposted by Jacob "kurtextrem" Groß
@kurtextrem.de shares thoughts on communicating performance to your boss. Thanks for the @speedcurve.bsky.social shoutouts! #performance.sync() @perfnow.bsky.social
November 13, 2024 at 10:37 PM
@kurtextrem.de shares thoughts on communicating performance to your boss. Thanks for the @speedcurve.bsky.social shoutouts! #performance.sync() @perfnow.bsky.social
Reposted by Jacob "kurtextrem" Groß
The all new performance chapter of the 2024 Web Almanac written by Jevgenija Zigisova and @inesakrap.bsky.social
almanac.httparchive.org/en/2024/perf...
almanac.httparchive.org/en/2024/perf...
Performance | 2024 | The Web Almanac by HTTP Archive
Performance chapter of the 2024 Web Almanac covering Core Web Vitals, with deep dives into the Largest Contentful Paint, Cumulative Layout Shift, and Interaction to Next Paint metrics and their diagno...
almanac.httparchive.org
November 12, 2024 at 12:46 AM
The all new performance chapter of the 2024 Web Almanac written by Jevgenija Zigisova and @inesakrap.bsky.social
almanac.httparchive.org/en/2024/perf...
almanac.httparchive.org/en/2024/perf...
I'll be speaking on the #PerfNow pre-conference meetup - performance.sync(). Topic: Collecting UX-impacting metrics your boss understands. Lightning talk, to spark thoughts!⚡
Looking forward to it: lu.ma/z1qt2a63
Looking forward to it: lu.ma/z1qt2a63
performance.sync() · Luma
performance.sync() is a meet-up taking place on the evening before the performance.now() conference. This year's meetup sponsor is Mozilla, and our theme is…
lu.ma
November 1, 2024 at 9:51 AM
I'll be speaking on the #PerfNow pre-conference meetup - performance.sync(). Topic: Collecting UX-impacting metrics your boss understands. Lightning talk, to spark thoughts!⚡
Looking forward to it: lu.ma/z1qt2a63
Looking forward to it: lu.ma/z1qt2a63
I joined Twitter when I was between 13-14, and now joining a new platform that is basically Twitter, but different, feels like really getting old. So far I like the feed though.
November 1, 2024 at 9:46 AM
I joined Twitter when I was between 13-14, and now joining a new platform that is basically Twitter, but different, feels like really getting old. So far I like the feed though.