Joan León

Joan León

@nucliweb.net

⚡️ Web Performance Artisan at @perf.reviews | Google Dev Expert in Web Tech | Cloudinary Ambassador | ❤️ Image Optimization | Girona

1.8K followers509 following661 posts

Joan León reposted

With 2 years of rollouts, we've learned a lot about compression dictionaries and the Web. Patrick will cover what works, where the footguns are, how to maximize their effectiveness, and other experiments around compressing content on the web. @patmeenan.com at perfnow.nl

Joan León reposted

Sometimes custom solutions that we build highlight deeper challenges with performance and usability, and reveal an opportunity to grow the web’s native capabilities. How doe you move from patterns that work on one website to features that are built into our browsers? @scottjehl.com at perfnow.nl

Joan León reposted

Joan León reposted

🚀 From population models to personalized AI! How can we build digital twins tailored to individuals? Join #GDGGirona on Oct 22 for a live demo exploring generative deep learning, transfer learning & personalized healthcare 👉 gdg.community.dev/events/detai... #AI #MachineLearning #DigitalTwins

gdg.community.devFrom Population Models to Personalized Digital Twins | Google Developer GroupsIn-person Event - Join us for a session on enhancing machine learning accuracy for individuals using generative deep learning and transfer learning. Explore personalized healthcare applications like s...

For agents: • A "Copy prompt" button next to the snippets, so an agent runs them with the CLI and reports back • Agent Skills for Claude Code, Gemini CLI and other agents • A Markdown version of every page, llms.txt and WebMCP tools #WebMCP #SKILLS

That shared contract (status, value, rating, issues) is why this is a major version: if you read the output from code, some fields have changed. 56 snippets, 7 of them new: compression, Early Hints, Speculation Rules, third-party impact by domain, and more.

Es todo un lujo poder formar parte de @a11yconf.com como ponente, donde hablaré de "El árbol de accesibilidad frágil: por qué el HTML semántico es clave para el rendimiento web" 🎟️ Aprovecha ahora que quedan entradas!!! 2026.a11yconf.com/entradas/ #a11y #WebPerf #a11yConf

2026.a11yconf.comEntradas - a11yConf 2026La conferencia de accesibilidad web más importante de España. Únete a profesionales, diseñadores y desarrolladores comprometidos con la inclusión digital.

During a perf audit for a client, I read this in a PR: "The module should only be loaded once, not every time a file is selected." When I read it, something didn't add up, so I started digging. And the result surprised me. I wrote a post joanleon.dev/en/dynamic-i... #JS #WebPerf

joanleon.devDynamic import(): the browser already caches our modules | Joan LeónCalling import() every time a feature is used doesn't download or evaluate the module again: the browser reuses it from its module map. What it guarantees, when the same module stops being the same, a...

One thing I’m experimenting with for a performance audit: Using RUM data + @debugbear.com MCP to build synthetic tests based on how the product is actually used RUM → real user behaviour → MCP → representative synthetic tests www.debugbear.com/docs/mcp #WebPerf #RUM #MCP

debugbear.comAccess Web Performance Data With The DebugBear MCP Server | DebugBearConnect AI assistants like Claude and ChatGPT to DebugBear using the Model Context Protocol (MCP) to run tests, query metrics, and manage projects.

Joan León reposted

We created Modern Web Guidance to bring web platform expertise right into your agent workflows. Have you tried pairing these skills with Chrome DevTools for agents to audit performance and automatically fix code? Check it out and join 10K+ web developers who are coding smarter → goo.gle/4yEVz1h

P75 is green: LCP 1.58s, INP 176ms, CLS 0.01. P90: LCP 2.68s, INP 352ms, CLS 0.17. 15% of visits get a noticeably worse experience. Product Performance doesn't end once you pass CrUX: if P75 is good, work on P90. #WebPerf #CoreWebVitals #RUM #ProductPerformance

Joan León reposted

Most skills are a Markdown file that grows out of control and gets loaded whole, even when the task doesn't need it. Modern Web Guidance inverts the pattern: 250 fixed tokens, and the agent retrieves the guide it needs on demand. joanleon.dev/en/modern-we... #AI #WebDev #CodingAgents

joanleon.devA skill that knows nothing: the architecture of Modern Web Guidance | Joan LeónModern Web Guidance doesn't keep the knowledge in the skill, it teaches the agent to retrieve it. Local semantic search with MiniLM and TensorFlow.js, guides with their own grader, and empirical calib...

In my audits, the question I hear most after a deploy is "why hasn't CrUX moved yet?" The window is always 28 days; daily, weekly and monthly are just cadences over the same data. And p75 resists change by design I explain it with two interactive demos joanleon.dev/en/crux-28-d... #WebPerf #CrUX

joanleon.devThe CrUX 28-day rolling window | Joan LeónHow the CrUX 28-day rolling window actually works, what each source publishes, and why p75 takes so long to move even though the data is only two days old.

Web performance is a marathon, not a sprint. Ship the fastest site today and in two weeks a third-party script, an unoptimised image or a CDN change will have quietly undone it. Optimising without monitoring doesn't last. 🧵 #WebPerf #RUM #CoreWebVitals

View full thread

The site is static, on Netlify. 27s to first byte means the request never resolved at the edge: cache miss to origin, cold start, or a failing PoP.

Isolated spikes off a stable ~2s baseline, different days, different countries. Not one user on a bad connection, and not bots, I checked. Which is the whole point of RUM: synthetic checks on a schedule would have missed every one.

Web performance is a marathon, not a sprint. Ship the fastest site today and in two weeks a third-party script, an unoptimised image or a CDN change will have quietly undone it. Optimising without monitoring doesn't last. 🧵 #WebPerf #RUM #CoreWebVitals

View full thread

A fast site isn't a project you close on launch day. It's a state you have to maintain. The alert is the beginning, not the end. Now: root cause, and give users back the experience they expect.

Update: this isn't frontend. TTFB is 27.44s of a 27.93s FCP. 98% of the time is spent waiting for the first byte, and the HTML is 15 KB.

Web performance is a marathon, not a sprint. Ship the fastest site today and in two weeks a third-party script, an unoptimised image or a CDN change will have quietly undone it. Optimising without monitoring doesn't last. 🧵 #WebPerf #RUM #CoreWebVitals

@speedcurve.com alert, fired on its own: FCP (RUM) budget breached, metric at 4.72s. Flat and green for hours, then climbing. Nobody was watching a dashboard. Synthetic gives reproducibility. RUM gives the truth: real users, real devices, real networks.

Joan León reposted

While some people laughed about the number of dependencies in the JS world, others worked to improve the ecosystem (like @e18e.dev). Now many of my open source projects have around 20 packages in node_modules, including transitive dependencies.

Joan León reposted

We got a few new individual sponsors recently in @e18e.dev - thank you to those of you who are supporting us 🙏 Getting sponsorships for a community is much harder than for a popular web app or dev tool. Every little helps. If you'd like to help us improve perf for all of us, check out our OC 🩵

opencollective.come18e - Ecosystem Performance - Open CollectiveThe e18e community has the aim of improving performance of tooling and packages in the JavaScript ecosystem.

In my audits, reading the Performance profile is where people get stuck: the flame chart and waterfall look like noise at first I built an interactive guide to make them click, every figure is interactive, plus LCP, CLS, INP and the Insights panel perf.reviews/profile-guide #WebPerf #DevTools

perf.reviewsReading a Performance Profile: Field GuideAn interactive field guide to the Chrome DevTools Performance panel: waterfall, flame chart, LCP, CLS, INP, and the Insights panel.

Joan León reposted

The curse of web performance - once you know it, you can’t unknown it and I see performance issues on the sites I visit too and can’t help it but open DevTools often as well. I was even thinking for creating a podcast-style Meet4SPEED YouTube channel looking at websites and improving them.

Joan León@nucliweb.net

An occupational habit: I open DevTools on every site I visit, hunting for things to improve. On skills.addy.ie I caught a 301 on every internal click, a wasted round trip. It was a trailing-slash mismatch. Wrote up the finding and the fix: joanleon.dev/en/trailing-... #WebPerf #Astro #Netlify

I'm testing the @debugbear.com MCP with Claude Code, and my first impression is that combining DebugBear's great tools with the power of AI Agents is awesome for creating executive and detailed technical reports... #WebPerf #PerfTools #AI #WebPerfAI

And if you have the opportunity to run it on the source code, the potential is impressive. I'll write a post with my experience and thoughts.

I've been running #Antigravity Skills in real projects and the YAML frontmatter does much more than the docs show. kind: subagent + restricted tools + the right model per task. That trio makes agent behavior predictable and keeps costs in check. joanleon.dev/en/antigravi... #AI #AgentSkills

joanleon.devAntigravity Skills: advanced YAML frontmatter configuration | Joan LeónThe kind, model, temperature, max_turns and tools fields in SKILL.md frontmatter let you precisely control how each agent runs in Antigravity. A practical guide to the extended fields that Google hasn...