Sign in

Ben Schwarz

@benschwarz.bsky.social
3.5K followers 205 following 1.4K posts

Founder & Product developer @calibreapp.com. Into sustainability, online privacy, cycling, photography, making music, hiking, native country and creative pursuits 🌞

PostsRepliesMedia
Ben Schwarz @benschwarz.bsky.social · 17h
Cloudflare bot detection is a mixture of bot traffic, likely largely website spidering, which is a huge part of Yandex’s core business — NOT social media comments from “bots”. I’d be happier knowing if AfDs online presence has diminished to zero, but is there actual evidence of that?
150
Ben Schwarz @benschwarz.bsky.social · 19h
AWS Bahrain got bombed a few months ago and ain't coming back online 🙇‍♂️
100
Ben Schwarz @benschwarz.bsky.social · 11/10/2026
I’d have an easier time with this if they were saying fuck cloudflare x years ago when they knowingly hosted hateful content, and used “we’re like a utility company” as their defence.
120
Ben Schwarz @benschwarz.bsky.social · 10/10/2026
This seems unfair given deno fired almost their entire team several months ago
000
Ben Schwarz @benschwarz.bsky.social · 09/10/2026
Ooohh this is interesting — a style sheet language for 3D scenes. Going to take this for a spin 🔜
130
Ben Schwarz @benschwarz.bsky.social · 08/10/2026
A few years ago a friend thought his computer was locked, but really the screen was dimmed — he typed his password into the group chat, twice. We all immediately knew what it was 😂
050
Ben Schwarz @benschwarz.bsky.social · 08/10/2026
If we can align the legend text and labels on the left I will sleep slightly better.
080
Ben Schwarz @benschwarz.bsky.social · 06/10/2026
Wait, I know her!! 💅
010
Ben Schwarz @benschwarz.bsky.social · 06/10/2026
booking.com cut their SSR costs by 38%. What stood out to me? they’re effectively shipping their org chart. One app per page (home, search, property). Teams own the components (header, footer, reviews), loaded at runtime. Conway’s law, shipped to production.
medium.com
Node.js at scale, rebalanced: how we cut cost by 38%
By optimizing our biggest Node.js service, we cut our compute costs by 38%
1151
Ben Schwarz @benschwarz.bsky.social · 06/10/2026
Pretty tricky situation imo. Not sure it's worth testing because ultimately you can't alter the browser behaviour, and lazy loaded off-screen images is better than not. Just something to be aware of going forward!
000
Ben Schwarz @benschwarz.bsky.social · 05/10/2026
Weirdly many developers seem to have a loose grasp of what separation of concerns means, beyond a sound bite.
140
Ben Schwarz @benschwarz.bsky.social · 05/10/2026
Sounds like you're on to a winner. Make good easy! 💅
010
Ben Schwarz @benschwarz.bsky.social · 05/10/2026
I mean, they can be: ComponentName /ComponentName.js /ComponentName.css Either way, code organisation should never negatively impact UX. As long as your approach doesn’t, then all good in my book.
110
Ben Schwarz @benschwarz.bsky.social · 05/10/2026
GitHub just finished ripping styled-components out of github.com. Result: 55% less time to server-render a page, 25% faster component init. CSS-in-JS makes you pay for styles twice: collecting them on the server, running JS on the client. Static CSS is *always* more efficient. Ship CSS.
2418
Ben Schwarz @benschwarz.bsky.social · 04/10/2026
Sounds like you’ve gotta go to the theatre more often!
121
Ben Schwarz @benschwarz.bsky.social · 03/10/2026
Maybe we should stop awarding those goons from Accenture or Deloitte tenders for projects, or, like, actually dip into the highly functioning tech sector Australia has. The issue lies in our ineffective government, which lacks basic competence regarding technology.
050
Ben Schwarz @benschwarz.bsky.social · 03/10/2026
I was really hoping to talk to you about this during shoptalkshow the other day, next time gadget!
010
Ben Schwarz @benschwarz.bsky.social · 02/10/2026
Are you sure Shopify won’t be the end of Tailwind? They have a track record
000
Ben Schwarz @benschwarz.bsky.social · 01/10/2026
Here’s what it looks like when you disable ad tracking 🫣
la Repubblica website with ad blocker turned off:  ads at the top, ads at the side, ads overlaid, nothing but ads before content.
040
Ben Schwarz @benschwarz.bsky.social · 01/10/2026
Google started publishing ad metrics for websites, so naturally I went looking for the worst offender 🤓 The “award” goes to Italian news La Repubblica — where ads cover 96% (!!) of desktop viewports. (Experimental CrUX data.) Compare it yourself: calibreapp.com/tools/compar...
spiegel.de, hindustantimes.com, bild.de, lavanguardia.com and repubblica.it compared by amount of screen real estate devoted to ads. repubblica's coverage is 96%
180
Ben Schwarz @benschwarz.bsky.social · 30/09/2026
To be honest I should probably audit my usage of tooltips, but: - For info buttons (hiding and disclosing definitions). E.g what a webperf metric measures - Title attributes on links, buttons and other interactive elements That’s about it. I try to always use title when I can.
010
Reposted by Ben Schwarz
Chris Coyier @chriscoyier.net · 30/09/2026
Come for the webperf, stay for Ben's smooth intelligent voice
1142
Ben Schwarz @benschwarz.bsky.social · 30/09/2026
@shoptalkshow.com forgive me for not mentioning 🙄 Thanks for having me @chriscoyier.net @davatron5000.bsky.social, great to talk shop with y’all
030
Ben Schwarz @benschwarz.bsky.social · 30/09/2026
13 years after my first ShopTalk Show (episode 68!), Chris and Dave had me back to talk web performance: why airline websites are so slow, RUM vs synthetic testing, and whether fixing speed actually makes money ✈️🐢 shoptalkshow.com/734/
shoptalkshow.com
734: Web Performance with Ben Schwarz
Ben Schwarz stops by to discuss the state of web performance, using his research on airline websites as a case study.
1130
Ben Schwarz @benschwarz.bsky.social · 30/09/2026
New as of Chrome 150: loading="lazy" on <video> and <audio>. A lazy video holds back its file, poster and autoplay until it's close. Firefox and Safari don't support it yet, so media there still loads straight away.
calibreapp.com
Lazy Loading Images and Media: How Far Ahead Browsers Fetch
How far ahead Chrome, Firefox and Safari fetch lazy media, why a lazy hero image slows your page, and where to use lazy, eager and fetchpriority.
021
Ben Schwarz @benschwarz.bsky.social · 29/09/2026
I'm more of a Nia kind of guy. But special shout to ’The Truth‘ with Gab on the Handsome boy record. One of my favorite verses of all time
010
Ben Schwarz @benschwarz.bsky.social · 29/09/2026
How far ahead browsers fetch lazy images: • Chrome: 1,250px on 4G, 2,500px on 3G, 6,000px (!!) on 2G • Firefox: 600px, on any connection • Safari: one viewport. Lazy iframes: 0px, they wait until on screen
calibreapp.com
Lazy Loading Images and Media: How Far Ahead Browsers Fetch
How far ahead Chrome, Firefox and Safari fetch lazy media, why a lazy hero image slows your page, and where to use lazy, eager and fetchpriority.
2118
Ben Schwarz @benschwarz.bsky.social · 29/09/2026
I’d settle for user-agent styles that didn’t look like they were from 1997! But yea, would be great to style tooltips/titles so they look integrated 🙇‍♂️
130
Ben Schwarz @benschwarz.bsky.social · 29/09/2026
I haven’t authored an iframe in over a decade but I remember this being a really annoying detail. Responsive frames is great — you can also lazy load them, which is a bonus for performance
010
Ben Schwarz @benschwarz.bsky.social · 29/09/2026
I rewrote our lazy loading guide with new usage data. Most pages still don’t use it. Chrome page loads using loading="lazy" (Sept 2026): • <img>: 26% • <iframe>: 1.5% • <video>: 0.06% • <audio>: 0.000039%
calibreapp.com
Lazy Loading Images and Media: How Far Ahead Browsers Fetch
How far ahead Chrome, Firefox and Safari fetch lazy media, why a lazy hero image slows your page, and where to use lazy, eager and fetchpriority.
060
Ben Schwarz @benschwarz.bsky.social · 28/09/2026
I don't like to "go-in" on web frameworks because it's unproductive. BUT Unfortunately, this preload situation is just yet another example of React’s failed abstractions that make pages slower — unless you fix it. It's busy work created by the framework. React-apps are full of these concessions.
011
Ben Schwarz @benschwarz.bsky.social · 28/09/2026
⚠️ PSA for React 19 SSR apps: React automatically preloads ALL server rendered images. Without hints, early bandwidth is needlessly wasted. Fix it: * LCP image → fetchPriority="high" * Never lazy load the LCP image * Below-the-fold images → loading="lazy" (this also stops React preloading them)
Screenshot of react.dev docs, with a highlight over the text "React automatically generates a perload hint for an <img> by default."
132
Ben Schwarz @benschwarz.bsky.social · 25/09/2026
Hainan Airlines also deserves a mention: the only Skytrax top-10 carrier whose site ranks in the performance top 10. Shout-outs and what they're doing right: calibreapp.com/blog/airline...
calibreapp.com
It’s official: Airline websites are slow, but they don’t have to be | Calibre
We analysed 111 airline websites and it confirmed what travellers have been feeling for years
000
Ben Schwarz @benschwarz.bsky.social · 25/09/2026
Credit where it's due. Frontier tops the airline benchmark, and has trimmed LCP from 3.29s to 2.60s over 9 months. Small, steady wins. Ryanair has been quietly shipping perf improvements since I wrote about their redesign in 2015. A decade of discipline.
Bar chart from Calibre's Core Web Vitals test showing Frontier Airlines' mobile Largest Contentful Paint over nine months. It trends steadily downward from 3.29 seconds to 2.60 seconds, crossing below the 2.5-second "good" threshold marker near the end of the period.
172
Ben Schwarz @benschwarz.bsky.social · 24/09/2026
Australian government vulnerability disclosure car crash. We should 100% adopt GDPR, and other very common security practices Instead, they’ve left our asses swinging in the breeze, as usual 🤦‍♂️
020
Ben Schwarz @benschwarz.bsky.social · 24/09/2026
Given they’ve had several weeks to respond, it’s unacceptable that public info about the attack is so thin and vague. So many questions: What was exposed? Was it kept? Stored? Aggregated or shared with third parties? Why didn’t we hear about it for three weeks? What have they done since? 😾
060
Ben Schwarz @benschwarz.bsky.social · 23/09/2026
The sites that pass (Frontier, Ryanair) aren't doing anything magic. They measure, find the worst page or interaction, fix it, repeat. Full breakdown: calibreapp.com/blog/airline...
calibreapp.com
It’s official: Airline websites are slow, but they don’t have to be | Calibre
We analysed 111 airline websites and it confirmed what travellers have been feeling for years
041
Ben Schwarz @benschwarz.bsky.social · 23/09/2026
3. Custom UI from another era. Hand-rolled dropdowns, modals and expanders doing what <details>, <dialog> and popover now do natively, with smooth animation for free. 4. Not enough caching. HTML should be cached or served in under 500ms. One click shouldn't fire dozens of booking engine requests.
120
Ben Schwarz @benschwarz.bsky.social · 23/09/2026
1. Blocking interactions. Every click (date, seat, fare) waits on a server round-trip before the page paints. Those requests should be async. They aren’t. 2. Skeleton loaders that shift the layout. Click → lockup → skeleton → jump → content. That’s INP, CLS and LCP failing in sequence.
Horizontal bar chart of the six airline websites with the slowest mobile Interaction to Next Paint, against two vertical threshold lines at 200 milliseconds (good) and 500 milliseconds (poor). All six bars extend well past the poor threshold. Air Arabia 1.85 seconds, TAP Air Portugal 1.4 seconds, Cathay Pacific 1.4 seconds, Wizz Air 1.23 seconds, RwandAir 1.2 seconds, Air India Express 1.18 seconds.
110
Ben Schwarz @benschwarz.bsky.social · 23/09/2026
Why are airline websites so slow? After looking at 111 of them, it comes down to four things. A thread 🧵
192
Ben Schwarz @benschwarz.bsky.social · 23/09/2026
Caught up with my favorite web duo to talk performance and user-experience. Episode dropping soon 🤠 @shoptalkshow.com
Three older gentlemen talking about making websites faster
0110
Reposted by Ben Schwarz
Matt Hodges @matthodges.bsky.social · 19/09/2026
Very quick and dirty Jev test for hiring bias. One resume for a Wall Street job; asked whether the applicant should get a first-round interview. 76 evaluations, changing only the first name. 19 of each: White-associated men/women, Black-associated men/women. console.typesafe.ai/playground?s...
19474116
Ben Schwarz @benschwarz.bsky.social · 22/09/2026
I just remember his tummy hurt 😂
010
Ben Schwarz @benschwarz.bsky.social · 22/09/2026
Great to reduce the TTL for new web platform features. I'd love to see other browsers roll to a more regular cadence too.
010
Ben Schwarz @benschwarz.bsky.social · 21/09/2026
Cathay Pacific: HK$72.5B in passenger revenue, and the slowest booking site of any major airline. Shopify’s data says a 1 second LCP improvement is worth ~30% in conversions. Airlines aren’t shops, but even a fraction of that is a very large number. calibreapp.com/blog/airline-websites-are-slow
Table of the ten Skytrax top-rated airlines for 2025 with yearly passenger numbers and mobile Core Web Vitals. Columns: airline, yearly passengers, UX rating out of 100, Largest Contentful Paint, Cumulative Layout Shift, Interaction to Next Paint. Rows in order: Qatar Airways, 41 million passengers, rating 50, 3.2 seconds, 0.15, 525 milliseconds. Singapore Airlines, 27 million, 64, 3.8 seconds, 0.00, 375 milliseconds. Cathay Pacific, 28 million, 17, 10.6 seconds, 0.45, 1.4 seconds. Emirates, 53 million, 65, 2.8 seconds, 0.00, 525 milliseconds. ANA, 54 million, 69, 2.2 seconds, 0.15, 300 milliseconds. Turkish Airlines, 92 million, 50, 4.4 seconds, 0.10, 425 milliseconds. Korean Air, 25 million, 49, 5.1 seconds, 0.40, 375 milliseconds. Air France, 42 million, 43, 4.4 seconds, 0.60, 950 milliseconds. Japan Airlines, 46 million, 30, 4.7 seconds, 0.15, 625 milliseconds. Hainan Airlines, 70 million, 79, 3.6 seconds, 0.00, 175 milliseconds.
010
Ben Schwarz @benschwarz.bsky.social · 20/09/2026
Safe spaces stay safe by removing those who cause harm, even if they “only” weaponise psychological safety in bad faith. You don't have to be polite about it. Don’t be nice.
0183
Ben Schwarz @benschwarz.bsky.social · 18/09/2026
Everyone is rightfully happy to call out Ed Sheeran for bowing to pressure, but no one seems to be acknowledging that one of the world’s best known music artists felt compelled to bend over for fascists, and showed that he too can be controlled. That's where we're at right now.
140
Ben Schwarz @benschwarz.bsky.social · 18/09/2026
I think you're spot on: they've got a market, and there's also a very non-trivial amount of effort/money/time to change anything for those environments. I don't think conversions are same as general e-commerce, BUT, what if there's a cool billion dollars per year available? Seems worth a sprint! 🤠
001
Ben Schwarz @benschwarz.bsky.social · 18/09/2026
going to bathe, lunch, going to cycle, going to sun/beer/hang
000
Ben Schwarz @benschwarz.bsky.social · 17/09/2026
Amadeus, Sabre, in-house and TravelSky all have fast and slow airlines. The full vendor breakdown, with TTFB per site: calibreapp.com/blog/airline...
calibreapp.com
It’s official: Airline websites are slow, but they don’t have to be | Calibre
We analysed 111 airline websites and it confirmed what travellers have been feeling for years
010