We’re back to building sites that are not for everyone - huge, bloated sites, running fragile imperative code on the users local device. We have started to explicitly say "I think you should have this level of tech, processing power, and bandwidth before I think you're eligible to use my site".

Why? Because we want to have our fun with technology. Because we don't want to think about "edge case" user needs.

"Edge case" is, to be frank, a phrase that should be banned from all developer conversations (and then tattooed onto the forehead of anyone who continues to use it).

When we say "Edge Case" we mean "Stress Case". In their book, Design for Real Life, Eric Meyer & Sara Wachter-Boettcher point out that what we glibly call an "edge case" is normally an enormously stressful event for a user.

It often accompanies high emotions, stress, physical problems, financial problems, etc. When we discount and dismiss the "edge case", we're actually saying "I don't care about that particular user's stressful situation".

One succinct example I saw recently was an American chap trying to use an airline website while holidaying in SE Asia. His flight had been cancelled and he were trying to rebook. However, due to terrible internet connectivity in his location the site just wasn't loading - it was trying to pull down huge amounts of images and JS that were simply not happening on that connection.

#webperf in Cambodia: Yesterday I tried to book a domestic flight through various booking platforms and airline sites. Gave up after an hour and called a travel agent to book at a premium. — Holger Bartel (@foobartel) December 28, 2017

He ended up calling a travel agent via telephone and rebooking. How much of an utter failure is your website if your drive someone off it and into another company's hands?

Now imagine if that user had been able to disable Javascript and images and just have the HTML delivered. It wouldn't have been pretty, but it would have worked.

I wondered about this, and went to check out the website in question.It turns out that no, you can't. The website is fully JS-driven. If you disable JS then you just get a blank page.

On the same theme, here's another example. An Angular JS app, failing because of flaky airport wifi.

Your fancy AngularJS apps are all very nice until you're trying to check in for a flight on flaky wifi: pic.twitter.com/eTEXHE5XL2 — Matt Andrews (@mattpointblank) May 5, 2015

These are real situations, for real people. And these are only the ones that are reported, because the people in the stress situations are web professionals. How many thousands, millions, of interactions occur every day that no one reports because they're "just" regular users?