Reasoning

Tim recently gave a talk at Smashing Conference in New York called One Step Ahead. Based on the slides, it looks like it was an excellent talk.

Towards the end, there’s a slide that could be the tagline for Web Day Out:

Betting on the browser is our best chance at long-term success.

Most of the talk focuses on two technologies that you can add to any website with just a couple of lines of code: view transitions and speculation rules.

I’m using both of them on The Session and I can testify to their superpowers—super-snappy navigations with smooth animations.

Honestly, that takes care of 95% of the reasons for building a single-page app (the other 5% would be around managing state, which most sites—e-commerce, publishing, whatever—don’t need to bother with). Instead build a good ol’-fashioned website with pages of HTML linked together, then apply view transitions and speculation rules.

I mean, why wouldn’t you do that?

That’s not a rhetorical question. I’m genuinely interested in the reasons why people would reject a simple declarative solution in favour of the complexity of doing everything with a big JavaScript framework.

One reason might be browser support. After all, both view transitions and speculation rules are designed to be used as progressive enhancements, regardless of how many browsers happen to support them right now. If you want to attempt to have complete control, I understand why you might reach for the single-page app model, even if it means bloating the initial payload.

But think about that mindset for a second. Rather than reward the browsers that support modern features, you would instead be punishing them. You’d be treating every browser the same. Instead of taking advantage of the amazing features that some browsers have, you’d rather act as though they’re no different to legacy browsers.

I kind of understand the thinking behind that. You assume a level playing field by treating every browser as though they’re Internet Explorer. But what a waste! You ship tons of uneccesary code to perfectly capable browsers.

That could be the tagline for React.

Have you published a response to this? :

Responses

Simon Willison

“I’m genuinely interested in the reasons why people would reject a simple declarative solution in favour of the complexity of doing everything with a big JavaScript framework.” For a lot of people I really do think it’s because they don’t know how to build web frontends without JavaScript

Simon Willison

Anyone who started their web development career in the last ten years has come up in an era where you frequently learn React as your first exposure to building websites Try surveying people on how they would implement a search feature using an HTML <form> with no JavaScript

Agustín Díaz

I’m shocked almost weekly by the amount of forms in the wild that do not submit on enter, devs just put on click handlers to buttons and call it a day just because they don’t know any better.

Nmn

The initial assumption in the quote is a bit flawed. React may be bloated and overkill in many situations, but in most cases React is the more declarative and easy solution. The complexity is the implementation and not the interface for most devs.

# Posted by Nmn on Thursday, October 23rd, 2025 at 8:05am

Nmn

Sure you maybe have to run a couple of CLI commands to create an app and build and run it, but that’s easier than learning how to do it from scratch with plain HTML files.

# Posted by Nmn on Thursday, October 23rd, 2025 at 8:05am

Nmn

Reading the whole blog post, I think the biggest thing you’re missing is that devs like the experience of using React frameworks. And the biggest thing that convinced devs to write “a bunch of interlinked HTML pages” (MPA) was Astro that brought that same experience to a static site generator.

# Posted by Nmn on Thursday, October 23rd, 2025 at 8:39am

Nmn

But even with Astro, many devs worry about building with it because they think about a future use-case where an MPA wouldn’t solve the needs. So devs will use React for aspirationally so they can feel like the codebase can scale to any need in the future.

# Posted by Nmn on Thursday, October 23rd, 2025 at 8:39am

Nmn

There are frameworks like Qwik.js that give you all the benefits of something like React while being super minimal with client-side JS but it’s still early.

# Posted by Nmn on Thursday, October 23rd, 2025 at 8:39am

1 Share

# Shared by goodreds on Tuesday, October 14th, 2025 at 9:33am

10 Likes

# Liked by goodreds on Tuesday, October 14th, 2025 at 9:33am

# Liked by stringy on Tuesday, October 14th, 2025 at 9:37am

# Liked by https://feed.city/c/dan on Tuesday, October 14th, 2025 at 9:57am

# Liked by Simon Willison on Tuesday, October 14th, 2025 at 11:03am

# Liked by Simon Cox :SEO: on Tuesday, October 14th, 2025 at 11:36am

# Liked by Adam Perfect on Tuesday, October 14th, 2025 at 11:55am

# Liked by Simon Cox :SEO: on Tuesday, October 14th, 2025 at 11:55am

# Liked by Adam Fahy on Tuesday, October 14th, 2025 at 1:23pm

# Liked by Angela "Ge" Ricci on Tuesday, October 14th, 2025 at 2:25pm

# Liked by Royce Williams on Tuesday, October 14th, 2025 at 2:58pm

Related posts

Aleth Gueguen is speaking at Web Day Out

Progressive web apps from the trenches.

content-visibility in Safari

Safari 18 supports `content-visibility: auto` …but there’s a very niche little bug in the implementation.

CSS Day 2024

A genuinely inspiring event.

Applying the four principles of accessibility

Here’s how I interpret the top-level guidance in the Web Content Accessibility Guidelines.

Responsibility

Fear of a third-party planet.

Related links

Google’s Prompt API

No web standard should require you to agree to an advertising company’s “terms of use.”

I’m genuinely disheartened and angry that the Google Chrome team have done this. Never assume good faith from them again.

This is, hands-down, the most insultingly transparent attempt at web standards bullying I’ve ever seen, including past ones from Google, which is — and I cannot stress this point enough — a company that sells advertisements. This is miles more eyeroll-worthy than AMP, where you’ll recall that a legion of tight-smiling dorks wearing Alphabet lanyards tried to assure us that the only means of survival for the web itself was to funnel all of it through Google’s servers, and only use their very good advertisements instead of those bad other ones.

Tagged with

Two Paradigms for Enhancing HTML Tags | That HTML Blog

This really gets to the heart of one of the biggest benefits of HTML web components: composability. You can nest your regular markup inside multiple custom elements; something that is can’t do.

The other exciting approach doesn’t exist yet: custom attributes. Again, they’d be a great way of using composability to turbo-charge your existing HTML in all sorts of ways.

Tagged with

Alistair Davidson / validation-enhancer · GitLab

Here’s another nice progressive web component for your forms, this time for showing error messages.

Tagged with

Never Lose Form Progress Again :: Aaron Gustafson

Here’s an excellent progressive web component from Aaron—wrap a custom element around your exising form and your good to go:

At its core, form-saver is a small web component that wraps a form, keeps an eye on it, stores values in localStorage, and restores them when the page loads again. Better yet, it clears out saved data after a successful submission so you’re not accidentally resurrecting stale information the next time someone stops by.

Tagged with

No-stack web development – David Bushell – Web Dev (UK)

A stack is also technical debt, non-transferable knowledge, accelerated obsolescence, and vendor lock-in. That means fragility and overall unnecessary complication. Popular stacks inevitably turn into cargo cults that build in spite of the web, not for it.

The web platform does not require build toolchains. Always default to, and regress to, the fundamentals of CSS, HTML, and JavaScript. Those core standards are the web stack.

Tagged with

Previously on this day

2 years ago I wrote Train coding

Generating a static copy of The Session from the comfort of European trains.

6 years ago I wrote Saving forms

A defensive enhancement to avoid losing everything you just typed into a textarea.

7 years ago I wrote Something for the weekend

Science Hack Day in San Francisco and Indie Web Camp in Brighton

12 years ago I wrote Celebrating CSS

Here’s to the next twenty years.

13 years ago I wrote Listen to dConstruct 2013

For your huffduffing pleasure.

17 years ago I wrote Optimisation

Optimise for ugly bags of mostly water, not your plastic pal that’s fun to be with.

19 years ago I wrote Semantic brevity

Make microformats work with your writing style.

25 years ago I wrote The roots of conflict

Here’s some more grist for the fundamentalist mill.

25 years ago I wrote Falwell-Robertson-Bin Laden Quiz

This is too perfect.