Infrequently Noted

Alex Russell on browsers, standards, and the process of progress.

Reckoning

Since at least 2016 I have implored the frontend community to step back from JavaScript excess, acknowledge mobile-first reality, and prioritise users at the margin.

Instead, frontend became a responsibility-free zone, externalising costs through 'full-stack' fairy tales and used-car sales tactics. This has culminated in heartbreaking hurdles to access crucial public services due to JavaScript.

Modern websites don't have to feel broken. Better is possible. This series walks through today's networks and devices, stares into abyss of developer practices, and closes with advice for managers and engineers who want to avoid the same mistakes.

Reckoning: Part 4 — The Way Out

JavaScript overindulgence remains an affirmative choice, no matter how hard industry 'thought leaders' gaslight us. Better is possible, but we must want it enough to put users ahead of our own interests.

Reckoning: Part 3 — Caprock

I have worked with dozens of teams surprised to have found themselves in the JavaScript ditch. They all feel ashamed because they've been led to believe they're the first; that the technology is working fine for other folks. It isn't.

Reckoning: Part 2 — Object Lesson

SNAP benefits sites for more than 20% of Americans are unusably slow. All of them would be significantly faster if states abandoned client-side-rendering, and along with it, the legacy JavaScript frameworks (React, Angular, etc.) built to enable the SPA model.

Reckoning: Part 1 — The Landscape

It would be tragic if public sector services adopted the JavaScript-heavy stacks that frontend influencers have popularised. Right?

Browser Choice Must Matter

A multi-part examination of the ways that browser choice has been undermined on today's mobile OSes.

The Web Is An Antitrust Wedge

Armed with new powers to rein in the worst excesses of mobile's duopolists, regulators around the world are struggling to find their footing. The UK's CMA is only the latest to pose capitulation as success. Far from unlocking growth and dynamism, regulatory timidity is reducing enforcers' future room for manoeuvre and hampering home-grown competitors to Big Tech. Unleashing the web would fix a great deal of what's broken, but regulators are falling down on the job. It's time we spoke plainly about it.

Naked Power

Apple and Google's app stores stand for nothing and will stand up to no-one. Good riddance.

Apple's Antitrust Playbook

Apple wants to launder the consequences of its own anticompetitive, anti-user choices through a credulous tech press. The goal is to frame regulators for Apple's own deeds, and it's rotten to the core.

Comforting Myths

I've been hearing confusing reports of Apple's openness to collaboration on challenging APIs so often that either my priors are invalid, or something else is at work. To find out, I needed data.

Apple's Assault on Standards

By subverting the voluntary nature of open standards, Apple has defanged them as tools that users can employ against the totalising power of native apps in their digital lives. This high-modernist approach is antithetical to the foundational commitments of internet standards bodies and, over time, erode them.

Apple vs. Facebook is Kayfabe

Apple vs. Facebook is, and always was, kayfabe. In reality, Apple is Facebook's chauffeur; holding Zuck's coat while Facebook wantonly surveils iPhones owners. How can we be sure? Because Apple continues to allow wide-scale abuse of In-App Browsers.

Home Screen Advantage

Cupertino's attempt to scuttle Progressive Web Apps under cover of chaos is exactly what it appears to be: a shocking attempt to keep the web from ever emerging as a true threat to the App Store and blame regulators for Apple's own malicious choices. By hook or by crook, Apple's going to maintain its home screen advantage.

Why Are Tech Reporters Sleeping On The Biggest App Store Story?

Under regulatory pressure, mobile OSes are opening up and adding features that will allow PWAs to disrupt app stores ... Yet with shockingly few exceptions, coverage accepts that the solution to crummy, extractive native app stores will be other native app stores. ... The press fails to mention the web as a sustitute for native apps, and fail to inform readers of its disruptive potential. Why?

Safari 16.4 Is An Admission

What's going on with WebKit is not 'normal'. At no time since 2007 has the codebase gotten this much love this quickly; but why? Time for a deep dive.

Apple Is Not Defending Browser Engine Choice

Some folks claim that Apple's mandated inadequacy for browsers and their engines is somehow beneficial to the cause of ensuring a diverse pool of web engines. Nothing could be farther from the truth, but to understand why, we need to understand how browsers are funded. With that understanding, we can see that not only has Apple has starved its own browser team of resources, but has done grevious damage to Mozilla along the way.

Minimum Standards for iOS Browser Competition

Apple has demonstrated shameless contempt in ignoring the spirit of pro-competition regulation. The web could serve as a counterbalance to this sort of gameplaying, but only if broad, effective, and widely adopted rules are put in place.

A Week to Define the Web for Decades

If you live or do business in the UK or the US, what you do in the next seven days could define the web for decades to come. By filing public comments with UK regulators and US legislators this week you can change the course of mobile computing more than at any other time in the past decade. Read on for why this moment matters and how to seize the day.

iOS Engine Choice In Depth

A deep dive into the arguments offered by Apple and others to defend a lack of browser engine choice on iOS. Instead of raising the security floor, Apple has set a cap whilst breeding a monoculture that ensures all iOS browsers are vulnerable to identical attacks, no matter whose icon is on the home screen.

Hobson's Browser

Mobile OSes and their most successful apps have drained browser choice of meaning for more than a decade. This has lead to confusion for users and loss of control over data. Web developers, meanwhile, face higher costs and reduced ability to escape walled gardens. It's time for the charade to end.

Progress Delayed Is Progress Denied

Apple's iOS browser (Safari) and engine (WebKit) are uniquely under-powered. Consistent delays in the delivery of important features ensure the web can never be a credible alternative to its proprietary tools and App Store. This is a bold assertion, and proving it requires examining the record from multiple directions.

The Performance Inequality Gap

As long as we continue to build only for wealthy users, the dream of a web for everyone will continue to recede before our eyes. Creating a better web starts with respecting hardware and network limits. This is a deep dive into those constraints, their evolution, and what they mean for developers and tool vendors.

TL;DR?

What we're doing now isn't working. Not by a long shot.

The Performance Inequality Gap, 2026

Embedded in this year's network and device estimates is hopeful news about the trajectory of devices and networks. It has never been easier to deliver pages quickly, but we are not collectively hitting the mark. Indeed, the latest CrUX data shows not even half of origins have passing Core Web Vitals scores for mobile users. Browsers will need to provide stronger incentives. This will be unpopular, but it is clearly necessary.

The Performance Inequality Gap, 2024

How much HTML, CSS, and JavaScript can we afford? More than in years past, but much less than frontend developers are burdening users with.

The Performance Inequality Gap, 2023

To serve users at the global P75 of devices and networks, we can now afford ~150KiB of HTML/CSS/fonts and ~300-350KiB of JavaScript (gzipped). This is a slight upgrade on last year's budgets, thanks to device and network improvements. Meanwhile, web developers continue to send more script than is reasonable for 80+% of the world's users, widening the gap between the haves and the have-nots. This is an ethical crisis for frontend. Meanwhile, the most popular tools and frameworks remain in stubborn denial, but reality is not moved by ignoring it: when digital is the default, slow is exclusionary.

A Management Maturity Model for Performance

Despite advances in browser tooling, automated evaluation, lab tools, guidance, and runtimes, modern teams struggle to deliver even decent performance with today's popular frameworks. This is not a technical problem per se. It's a management issue, and one that teams can conquer with the right frame of mind and support.

Towards a Unified Theory of Web Performance

Is there a generic, unform way to think about web performance? What is web performance? What's it for? A humble attempt to answer those very deep questions. [republished]

The Mobile Performance Inequality Gap, 2021

A lot has changed since 2017 we I last estimated a global baseline for total page resource limits of 120-170KiB. Thanks to progress in networks and browsers (but not devices), the new baseline is much more generous: ~100KiB of HTML/CSS/fonts and ~300-350KiB of JS. But the devil's in the footnotes, and modern web development practices push the median page well above these guidelines.

The "Developer Experience" Bait-and-Switch

We cannot continue to use as much JavaScript as is now normal and expect the web to flourish. At the same time, most developers experience no constraint on their use of JS...until it's too late. Lightweight, effective tools are here, but we're stuck in a rhetorical rut. We need to reset our conversation about 'developer experience' to factor in the asymmetric cost of JS.

Can You Afford It?: Real-world Web Performance Budgets

Performance budgets are an essential but under-appreciated part of product success and team health. Most partners we work with are not aware of the real-world operating environment and make inappropriate technology choices as a result. We set a time budget of less than 5 seconds first-load Time-to-Interactive and less than two seconds for subsequent loads. We further constrain ourselves to a baseline device and network configuration to measure progress. 2017's global baseline is a ~$200 Android device on a 400Kbps link with a 400ms round-trip-time ('RTT'). This translates to ~130-170KB of critical-path resources, depending on composition; the more JS you include, the smaller the bundle must be.

Effective Standards Work

Many folks imagine browsers will adopt features because they have become standards. This is backwards.

This series explores how we can make forward progress once disabused of working-group induced hallucinations of immaculate conception by groupthink.

Web Standards and the Fall of the House of Iamus

Working Groups do not invent the future, nor do they hand down revealed truths by divining entrails like prophets of the House of Iamus. In practice, they are diligent, thoughtful historians of recent design expeditions. Anyone who tries to convince you otherwise, or invites you to try your hand at invention within a chartered Working Group, does not understand what those groups are designed to do.

How Do Committees Fail To Invent?

Conway's Law is generally discussed in the context of organisations trying to solve a problem. But what if there are defectors? And what if they could prevent all progress without paying a price? This problem is rarely analysed for the simple reason that such an organisation would be deranged. But what if it happened regularly, and even threatened the basis of web standards?

Effective Standards Work, Part 2: Threading the Needle

It's attractive to think that design can (or should) happen within a formal Working Group. A well-functioning WG should include both developers and implementers, after all. Those groups often have face-to-face meetings, and the path toward standardisation is shortest in those venues! But it doesn't work; not often enough to be useful, anyway.