It's a wrap! The organizers of the yearly performance.now() conference managed to raised the bar once again for next year's edition.
And the company I co-founded, RUMvision, choose to host this years edition. And most likely will be back in 2024 as well.
If you're curious for this year's schedule, check this screenshot of the perfnow website. Due to Google help desk and hallway conversations, I (partially) missed two talks, both during the first conference day. Nevertheless, here's my recap:
First day of performance.now() conference
Like other years, there was a mix of insightful, inspiring and technical deep-dive talks. Some of my take-aways and learnings I want to act on are as following:
Custom element timing
Over the years, SpeedCurve -with Mark Zeman as founder and speaker- introduced several metrics, pushing the web as well.
Together with RUMvision, they now possibly are the only two RUM providers that are supporting this attribute.
This attributes helps to track rendering of elements. Helpful when identifying elements that are important for your users, but not (always) be the Largest Contentful Paint.
It can also be used for:
- add to cart buttons;
- cookie notices;
- and any other image or text node.
FireFox support for LCP
During both the web vitals summit on Wednesday, November 1st as well as during the performance now conference, Bas Schouten (Performance Tech Lead, Mozilla, talking about browser benchmarks) announced that FireFox is going to support the LCP metric very soon. Awesome news for the following reasons:
- site-owners using RUM solutions are now able to learn more about the UX of their sites;
- FireFox is enabling themselves to push the web even more by tracking LCP and see changes per new browser version.
Breaking Down Long Tasks
Nishu Goel talked about FID, INP, lab data, field data, the new LoAF API and scheduler.yiel to break up long tasks.
She even mentioned RUMvision as part of a use case where RUMvision reached out to a third party vendor. This resulted in the third party removing a deprecated library, improving the performance on the sites of their clients (including a client of RUMvision).
I also shared this same case during the performance.now() pre-event.
The Unbearable Weight of Massive JavaScript
Ryna Townsend gave a much needed and down to earth JavaScript and web performance talk. I'm afraid I'm now in the dinosaur group, being this years old:
img.png { behavior: url(png.htc) }
Some interesting quotes from his slides:
it would be better if it was more 'app-like'
- Nobody, not a single end-user
- "To me it only matters what companies are hiring for" as an answer to "Why still using React in 2023?"
- Productivity is more than
npm install
- Tell me you've migrated to an SPA without telling me you've migrated to an SPA
- "it would be better if it was more 'app-like'" - Nobody, not a single end-user
Resource Loading at the Cutting Edge
Awesome talk and cutting edge act by Robin Marx, deep diving into resource urgencies/priorities, sequential vs incremental, fetchpriority and browser differences.
I'll definitely be looking at WebPageTest waterfalls in a different way now!
Second day of performance.now() conference
With two long performance days (web-vitals summit and pre-event included), there was a lot of information to unpack already. And in my case, the second performance.now() conference day didn't only mean a lot more to digest, but it was also my turn to staff the Google help center as a Google Developer Expert.
The color of the second day was pink, apparently. So I picked the most pink accessoire that I could find (a bow-tie, although more purple-ish) and bought matching socks (which took 4 shops and many surprised responses by shop-keepers).
Bridging the Digital Divide using Web Performance
Matt Hobbs kicked of the second day with quite some disheartening facts when it comes to web performance, coverage and connectivity in the UK. Rural areas are also full of everyday people.
And as 7 million UK households have no broadband, this is costing the UK economy £63 billion per year.
Noise Canceling RUM
The Noice Canceling RUM talk by Tim Vereecke was just right up my alley, being the co-founder of a RUM solution. Over at RUMvision, we are tracking a lot of dimensions and variables, enabling site-owners to exclude data that could skew your RUM data, or actually zoom-in to see if exceptional buckets -such as bfcache- are working as expected.
About LCP Best Practices
Estela Franco talked about the Largest Contentful Paint metric. Having the highest percentage of failing origins, we still have a lot of work to do here.
Luckily, we can get a breakdown of the LCP timings, the so-called sub-parts. Estela mentioned RUMvision amongst those collecting sub-parts from real user experiences already.
What I didn't know was that CrUX is going to share sub-parts insights as well. That is exciting news, directing focus towards the right (blind) spots and improving image delivery even more.
Cache Rules Everything
This client side caching and server side headers talk was given by Harry Roberts. And yes, the best request is the one that's never made. A proper caching strategy matters. Luckily, I'm part of the group of developers using hashed filenames when a new version of a file is shipped. So this makes the caching strategy way easier already.
However, I've definitely also been in the group of developers still adding the pragma
header in an attempt to accomdate all browsers. Good to know I only need the cache-control
and etag
headers.
Decoding the Web in China for Peak Web Performance
I knew about the Great Firewall, but the insights behind this was.. very interesting. Jodie Chan provided the audience with different strategies to deliver a (performant) website in China, including Chinafy as one of the options.
Compression Dictionaries
Patrick Meenan, creator of the very famous WebPageTest and nowadays a Google software engineer, talked about compression dictionaries.
Compression Dictionaries have the potential to massively reduce file sizes. I will definitely try this out!
From Here to There
Tim Kadlec rounded off the performance.now() conference. Going from personal live, to basketball and then pagespeed. From the new INP metric to Core Web Vitals attribution:
Attribution can transform RUM into a full-on diagnostic tool
one of Tim Kadlec's slides
Having co-founded a RUM solution that offers attribution, I can only agree! ;)
Closing words
Overall, packed with a lot of info, awareness and sometimes take-aways that I will need to try myself. Double checking my response headers, looking at waterfalls in a slightly different way and playing with compression dictionaries in the near future.
Want a more in-depth description of the two days, check out Stuart McMillan's blogpost covering the two performance.now() conference days.
RUMvision was being mentioned in 3 different talks. And RUM in general was a topic during multiple talks. We also received positive and supporting feedback from both Google (as we joined several Chrome origin trials) as well as others active in RUM.
This combination is inspiring us to continue working on and improving RUMvision as a pagespeed & UX monitoring solution.