A (kind of) farewell to the web
Front-end engineering is at a crossroads, and right now I’m not optimistic about it.
Which is ironic because I think there’s a lot to be optimistic about. I think there’s so much potential in the platform. A potential that has been growing for years, which is really starting to come to fruition.
The power and capability of CSS is extraordinary. We’ve got sophisticated ways of managing CSS architecture, like cascade layers, native CSS nesting, and powerful selectors like :where and :is. We have new modes of design to explore with container queries and container query units. We have increasingly sophisticated animation and layout capabilities. Web components give us a native way of creating componentized frontends.
View Transitions, now widely supported, coupled with speculation rules, allow us to rethink the necessity for the single-page application architecture which we have come to rely so heavily on for the last 10-15 years, but which comes with significant costs.
We’re seeing the maturity of WebAssembly, WebGL, WebGPU and soon WebNN coming to the platform. We can use really sophisticated AI models in the browser in ways that are privacy-preserving, lower latency, and make the browser a first-class platform for delivering really capable client-side AI applications.
We’ve been covering these technologies for years at our conferences. Just follow any of those links above to Conffab. You’ll find talks about them, sometimes going back to 2020 or before.
So why, with all this happening, am I not optimistic right now?
Well, there’s a technological reason for that, and an associated cultural reason.
The framework monoculture
Technologically, for well-funded web application development, whether in the Enerprise, Government, or startup land, we’re increasingly all in around frameworks, and particularly React and its entire ecosystem.
Why is that particularly problematic? Because this is a layer of abstraction that obfuscates and keeps us at arm’s length from the increasingly capable and sophisticated underlying web platform that we should be leveraging to build new and extraordinary things.
Den Odell put it very succinctly in a recent piece Escape Velocity: Break Free from Framework Gravity:
React is no longer just a library. It’s a full ecosystem that defines how frontend developers are allowed to think.
Let’s take the simplest of examples here: View Transitions, which you can implement with a handful of lines of CSS in a way that’s progressively enhancing, and adds genuine value to your websites and applications. Literally years after you could start working with them in the browser. these still have only experimental support in React 19.
But as Rob Eisenberg, who knows more about this sort of thing as a practitioner and a standards developer than just about anyone, observed recently:
Framework monoculture is a psychology problem as much as a tech problem. When one approach becomes “how things are done,” we unconsciously defend it even when standards would give us a healthier, more interoperable ecosystem.
The assembly line
That’s the second, and perhaps deeper challenge here. It’s not a purely technological one, it’s a psychological one, and more deeply, a cultural, and indeed economic one.
The work of developing for the front-end has been commoditized. What do I mean by that? We’ve arrived at an industrialised process, one that’s like an assembly line for applications. Frameworks like React have become the machinery of that assembly line. They enable us to build efficiently, to build at scale, to build predictably. But they also constrain what we build. We’re solving the same problems in the same ways, building the same kinds of applications with the same patterns. Another Uber for X, another Netflix for Y.
But what aren’t we building? What new kinds of experiences, what new kinds of applications, what new kinds of interaction could we create if we were deeply exploring and engaging with the capabilities of the platform? I don’t know, because we’re not building them. We’re building what the frameworks enable us to build, what the assembly line can produce efficiently.
This isn’t some sort of romantic yearning for an imagined past–it’s not about looking back; it’s about looking forward. It’s about acknowledging dispassionately the local maximum we’ve ended up on, and thinking about how much more we could do.
I’m not asking for artisanal, hand-crafted individual pixels and bytes, hand tuned angle brackets. I’m asking us to consider the incredible and continually evolving capabilities of the web platform—even if it’s somewhat hamstrung on mobile because of Apple and their approach to browsers on iOS.
Collectively, as an industry and as a profession, consciously or not, we’ve chosen this maxima that we’re stuck on. We can build what React or Vue or Next or name your framework/library enables us to do. But it reminds me of what Douglas Engelbart said of WYSIWYG, that it was more like WYSIAYG: “what you see is all you get.”
Something new
For the better part of three decades, I’ve tried through writing, developing software tools, delivering workshops–and over the last 20 years or so running conferences that focussed on encouraging front-end developers to explore and understand the capabilities of web platforms–to help people build better things and to build things better on the Web.
But honestly, I’m tired. I’ve lost faith in us escaping this local maximum.
In a couple of weeks, we’ll be holding Web Directions Summit 2025. It will likely be the last event of its kind we produce with a primary focus on front-end engineering. Three or four years ago we could attract attract healthy audiences to this kind of conference. Now it’s increasingly difficult. And if you look around the world it’s increasingly true of conferences of this kind everywhere. People aren’t showing up, perhaps because they feel it too, or they’re stuck in the framework factory, or they’ve moved on to something else. Perhaps collectively, there’s a sense that there’s really little more we need to learn.
Meanwhile—and I know I’ll lose at least a few of you here, but it is what it is—I see echoes of the dynamism, community and excitement of the earlier web in AI Engineering, and working with large language models. I acknowledge the very significant shortcomings and challenges, whether it’s energy resource use, concerns about privacy and exploitation. But these aren’t unique to AI. And I don’t think they can be addressed by simply turning our back on what clearly, for all these challenges, is a transformative technology. I believe it’s akin to the early web or even the PC revolution, and something that will, despite what Benedict Evans suggests, significantly dwarf the transformation of mobile and the cloud.
I’ve found myself, for several years now, working with these technologies, both as a software engineer and as a product developer, to create things that previously would have been economically infeasible or incredibly challenging to build. There are capabilities in our Conffab platform that I’ve been wanting to implement for years—things that were simply impossible or prohibitively expensive without this kind of technology.
I’ve found myself re-energised in many ways, tackling challenges that I knew I could do but which I found daunting, overwhelming, or just plain boring at times. This is something that many developers closer to the end of their career than the beginning, like me, have reported.
Team at our conferences, we’ve run individual sessions indeed whole events on this topic area and we get a level of engagement and investment that front-end development simply doesn’t anymore. The rooms are full. People are engaged. The energy is there.
The irony isn’t lost on me that AI, as I recently wrote, might be what finally breaks open the framework monoculture, that finally makes the assembly line so efficient that developers have the space to engage with the actual platform again, shifts the economics enough to make platform-native development viable once more.
Part of me hopes that happens. But I don’t have another decade to wait and see. I’m going where the work feels vital again, where there are still things we haven’t imagined yet.
In a few weeks, I will turn 59. I’ve spent over half my life, more than 30 years building community around the web, amplifying voices, trying to help people understand what’s possible with these technologies. I’ve learned things about where transformative technologies can go wrong, about how communities can be exploited, about how contributions get taken for granted or enclosed. I feel I’ve got one more opportunity to be part of something genuinely transformative, and I want to bring those lessons with me—to help build something better this time.
After 25 years, maybe that’s not really a farewell to the web. Maybe it’s just recognizing when something’s over and something else is beginning.
Great reading, every weekend.
We round up the best writing about the web and send it your way each Friday.