Stoyan Stefanov @stoyan.me · 30/09/2026... such as an old Playstation. Accessibility of info first, skeleton UIs last, please. 010
Stoyan Stefanov @stoyan.me · 30/09/2026america.gov vs gov.uk on my iPhone 8 (Safari 15). Watch this talk www.youtube.com/watch?v=VdBx... by @therealnooshu.bsky.social Hobbs about what happened during the pandemic, people desperately looking for gov't info and browsing with horrible connections on devices such as ... 162
Stoyan Stefanov @stoyan.me · 30/09/2026Blog post where I look at my server logs, trying to answer the question: does `llms.txt` in your root help at all? www.phpied.com/llms-txt-age...phpied.comllms.txt: agent-optimization wishful thinkingCan't remember where I stumbled upon a SEO-type guide that was suggesting agent-optimization via a robot.txt-like file llms.txt which lives in the web root and helps agents use your site. Perfect, I t... 011
Stoyan Stefanov @stoyan.me · 26/09/2026Speaking of the web performance calendar... December is a-approaching, what are YOU going to write about? calendar.perfplanet.com/contribute/calendar.perfplanet.comContributePassionate about a topic? Working on a new tool? Have a technique you want to teach? Research you've done? Tell the web performance community! Send your articles to ssttoo@ymail.com. Please include: ... 000
Stoyan Stefanov @stoyan.me · 26/09/2026Blog by @csswizardry.com reminding us about the UNO metric @timvereecke.bsky.social introduced on the web performance calendar csswizardry.com/2026/08/uno-... UnO = Underrated Observables 😜csswizardry.comUnattributed Navigation Overhead (UNO) Is Underrated – CSS WizardryUnattributed Navigation Overhead exposes the part of Time to First Byte that Navigation Timing cannot explain, including hidden cross-origin redirects. 131
Stoyan Stefanov @stoyan.me · 26/09/2026When does California's 1-click-unsubscribe law starts being mandated? Trying to cancel a subscription: website's subs management is under construction, no one is picking up the phone and AI chatbot is the only thing responding. Of course it sends you to the phone. Arghh! p.s. avoid JustFoodForDogs 000
Stoyan Stefanov @stoyan.me · 26/09/2026...These books were most certainly entirely ghost-written. The joke back then was: he's written more books than he's read. And now, thanks to LLMs, this could be you too! Even without an army of ghosts. What a time to be alive! 100
Stoyan Stefanov @stoyan.me · 26/09/2026Todor Zhivkov, leader of communist Bulgaria 1956-1989, "wrote" an insane amount of books, over 50 probably, fat ones too. Of course, it's really hard to write that much, even for full-time prolific folks like Stephen King or Isaac Asimov... 100
Stoyan Stefanov @stoyan.me · 24/09/2026New blog post about becoming a Micro-Influencer on Instagram: www.phpied.com/i-am-now-an-... (meaning 10K followers) How I got there (not hard, just persistence for 5+ months) and what are the benefits (not monetary or any real influence). AMA.phpied.comI am now an Instagram Micro-InfluencerAMA. What's a "Micro-Influencer"? Someone with 10K or more followers. Approximately 15% of all Instagram accounts. So I'm a "15 percenter" What's an Instagram? A window on your baby television tha... 000
Reposted by Stoyan Stefanov Henri Helvetica 🧑🏾🚀🇭🇹 @henrihelvetica.bsky.social · 15/03/2026SIR @stoyan.me and I just hanging out. Published sooooooon.... 031
Stoyan Stefanov @stoyan.me · 13/02/2026New blog in the series about building SightRead.org www.phpied.com/quick-and-di...phpied.comQuick and dirty lintingThis post is another installment of the series dedicated to building sightread.org. Parts 1, 2, 3, 4, 5, 6. I've been using TypeScript (actually JSDoc + tsc --noEmit) as my linter for a while. Well, ... 000
Stoyan Stefanov @stoyan.me · 11/02/2026sightread.org/blog/asymmet... Adding support for 7/8 and family to my music sight reading projectsightread.orgAsymmetric time signatures - SightRead.org BlogPractice rhythms in 5/8, 7/8, and 11/8 with flexible beat groupings that make these meters feel natural. 030
Stoyan Stefanov @stoyan.me · 05/02/2026New blog post about an experiment in measuring how rendering times are affected by the size of SVGs www.phpied.com/measuring-sv...phpied.comMeasuring SVG rendering timeThe questions Is rendering large SVGs significantly slower than smaller ones? Is there a cut-off size above which things are terrible? And what if these SVGs were PNGs, just for giggles. To answer t... 082
Stoyan Stefanov @stoyan.me · 24/01/2026New blog post www.phpied.com/oops-i-build...phpied.comOops, I build.js'd it againWho amongst us has not created a blogging software of some fashion or another? I know I have, many times. My latest (joke-y) attempt was Lizzy.js. The desire to go into a writing mode and don't worry ... 001
Stoyan Stefanov @stoyan.me · 21/01/2026I don't think there are many music dictation apps out there, but here's v1 of mine. Rhythm-only for now, part of the sightread.org project. To try sightread.org?rhythm-dicta... To read the blog post sightread.org/blog/quests-...sightread.orgIntroducing Quests and Rhythmic Dictation - SightRead.org BlogSightRead.org now has quests. Rhythmic Dictation is a new mode where you hear a rhythm and try to identify it. 021
Reposted by Stoyan Stefanov Martin Michalek @machal.bsky.social · 13/01/20267 tips for your #WebPerformance education: Every December, @stoyan.me publishes the excellent Web Performance Calendar. It is a great collection of insights from the world's top experts. Even in 2026, these articles are a "must-read." Here is what caught my eye this year (thread). ⤵️ 152
Stoyan Stefanov @stoyan.me · 14/01/2026look ma' I'm now opining about AI like the big kids www.wearedevelopers.com/en/videos/17...wearedevelopers.comAI is an Electric Bike for the Brain - Stoyan StefanovStoyan Stefanov calls AI an electric bike for the brain. But he warns it can also lead you straight off a performance cliff. 020
Stoyan Stefanov @stoyan.me · 12/01/2026New 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!phpied.comType checking without the muckThis 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... 020
Reposted by Stoyan Stefanov Stefan Judis @stefanjudis.com · 05/01/2026Huge congrats and kudos to @stoyan.me for running it and to all the authors for writing articles for this year's Web Performance calendar. calendar.perfplanet.com/2025/ The quality was very high, and it feels like every second post was a banger!calendar.perfplanet.com2025 ArchivesThe speed geek's favorite time of year 132
Stoyan Stefanov @stoyan.me · 05/01/2026yeah, good point, that's how I ended up abandoning SWC. Hopefully with browser targets low enough (Safari 15) subtle bugs will be few and breaking bugs will be discovered while building. 000
Stoyan Stefanov @stoyan.me · 04/01/2026New 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 outphpied.comMaximally Minimal Build ProcessIn 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... 174
Reposted by Stoyan Stefanov Brian Alfaro @designbaa.bsky.social · 01/01/2026Let's make 2026 the year to make web simple again. Not everything needs to be an app, sometimes its just idk a website. 🥳🥳 041
Reposted by Stoyan Stefanov Ben Schwarz @benschwarz.bsky.social · 31/12/2025People 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. 0166
Stoyan Stefanov @stoyan.me · 31/12/2025I see what you mean, thanks! There's nothing wrong with discovering (how to do) something and writing about it even though one is not an expert, sometimes experts are too deep to put themselves in a noobie's shoes. But you're right, sometimes people just put out low effort borderline spam-ticles :) 120
Reposted by Stoyan Stefanov Greg Strange @iplayoddball.bsky.social · 31/12/2025I almost slipped this article because that headline is usually a red flag to me. But I'll be damned, every single one of these features slap. 111
Stoyan Stefanov @stoyan.me · 31/12/2025"All hits, no skips" :) Out of curiosity what in the title is redflag-y, the stuff in parenthesis? 100
Reposted by Stoyan Stefanov Ryan Townsend @twnsnd.com · 31/12/2025Put the NYE champagne down… my article is up on the 2025 Web Performance Calendar 🥳 182
Reposted by Stoyan Stefanov Peter Bowyer @peterbowyer.bsky.social · 31/12/2025@stoyan.me it's been a fantastic Web Performance Calendar, thank you for curating it and Happy New Year! 031
Reposted by Stoyan Stefanov Vinicius Dallacqua @webx.bsky.social · 31/12/2025Wrapping 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 !agent.perflab.ioPerfAgent - AI-Powered Web Performance AnalysisGet expert insights on Core Web Vitals and performance optimization from an AI specialized in web performance analysis. 031
Stoyan Stefanov @stoyan.me · 31/12/2025Web 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...calendar.perfplanet.comThe Curious Case of the Shallow Session SPAsBuried 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... 091
Stoyan Stefanov @stoyan.me · 31/12/2025Web 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...calendar.perfplanet.comFrom Theory to Tiny: Implementing Compression DictionariesCompression 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... 195
Stoyan Stefanov @stoyan.me · 31/12/2025Web 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...calendar.perfplanet.comTeaching Agents about Performance insightsAI is kinda everywhere! Everyone is shipping AI features or Agents, but few of those systems can reason about the complex reality of performance data. This session is a deep dive story into the jour... 020
Stoyan Stefanov @stoyan.me · 31/12/2025Web Performance Calendar day 31 article 2/5: @keerthanak17.bsky.social on making friends with Chrome DevTools and transforming it into a powerful tool for deep understanding, debugging, and improving of real-world web performance calendar.perfplanet.com/2025/chrome-...calendar.perfplanet.comChrome DevTools Features I Use All the Time (and Why You Should Too)Most developers open Chrome DevTools, check a couple of network requests, maybe refresh the page once or twice — and that's it. I used to do the same. Over time, DevTools became something else entir... 0242
Stoyan Stefanov @stoyan.me · 31/12/2025Web 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...calendar.perfplanet.comOpen Source RUM with BasicRUMIt'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... 040
Stoyan Stefanov @stoyan.me · 30/12/2025New blog post about subsetting a ligature-heavy font highperformancewebfonts.com/read/subsett... Almost always we subset based on text. But in my case, a more fine-tuned glyph-based approach saves 91% of bytes as opposed to 74% in the usual way. Worth it? 000
Reposted by Stoyan Stefanov Sergey Chernyshev @sergeyche.dev · 30/12/2025Our Web Performance Journey guide is live on PerfPlanet Calendar! 043
Stoyan Stefanov @stoyan.me · 30/12/2025Web 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...calendar.perfplanet.com7 Steps of a Web Performance JourneyThis 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... 050
Stoyan Stefanov @stoyan.me · 29/12/2025I added a little feature to sightread.org to remove the chrome so I can screen-record exercises UI-free and post them as Instagram reels. This way folks can squeeze a bit of practice while scrolling. If that sounds like you: www.instagram.com/sightreadorg/sightread.orgSightRead.org 000
Reposted by Stoyan Stefanov Paul Calvano @paulcalvano.bsky.social · 29/12/2025My 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! 0104
Stoyan Stefanov @stoyan.me · 29/12/2025Web 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...calendar.perfplanet.comThird Parties and Single Points of FailureYou've heard it many times - third party content can easily cause an otherwise well performing website to become sluggish and slow. And depending on how this content is loaded, it can also introduce s... 030
Reposted by Stoyan Stefanov Duffeh @duffeh.bsky.social · 28/12/2025My article for Performance Calendar is live, looking at tips to help focus when doing performance traces. 0133
Stoyan Stefanov @stoyan.me · 28/12/2025Web Performance Calendar day 28 when Ian Duffy shows us how to tame Chrome’s Performance panel: reduce noise, search fast, annotate, use Insights, and customize tracks calendar.perfplanet.com/2025/tips-fo...calendar.perfplanet.comTips for making the Performance Panel less overwhelmingIntroduction The Performance Panel is used for detailed investigations on traces captured during page load or during user interactions. It's a critical tool for understanding and debugging performanc... 0133
Stoyan Stefanov @stoyan.me · 27/12/2025Web Performance Calendar day 27 with @nucliweb.net on using Chrome DevTools for fun and profit: inspect heavy files in Network panel, monitor Core Web Vitals, record performance traces, validate optimizations, and more. calendar.perfplanet.com/2025/chrome-...calendar.perfplanet.comChrome DevTools for Debugging Web PerformanceThis is a step-by-step guide on how I use Chrome DevTools (DevTools from now on) to detect Web Performance issues on a website, as well as validate hypotheses to fix some of the problems found. Discl... 0127
Stoyan Stefanov @stoyan.me · 26/12/2025Web Performance Calendar day 26 with Sébastien Mischler on HTML streaming/flushing and how this old trick (featured in the first edition of the calendar) applies to today's CSR world. Show content now, not after JS finishes thinking. Fast pages, happy users. calendar.perfplanet.com/2025/revisit...calendar.perfplanet.comRevisiting HTML streaming for modern web performanceIntroduction Modern web performance issues often come from delayed rendering rather than network speed. Client-side hydration and heavy JavaScript pipelines can prevent browsers from showing content ... 1184
Stoyan Stefanov @stoyan.me · 25/12/2025Web Performance Calendar X-mas edition with Nicolas Hodin on BFCache: a huge UX win, but easy to break with Cache: no-store, unload handlers, iframes, or long-lived connections calendar.perfplanet.com/2025/chasing...calendar.perfplanet.comChasing BFCache navigationsWhat is BFCache? The Back/Forward Cache, or BFCache, is a browser mechanism that allows a page to be restored instantly when a user uses the browser's Back or Forward buttons. Unlike a simple HTTP c... 141
Stoyan Stefanov @stoyan.me · 24/12/2025New blog post "Lazy-Loading Optional Fonts with Native Browser API" describing a wee trick I do on sightread.org to load music glyphs, optionally highperformancewebfonts.com/read/lazy-lo... 020