Sign in

Sérgio Gomes

@sgomes.com
57 followers 55 following 27 posts

Developing things on the web. Web performance engineer at Automattic. Clumsy maker.

PostsRepliesMedia
Sérgio Gomes @sgomes.com · 23/09/2026
Thanks for doing this, I couldn't click that 👍 fast enough!
010
Sérgio Gomes @sgomes.com · 25/08/2026
That makes me sad, but unfortunately doesn't surprise me 😞
000
Sérgio Gomes @sgomes.com · 25/08/2026
I'm just hoping it'll be implemented properly across all three browsers, so we finally have a format with progressive rendering that works everywhere. I know it won't show up in metrics like LCP, but it should be an improvement to user experience nonetheless.
120
Sérgio Gomes @sgomes.com · 11/08/2026
I don't know what's supposed to happen when you run that, but all I can picture now is you making engine noises.
110
Sérgio Gomes @sgomes.com · 29/07/2026
It can also be a bit clunky to use, especially if you don't also use direnv (www.jetify.com/docs/devbox/...), so consider this more of an FYI than a recommendation 🙂 For my use-case (lots of project-hopping), it's great, and I'm happy to put up with the quirks, but that may not be the case for all.
000
Sérgio Gomes @sgomes.com · 29/07/2026
If you work on a bunch of codebases that need different versions of common dependencies like PHP, devbox (www.jetify.com/devbox) is a good alternative to Homebrew, that allows you to have per-project deps. In fact, I would only use it per-project; installing globally can fail in weird ways.
120
Sérgio Gomes @sgomes.com · 17/06/2026
"How spicy would you like your shower, sir?"
050
Sérgio Gomes @sgomes.com · 15/06/2026
That sounds like surfacing more browser internals, which is both good and bad. Good in that we get some visibility into what's happening when we need, bad in that implementation quirks in different engines might become more important (like some of the engine-specific JS deopts we used to have)...
030
Sérgio Gomes @sgomes.com · 15/06/2026
Worst I've seen is a (base64-encoded) PNG inside an SVG, inside JS... Build tools are nice and all, but if we don't understand what we're doing, we can end up with some really dumb problems.
120
Sérgio Gomes @sgomes.com · 26/05/2026
I think "done really well" is just taking your string and handling it correctly 🙂 Maybe have some safe-ish server-side mapping? But if they must make me rewrite things myself, then I would like them to point out exactly where the issue is — which I don't remember ever seeing done right.
010
Sérgio Gomes @sgomes.com · 26/05/2026
As a user: validation errors. It's not great having a site tell you your address (or worse, your name) is invalid, and then making you guess which perfectly valid characters they dislike. You'd figure a few simple text strings would be able to travel unharmed from my keyboard to the shipping label.
130
Sérgio Gomes @sgomes.com · 06/05/2026
I don't recall what the situation was like for WebUSB or WebSerial, but for LCP developer sentiment was overwhelmingly positive. Surely that has an impact on whether a non-standard API incubates successfully?
130
Sérgio Gomes @sgomes.com · 06/05/2026
Perhaps Google could share some evidence on how the lack of a built-in prompt API is holding the web back? Because without that evidence, it seems to hard to justify going ahead without consensus on this one, especially considering developer sentiment as well.
120
Sérgio Gomes @sgomes.com · 15/04/2026
There are a few use-cases. E.g., when collecting RUM data we want the script to work mostly everywhere, not crash on unsupported syntax, so we know the # of users left on older browsers. We've been (carefully, to avoid bloat) transpiling to ES5 for this, but "widely available" might be a good fit.
000
Reposted by Sérgio Gomes
Joseph Scott @josephscott.bsky.social · 03/03/2026
The performance team I lead at Automattic is hiring - automattic.com/work-with-us... #webperf #php #jobs #wordpress #woocommerce
automattic.com
Performance Engineer, Backend
Automattic’s products—WordPress.com, WooCommerce, Beeper, Tumblr, Jetpack, and more—serve tens of billions of page views every month from data centers around the world. The PerfOps team exists to make...
066
Sérgio Gomes @sgomes.com · 13/02/2026
It's been a while since my last blog post, so I made up for it with a wall of text 😅 This article looks at why JS-heavy web apps tend to miss their performance goals over time, what you can do to somewhat mitigate that, and ends with a plea for us to move back to the server, as an industry.
sgom.es
JS-heavy approaches are not compatible with long-term performance goals
I’m Sérgio, and I work with Web frontend code. Sometimes I write about it here.
2194
Sérgio Gomes @sgomes.com · 05/11/2025
I think that's only scary to folks like you and me, sadly.
100
Sérgio Gomes @sgomes.com · 24/10/2025
How can those of us working in performance make the case that someone should improve performance on their site, if the tools I use to show them that are even worse?
130
Sérgio Gomes @sgomes.com · 24/10/2025
The logged-in version uses over 20MB of resources, 17 of which are JS. It loads react, moment, lodash, and some of the other usual suspects, and all of this runs before anything useful is shown.
110
Sérgio Gomes @sgomes.com · 07/10/2025
It depends. Coming from a performance focus, I'd say that if browsers were to all reliably support progressive decoding and rendering, that would be the biggest one. Better than thumbnail hacks, with no extra work! If not, then thinking of photography, large image support would be it.
140
Sérgio Gomes @sgomes.com · 07/10/2025
It's a great format to convert any static image to, with no real limitations: - Efficient lossy compression - Alpha channels - Wide colour gamut - Large image support (> 4K), which is important for photography sites - (Nice to have) Progressive decode Other formats fail at one or more of the above.
120
Sérgio Gomes @sgomes.com · 30/09/2025
So *that's* why all of a sudden the dialog shifted to optimising browsers for frameworks, instead of optimising frameworks for browsers. Utter nonsense.
080
Sérgio Gomes @sgomes.com · 19/09/2025
Hey Paul! 👋 I'm in the market for pretty much the same. There's a few coming later this year that I'm waiting for, namely the ASUS PA32QCV, and the LG 32U990A.
010
Sérgio Gomes @sgomes.com · 05/09/2025
Proposal filed! github.com/web-platform...
github.com
Temporal (Interop 2026 Focus Area Proposal) · Issue #1022 · web-platform-tests/interop
Description From MDN: The Temporal object enables date and time management in various scenarios, including built-in time zone and calendar representation, wall-clock time conversions, arithmetics, ...
130
Sérgio Gomes @sgomes.com · 04/09/2025
Would something like Temporal meet the criteria for well-defined and well-tested?
120
Reposted by Sérgio Gomes
Marvin Hagemeister @marvinh.dev · 10/08/2025
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...
marvinh.dev
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.
1219935
Sérgio Gomes @sgomes.com · 17/07/2025
The closest I can think of is a ponyfill, but that’s generally only used for JS implementations that avoid touching any globals: github.com/sindresorhus... Although perhaps the idea could be generalised to encompass CSS as well?
github.com
GitHub - sindresorhus/ponyfill: 🦄 Like polyfill but with pony pureness
🦄 Like polyfill but with pony pureness. Contribute to sindresorhus/ponyfill development by creating an account on GitHub.
250
Sérgio Gomes @sgomes.com · 10/07/2025
I’m so tired of hearing “the DOM is slow”… I’ve been doing performance for a while, and I’ve yet to find a single case where reading or writing to the DOM was a legitimate bottleneck. Poor timing? Sure. Excessively large DOMs? Sure. But React won’t magically save you from those either.
020
Sérgio Gomes @sgomes.com · 03/07/2025
Sorry buddy, it's official.
010
Reposted by Sérgio Gomes
Zach Leatherman @zachleat.com · 01/07/2025
it feels important to keep saying: SPA as an app framework default (and not an opt-in feature) was a mistake
99623