I’m happy to see that the GOV.UK Service Manual’s “Building a robust frontend using progressive enhancement” page was updated this week and made it to the top of Hacker News today. The technology industry would collectively save unimaginable quantities of time, money, energy and stress if this single page were required reading for everyone involved in building a web site. https://www.gov.uk/service-manual/technology/using-progressive-enhancement
Building a robust frontend using progressive enhancement

How to build web pages so they work in HTML first: starting with HTML, extra styles and features, using JavaScript.

GOV.UK
@tom imagine if you'd just finished a two year React bootcamp and you read this.
@emma Yeah, it genuinely does come as a mindblowing revelation / incomprehensible heresy (delete as appropriate) for many. It’s not their fault; they’ve literally never been taught that you can make a web page with HTML. The mind boggles.

@tom I think you know my opinion on this topic and I totally agree with the article in general. It's great that this topic is being brought back to the table.

On the other hand I don't totally agree with "SPA rarely brings benefits", it really depends on the product's needs. For example, a web product that requires constant reactivity makes sense as a SPA. Reactivity is still very difficult to implement without a JS framework. Does this mean that all websites require it? Of course not.

@marinaaisa What kind of reactivity, though? Single-page applications make sense for “web sites” that are basically native apps running in a browser — it’s pretty much impossible to build a web-based photo editor, say, without making it a SPA — but those situations are the rare exception. The vast majority of applications can work perfectly well within the thin-client model of an HTML UI that sends HTTP requests, but instead the industry default is to build every single site like it’s Photoshop.
@marinaaisa (I don’t think we disagree, I’m just adding more detail to my opinion 🙂)

I agree. There aren't many use cases for SPAs. So why has the frontend industry embraced the complexity of SPAs for all kinds of web products?

Throughout my career, I've seen many colleagues dismiss HTML and CSS simply because they don’t seem "complex enough."
Not only that, these languages have been increasingly feminized in recent years.

Part of this is because many women entering the tech industry come from UI/UX design backgrounds and transition to frontend dev by learning HTML & CSS. Due to misogyny, as more women enter a field, it tends to be perceived as less challenging, leading to lower salaries. By adding complexity through JavaScript, higher salaries become justifiable.

As a result, we now have many frontend developers who lack the skills to write quality, accessible HTML & CSS because these languages are undervalued.

@marinaaisa Five years ago I'd have scoffed at this take. Probably publicly. But now I just think it sounds incredibly reasonable.

@marinaaisa SPAs are easy to masquerade as "apps." Electron, WebView, React Native and similar approaches make SPAs attractive as a more efficient way to build cross-platform apps.

The trend towards "appifying" everything is largely driven by normalised heavy smart phone (ab)use.

Sent from my smart phone's Mastodon (Moshidon) app.

@tom I just wanted to stand up and cheer after every paragraph
@tom Technical guidelines based on a public service oriented mindset. Amazing 
@tom which HN thread? I don't see it
@maphew It was at #1 when I posted that, but it’s already at #34 (i.e. page 2): https://news.ycombinator.com/item?id=41686715
Building a robust frontend using progressive enhancement | Hacker News

I'm not sure who wrote this guidance but I would probably vote for them to take over much of the government.
@tom ❤️
> Do not build your service as a single-page application (SPA).
@tom This is wonderful, and I soooo wish that more modern web-site 'designers' had read this first.
@tom
Nah let's just move fast and break things then call it a cutting edge feature that doesn't work on your old device.
@Shobeck