288 Followers
56 Following
73 Posts
Web performance consultant (Google, Framer, Appsmith, etc), Google Developer Expert. @iamakulov on Twitter. He/him 🏳️‍🌈
Perf guides and stuffhttps://3perf.com/content

the chart that I feel perhaps the proudest of is this

framer’s lcp (aka page loading time), across all sites, going lower and lower day by day, free for all framer customers

lots of work by our infra/canvas teams, my fellow https://kurtextrem.de, and yours truly <3

next.js (pages router) loads data for pages you navigate to, but never releases it, whoops: https://github.com/vercel/next.js/issues/91484
Story behind the improvement:
Tomorrow, when you publish a Framer site, every page’s HTML will get 10-20% smaller:
- esm > cjs modules (bundlers still don’t shake cjs well/at all)
- sideEffects: false ftw
- don’t bundle a library into a single file for npm. kills shakeability
spent the day shaking the tree, shook 1.5 MB
just why
Currently in Chrome Canary behind a flag (enable at chrome://flags):

Neat lil learning from today’s performance.​now() conf (via Umar Hansa):

You can now throttle individual requests in Chrome!

Neat for experimenting with stuff like
- lazy-loading: does the UI look okay if this chunk takes MUCH longer to arrive?
- resilience: what happens if this specific CDN is extremely slow?
- etc

So, another big part of this project was moving this logic back into the schema, to make sure it covers all code paths.

This wasn’t always easy! Some things, like stripping unnecessary <b>s that come from Google Docs, were simple: