Stoyan Stefanov

@stoyan.me

stoyan.me, PerfPlanet, "JavaScript Patterns", "React: Up & Running", YSlow, SmushIt. Formerly of Facebook, WebPageTest, Yahoo

New blog post www.phpied.com/type-checkin... This is now part 4 of something I thought will be a quick note. Installment 4 talks about type checking without TypeScript. Hello JSDoc! And so the DIY-ing continues until morale improves!

Type checking without the muck

This is part 4 of a series about hacking on sightread.org with minimal tooling/building and maximum web platform-ing: Part 1: Import JavaScript like it's 2026 Part 2: Maximally Minimal Build Proc...

phpied.com

New blog post: www.phpied.com/maximally-mi... It's about staying away from most everything the JS ecosystem has to offer and stick close to the web platform. A build is still necessary because of long lived caches and updates but it can be tiny and simple. Time will tell how this strategy plays out

Maximally Minimal Build Process

In my previous post I described how I set up sightread.org with no build process and modern JavaScript. The goal was raw ES modules, no transpilation, no bundling, just <script type="module"> and we'r...

phpied.com

Let's make 2026 the year to make web simple again. Not everything needs to be an app, sometimes its just idk a website. 🥳🥳

Stoyan Stefanov @stoyan.me · 7mo ago

Web Performance Calendar day 31 article 5/5: @infrequently.org investigates SPA usage patterns showing that users often trigger only ~1 soft navigation per page load. If the heavy upfront JS costs aren’t being amortized, what are SPA's performance benefits? calendar.perfplanet.com/2025/the-cur...

People like to say “once the single page app is booted, it’s faster”, but they’re wrong — stats show few subsequent navigations occur. React simply isn’t worth the cost for most websites.

Stoyan Stefanov @stoyan.me · 7mo ago

Web Performance Calendar day 31 article 5/5: @infrequently.org investigates SPA usage patterns showing that users often trigger only ~1 soft navigation per page load. If the heavy upfront JS costs aren’t being amortized, what are SPA's performance benefits? calendar.perfplanet.com/2025/the-cur...

Wrapping up the year with my article for the Perf Calendar with my write up about how I ended up creating agent.perflab.io! It has AI, it has Perf…what else could you want 😎🔥 I’m always happy to see my content in the Performance Calendar! Thanks for the initiative @stoyan.me !

PerfAgent - AI-Powered Web Performance Analysis

Get expert insights on Core Web Vitals and performance optimization from an AI specialized in web performance analysis.

agent.perflab.io

Stoyan Stefanov @stoyan.me · 7mo ago

Web Performance Calendar day 31 article 3/5: Can AI meaningfully help with real-world performance analysis? @webx.bsky.social explores how to train AI/LLM agents to interpret complex browser data (like DevTools traces) into actionable insights. calendar.perfplanet.com/2025/teachin...

Web Performance Calendar day 31 article 5/5: @infrequently.org investigates SPA usage patterns showing that users often trigger only ~1 soft navigation per page load. If the heavy upfront JS costs aren’t being amortized, what are SPA's performance benefits? calendar.perfplanet.com/2025/the-cur...

The Curious Case of the Shallow Session SPAs

Buried at the end of this year's instalment of my semi-annual series on network and device reality is a mystery: multiple, independent data sets from the Web Performance community indicate sites built...

calendar.perfplanet.com

Web Performance Calendar day 31 article 4/5: @twnsnd.com on Compression Dictionaries to dramatically shrink responses (60–90% smaller than Brotli/GZIP). Why adoption is slow. Practical architectural decisions and implementation tips to get huge bandwidth wins. calendar.perfplanet.com/2025/from-th...

From Theory to Tiny: Implementing Compression Dictionaries

Compression Dictionary Transport became an official IETF Proposed Standard this September (congratulations to Yoav Weiss & Pat Meenan 🎉). If you don't know what they are, I recommend watching Pat's wo...

calendar.perfplanet.com

Web Performance Calendar day 31 article 1/5: Tsvetan Stoychev shares that BasicRUM (open-source Real User Monitoring tool) will have its source code released Q1 2026. Self-hosted, privacy-friendly, with AI-powered insights & dashboards to spot perf issues calendar.perfplanet.com/2025/open-so...

Open Source RUM with BasicRUM

It's been a long, busy year but my friend Faisal and I stayed focused on building BasicRUM. After work, we pushed countless commits from a cozy café in Munich. The important news is that we're wrappi...

calendar.perfplanet.com

Web Performance Calendar day 30 with @sergeyche.dev, Eric Goldstein and Alex Chernyshev on mastering perf: get business to care, link UX speed to outcomes, set thresholds, understand real users with percentiles, trends, distributions, tie to business metrics calendar.perfplanet.com/2025/7-steps...

7 Steps of a Web Performance Journey

This year, Sergey Chernyshev, Eric Goldstein, and Alex Chernyshev - members of the NY Web Performance meetup - decided to collaborate on the future of the UX Speed Calculator tool Sergey created a few...

calendar.perfplanet.com

My contribution to this years Web Performance Calendar is all about Third Parties and Single Points of Failure (SPOF). Based on @httparchive.org data I found that 67% of websites have at least 1 render blocking third party - and quite a few of them are SPOF risks!

Stoyan Stefanov @stoyan.me · 7mo ago

Web Performance Calendar day 29 with @paulcalvano.bsky.social's research on 3rd parties, SPOF, and the need to test and monitor these. 67% of sites out there have at least 1 render-blocking external dependency. calendar.perfplanet.com/2025/third-p...