juan ferreras

juan ferreras

@juanf.is

engineer by day, over-engineer by night. built: #LabelRadar (acq.) building: ???

591 followers412 following93 posts

juan ferreras reposted

I'm looking to recruit talented senior engineers that have experience related to web performance monitoring and optimization. If that sounds like you—or someone you'd highly recommend—please send me a DM and I’ll share more details! The role is 100% remote and async-first.

This sounds super interesting. I'm a bit skeptical on how unit economics would work – but compared to we'll-try-to-scrape-everything-we-can-unless-you-can-sue-us-or-fully-block-us, it feels like a great alternative. Would love to see any leading provider send a positive signal..

Cloudflare@cloudflare.social

Pay per crawl is a new feature to allow content creators to charge AI crawlers for access to their content. blog.cloudflare.com/introducing-...

Cloudflare's Containers are now in public beta. blog.cloudflare.com/containers-a... I was recently struggling to get a WASM version of brotli dictionary_generator (skill issue), but it's a very powerful unlock to just deploy a dockerfile if you need any specific runtime/CPU-intensive work

blog.cloudflare.comContainers are available in public beta for simple, global, and programmable computeCloudflare Containers are now available in public beta. Deploy simple, global, and programmable containers alongside your Workers.

Cloudflare report on yesterday (Jun 12 2025) outage. Definitely respect the non name-shaming vendors policy and showing accountability/ownership instead. Very impressed by how detailed it is given it's been less than 24hs from it. blog.cloudflare.com/cloudflare-s...

blog.cloudflare.comCloudflare service outage June 12, 2025Today, June 12, 2025, Cloudflare suffered a significant service outage that affected a large set of our critical services, including Workers KV, WARP, Access, Gateway, Images, Stream, Workers AI, Turn...

juan ferreras reposted

⚡ Lighthouse (incorrectly) punishes preloading If you’re like me, you probably struggled with Lighthouse scores at least once. “I already optimized everything; why is my score still yellow?” Often, the cause is there’s more to optimize. But sometimes, it’s Lighthouse itself.

"AI should do my laundry" is something that not everyone agrees with but.. I'm surprised that tools that literally do all the errands I'm lazy to do haven't been nailed before trying to "replace" someone's job. E.g. repeat my coffee order, send invoice, pay rent, etc. Ideally with local models?

juan ferreras reposted

Ep. 3 will be on May 14! We will have Medhat Dawoud walking us through the process of building fast websites for everyone, and Amila Welihinda explaining how to profile JavaScript in production. #webperf Details at performanceobserver.dev

performanceobserver.devPerformanceObserver: A virtual web perf meetupJoin the PerformanceObserver virtual performance meetup to get all the latest web performance news and hang out with the community.
View full thread

RSC shines if those limits are less obvious, or might change over time. Simpler to re-use, to move from one model to the other. More complexity but a LOT more tools in your kit to provide a better experience for (the long tail specially of) users, than with client-only SPAs. 3/4

On both it was easy to screw up and cross the network boundary with a mountain of data but tooling can help there. I'm excited both exist! Astro seems to be loved, and I think RSC will convince those who still don't see it eye to eye (these posts from Dan are much appreciated on that front). 4/4 🏁

IMHO Astro definitely shines for as they say “content-driven” websites, where interactivity is sprinkled in on islands naturally and you kind of know those boundaries already. Docs, marketing, ecomm, etc. It's better to always err on the side of shipping less when session length can be tiny. 2/4

juan ferreras reposted

Chrome 136+ ships a new V8 version that supports a "compile hint", which makes V8 parse and compile all functions in that file eagerly. Great for entry points – where you know all functions will very likely be used. Less so as 'one weird trick to make all your JS faster'.

When Bruno Simon drops anything 3d on the web – it's a must to give it a try! I've already purchased his Three.js Journey course (check out the reviews if you're interested – folks seems to really love it!), planning to do it later this year. Something tells me it's going to be A LOT of fun

Bruno Simon@bruno-simon.bsky.social

It's egg hunt time! 🥚🧺 And I have 3 surprises for you. A new devlog 👉 youtu.be/O8LUJicF7v4 An alpha version of my portfolio 👉 threejs-journey.com/apps/easter-... And a 30% discount code for Three.js Journey 👉 threejs-journey.com/join/easter2...

juan ferreras reposted

For those monitoring Core Web Vitals, we made a small change to the CrUX History API used by CrUX Vis last night and now return 10 months of data, rather than 6 months of data to bring it more inline with the CrUX Dashboard that we're looking to deprecate. Enjoy! cruxvis.withgoogle.com#/

cruxvis.withgoogle.comCrUX VisCrUX Vis is an experiment by the Chrome team to help you explore the Chrome User Experiment Report data with visualizations and helpful links to articles, for a particular web page or origin.

I've completely missed the fact Cloudflare Browser Rendering API now supports Playwright! I've had pretty good results using Puppeteer so far. TBC if variability is decent, etc but it's fun to script journeys (or export them from Chrome Recorder) to measure INP/CLS and still have results quickly

developers.cloudflare.comPlaywright · Browser Rendering docsLearn how to use Playwright with Cloudflare Workers for browser automation. Access Playwright API, manage sessions, and optimize browser rendering.

juan ferreras reposted

Compression Dictionary Transport allows you to DRASTICALLY reduce download sizes in Chrome. E.g. if you have app.v1.js and app.v2.js is released, a lot of the code is likely the same, so why download it all again? Want to know more? Check out this new guide: developer.mozilla.org/en-US/docs/W...

developer.mozilla.orgCompression Dictionary Transport - HTTP | MDNCompression Dictionary Transport is a way of using a shared compression dictionary to dramatically reduce the transport size of HTTP responses.

juan ferreras reposted

I'll publish it on LinkedIn later on today, but the startup I'm working at will undergo a 'reorg' aka layoffs. I'm part of it so If you are looking for a Staff / Lead Engineer with emphasis on FE and Perf hit me up (Remote or Hybrid within Stockholm / CET timezone)

juan ferreras reposted

Introducing Silk — The most advanced swipeable sheet ever engineered for the web. Native-like experience • Works on all devices • Unlocks dozens of UI patterns on the web. Available for React.

juan ferreras reposted

juan ferreras reposted

New in Chrome DevTools: Accurately emulate CPU performance of a low/mid tier phone with Automatic CPU throttling calibration! 📲 This feature calculates slow-downs for your specific device. Wanted this for years! We just shipped it.

TIL Chromium might not handle SWR navigations as you'd expect (seems tracked by issues.chromium.org/issues/40171...). If you're implementing SWR in prod, make sure to test it on multiple browsers but also on your CDNs (even the Good Ones™ to this day have non-fully-spec-compliant implementations).

If there's one thing I could proudly be on a +P99 leaderboard is typing quickly on a keyboard. Super fun website – very interesting navigation! ---- 🏆 Today’s typ.ing: 🌟 Speed: 153wpm 🎯 Accuracy: 100.00% 📝 Training Set: English, most common 100 words 🔢 Capitalization: ❌ Numbers: ❌ Punctuation: ❌

juan ferreras reposted

Reminder that this changed rolled out in Chrome 133. If you’re seeing worse LCP times and load your LCP images from another domain (and didn’t have the TAO header set) then that could be why. Read the full thread for details.

Barry Pollard@tunetheweb.com

We’re therefore intending to change this to allow the proper LCP time to be exposed (though coarsened a little to be accurate to within a few milliseconds rather than the exact time). This will mean you can get the (approximate) LCP time even without setting the TAO HTTP header! 🎉

What a beautiful surprise to get these extra fields on CrUX APIs! Absolutely fantastic work from the Chrome team, it's hard to describe how extremely useful it is to get this level of UX insight on almost any website, for free and without having to previously convince clients to setup monitoring

juan ferreras@juanf.is

This one was a surprisingly nice chart I hadn't planned – adding LCP+FCP+TTFB from CrUX on a single area chart. Similar to LCP subparts (with less insights of course) but from any website in CrUX instead of requiring real user monitoring

juan ferreras reposted

Replying to @tunetheweb.com

There are a number of announcements this month: First up, we have added LCP image subparts to the CrUX API: - Time to First Byte (TTFB) - Resource load delay - Resource load duration - Element render delay These are our recommended way of optimizing LCP: web.dev/articles/opt... 4/10

Not sure if this is a good idea (or a terrible one!) but Canvas and WebRTC APIs are pretty great! TBC on how accurate (this is PSI's Lighthouse, should also be compat with CF Workers Puppeteer and probably more accurate but screencasts have a weird gamma offset unfortunately).

juan ferreras@juanf.is

This one was a surprisingly nice chart I hadn't planned – adding LCP+FCP+TTFB from CrUX on a single area chart. Similar to LCP subparts (with less insights of course) but from any website in CrUX instead of requiring real user monitoring

The web can be incredible sometimes, specially when talented folks do great things with care

Anslo@anslo.dev

Introducing Slow Roads 2.0 - procedurally-generated, scenic roads for endless driving zen. Built with @threejs.org to run in your browser - no installs, no ads, just roads. Play free at slowroads.io #threejs #webgame #javascript #procedural #webgl