Sign in with Twitter


Addy Osmani @addyosmani Mountain View, CA

Engineering Manager working on @GoogleChrome • Husband & Dad • Make the web fast ⚡• Lighthouse, PageSpeed Insights, DevTools • Founder TeeJungle

1,741 Following   224,166 Followers   22,648 Tweets

Joined Twitter 4/26/09

@zenorocha @_developit It's in Chrome, Firefox and an implem is almost there in WebKit :) Was checking if clipboard… @tomayac @_developit Awesome! Wasn't sure when support for images might land :) @cjamcl Async Clipboard API allows copying & pasting text from JavaScript: (by @_developit) ~ I… execution is CPU bound. CPU performance of popular laptops can be far slower than popular developer mach…
@simevidas @AndyDavies @tunetheweb @tkadlec @jaffathecake I think @katiehempenius might have been following up here with a proposal :) @cjamcl @Zizzamia Looks reasonable to me :) @Zizzamia @cjamcl I think this is mostly a labelling problem :) I use "low/high end" if just using device memory +… @cjamcl @Zizzamia Hmm. Could you share the thresholds you're using for low/high end? :) Pixel 3 is similarly bucketed into low atm. @anniesullie @cpclermont @nttrung91 @igrigorik Amazing. Thank you! 🤞 @tkadlec Great write-up, Tim! I see you're using ModHeader to toggle policies on locally. Do you feel toggling FPs… @cpclermont @nttrung91 @anniesullie @igrigorik Do you know if WebPerf WG are exploring more frame throughput metric… useful tip for memory debugging (not mentioned in the article) is `queryObjects(SomeConstructor)`, which ca…
Retweeted by Addy Osmani @yoavweiss @NolanOBrien Nice, Yoav! Would you approach this as a global default (e.g for slow connections) or just… loads images 33% faster on hi-res screens by capping image pixel density to 2x: ~ G… loading priorities in Chrome: ~ how do <script>, <script defer>, <link rel=prelo… = $: "On mobile, per session, users who experienced fast load times bring 17% more revenue than average"…
@simey We're planning to circle back on importance with a new Origin Trial soon. First round, did not get sufficien… @bradwestfall Stepping away from breakpoints are also a problem solving tool :PBreaks are a problem solving tool. Many ideas come when you step away from your desk & get a totally fresh perspective.The Art of UI Skeletons: tips on making apps "feel" fast from the Firefox Add-ons site team.
@jaffathecake @benadam11 Thanks, Jake! Until then, I'm doing... Single-image / compressor tweaking: Squoosh Batch: @imageoptim @CliffordFajard0 When I'm on a poor network while travelling, it's so helpful for sharing any images at all. Love it.Tip: is great for optimizing images on desktop/mobile web. Compress & resize images...all c…
@mikesherov As do I. He's awesome :/Fixing memory leaks in web applications: ~ a guide to common causes of JavaScript memory le… @eamodio @code Really great work on GitLens, Eric! @Azkar_moulana @code This is Dracula with JetBrains MonoThe @ChromeDevTools shows Largest Contentful Paint (LCP) - how quickly the *largest* visibl… for @code is so good: - useful for seeing code history & authorship inline.
@simevidas @zcorpan @blaadeeblaa @dhh @domfarolino @annevk Speaking for Chrome: lazy-loading is a best practice dev… @christianoliff @webkit @domfarolino @rwlbuis Amazing. Thanks for the heads up and great work, @rwlbuis! @AndyDavies @css @YouTube I've had an open bug with the YouTube embeds team about them introducing this change. It'… @pablolizardo Browser support for OC should be up to date at the bottom of :)
@manekinekko @googlefonts Np. Thanks to folks like @davelab6 for bringing these features to GF :) @ryanafrish7 I guess there are a few options: 1) Firefox 47 and Chrome 80 (+Edge) support OC. Serve them a modern… @codecoffeedoggo My read is Fusion includes a babel-preset-env config (if they started today imagine they'd use babel-preset-modules). @manekinekko @googlefonts @jaffathecake Oof, yes. Your example is also *so* much easier to read. Thanks for following that PR to update the explainer, Jake! @v1rtl I've suggested folks consider local hosting fonts in the past. As long as you're okay with the trade-offs (e… @steveschoger w00t. Thanks Steve! Your Refactoring UI book is the gift that keeps on giving. @ertanercan @onderceylan Maybe :) The hard part is answering "Is this page using sufficiently little of this Web Fo… @darth_na @g33konaut (1) Cross-origin resource caching is less effective than folks might guess. There's a ~30% cac… saw a 15% decrease in JS bundle size by creating modern and legacy (more transforms & polyfills) bundles f… Shave up to 90% off the size of Google Fonts requests by declaring only characters you need with &text:…"Your UI doesn't need to map one-to-one with your data's fields and values". Great thinking on simplicity from…
@StevenVanAcker @mikispag cc @gitexplorer for the feedback :) @TimoTijhof You can find mozilla's standards position thread over here @Silicon_Soldier @KenjiBaheux raised a comment about Brotli support in a future version (… @naugtur Oof, yes 🙈 I'm hopeful over time we can rely less on manually dealing with compression implementations on… @dmitrybubyakin @allyssonharry These are both correct :) @chilla42o @ChromeDevTools @FirefoxDevTools FF DevTools has a cubic bezier tool too :) For animations, @ChromeDevTools can edit cubic beziers directly from the styles pane. Compress data from JavaScript with the CompressionStream API! Available in Chrome 80.… helps you find the right git commands quickly. Super handy reference. @cjamcl @patmeenan @TheRealNooshu @reach_to_parth :/ @igrigorik have there been any further discussions in the WebPerf WG on this topic?
@TheRealNooshu @reach_to_parth Discussion on updating ECT thresholds/values in in case folks are interested @mkalina @JohnMu 100% yes. In practice however, many of today's popular stacks produce pretty different output betw… @APKoponen @lord4163 There's a challenge with giving developers fast, high-end hardware: it widens the gap between… @Lady_Ada_King @JakeDChampion +1. The G4 is still a pretty decent median device. If targeting NBU, the Alcatel 1X would also be good.If you want a fast site, test on slow hardware. regularly.
If JavaScript libraries are proving costly, replace them with smaller alternatives. Lots of great options in… @pawan_gangs @FirefoxNightly It's the <img> tag that drives loading so specifying loading=lazy on it should be fine…
@heycam @hiikezoe Thank you for working on the implementation, Hiroyuki! This is fantastic.Native image lazy-loading (<img loading=lazy>) working in @FirefoxNightly! An early look... 🦊 of JavaScript execution time on the web is third-party code 🤯 Learn how to optimize lo… @tophersimmons @domfarolino @annevk @zcorpan :) I think there's opportunity to build on it further. Lots of good qu… @Tom910ru @domfarolino @annevk @zcorpan As you've seen in source, our thresholds keep in mind the user's effective…
@zenorocha Congrats, Zeno! Happy to hear 🧛‍♂️ Pro has been a success :) @RealWesFeller :) @fchristant @domfarolino In Chromium, our implementation had to start with conservative thresholds (to reduce the c… @digitalbeard @pjf The developer has a choice here. Reduced motion can also be the default and "prefers-reduced-mot… @razvanonofrei Nice! I've come to feel the same (lower complexity to pull back animation when it's done from the get go). @cajotafer @domfarolino @annevk @zcorpan I would still include the fallback (for now), but this gives us a path to… specification for native image lazy-loading has been merged into the HTML standard! 🎉… @dmytroka That's one major merge conflict :')CSS prefers-reduced-motion is great for *limiting* animations if a user sets this preference in their OS:…"If you want to go fast, go alone. If you want to go far, go together." You can do so much with a great team.
Learn how to make your JavaScript apps load fast and provide a good user experience. ➡️
Retweeted by Addy Osmani @marvinhagemeist @ChromeDevTools @hdjirdeh Absolutely. Feel free to open an issue on to discuss. @threepointone @ChromeDevTools @hdjirdeh Thanks for any feedback, Sunil!React, Angular, WordPress & others now get more actionable guidance in Lighthouse (@ChromeDevTools > Audits) Great…
@Servrox Love it. I believe this is the first time I’ve seen subtle animation used in this context too :) @sergiooak @javascript_lady Yep. It's a long string to get each layer of the last Yolo right. Thought I'd save folks from my awful code :') @hashseed Ohh, snap. I know where I'll be presenting quarterly updates from now :)Tip: Styled console logs spice up debug messages. Try it: console.log("%c yolo!", "color: HotPink");
@chrisbanes @gauntface @csswizardry @SaraSoueidan @CodePen Wow. Those italic glyphs are pretty sweet. I'll be trying this out too! @gauntface @csswizardry @SaraSoueidan @CodePen TIL. This is pretty nice too! @saeedezt @____lighthouse :) @saeedezt @____lighthouse Would exposing DOM depth in Elements panel (e.g on each parent node) be closer to what you're after? @saeedezt In @____lighthouse (DevTools -> Audits) we have a DOM size audit. Tries to capture total DOM elements for… @csswizardry @SaraSoueidan @CodePen I picked up a license to Operator Mono a while back (love it!) but know the pri… @tomayac Glad to hear others are sticking with it! @DarkainMX Great point. I've been advocating for better adaptive delivery of costly animations and effects lately (… JetBrains Mono: ~ a free developer typeface with code-specific ligatures and increas… backdrop-filter applies filters to only what is *behind* an element: ~ great for transl…
@maxakohler @argyleink @Una @MaxKoehler Thanks for the great articles!CSS Scroll Snap: ~ lock the viewport to certain elements after the user finishes scrolling.…
@fatihturan @ECmsv @code Do you know the plan here for where sync'd settings actually get stored? is it GH? Elsewhere? :)Settings Sync: ~ sync your VS @code settings to GitHub Gists to reuse settings, themes, sni…