Putting devs before users: how frameworks destroyed web performance

In the last few years, it seems web performance has fallen by the wayside. Indeed, with many sites now using frameworks like React and Vue, SPAs becoming commonplace and requests going into the hundreds, the average webpage is now bigger than ever, with 2–3MB pages being more common than ever.

It’s a plague on the internet, and it’s got many people blaming frameworks as a whole. After all, many of these sites are built with JavaScript frameworks even when it’s not really necessary (like with many news sites). And a fair few likely use things like Bootstrap for the CSS too.

But I don’t think that’s the real issue here. A well built, performant website can be created with any framework or type of technology in existence. It may be harder with some than others, but it can be done.

The issue is the developer and designer mindset in many companies.

With said mindset being that web development and design should be ‘fun’. I fully believe a lot of developers and software enginers put their job satisfaction above their users or customers.

And that’s what led to all these questionable practices, as well as a lack of interest in what matters. Heavy build systems like Webpack and dozens upon dozens of pre made components from NPM are brought in to ‘save developer time/effort’, without much thought to the extra kilobytes (or even megabytes) of JavaScript this adds to the finished product. Third party components are brought in with heavy amounts of CSS and JavaScript, simply to save on having to actually build said components from scratch, page size be damned.

Plus in a lot of cases, the very language choice itself has been chosen because it’s ‘cool’ rather than because it’s the right one for the job. I mean, look at all those news sites rebuilt as SPAs with heavy duty JavaScript frameworks. They don’t need to be made like this, and they most probably shouldn’t be… but they are because the development team would rather pretend they’re working at Google or Facebook than the Colchester Enquirer.

Same goes with the design too. Many designers are bored stiff working on generic CRUD apps for some dull business making widgets for Walmart, and would rather work on the newest shiniest startup raising millions in Silicon Valley.

So like with the developers, they put flashiness above practicality. Effects are added everywhere for no reason, the page structure is all over the place because it looks ‘unique’, and everything seems to have been designed to look nice in their Dribbble or Behance profile, usability be damned.

Fortunately most look more practical than the ‘future retro’ series Boris Muller’s class put together. The above was what they reimagined Hacker News as

It’s like you’ve got an army of McDonalds line order cooks who fancy themselves as Michelin star chefs, and are trying their damnest to turn their workplace into the same. Oh sure, those customers may really want a Big Mac and chips, but who cares about them. We’d rather cook what we want to cook, in order to try and impress our peers on the internet.

But it’s not just developers who are like this. Everyone in the chain of command is this way. The managers, the CEOs, the investors, the marketing team, sales, etc. Everyone wants to look good in front of their peers or the higher ups, and everything ends over engineered and unwieldy as a result.

That’s what needs to change. The customer or user needs to be the number 1 priority, not the people working on the product or business.

Or, as perfectly said by Sean Malstrom in regards to game designers:

The purpose of video games is to make the player feel awesome. It is not for the designer to feel awesome.

In other words, the product should make life better for the user, not act as a vessel for its creators to show off. The goal of a good product isn’t to let its creators feel good about their ‘creativity’ or admire their ‘technical brilliance’, but to solve a problem the users are having in an easy to use, efficient, performant way.

And that’s a lesson Sean mentions a lot in his posts about game design, because the exact same issues are often present there too. You’ve got designers trying to be movie directors and sacrificing the actual gameplay mechanics for visual flair and cinematography. You’ve got them putting in gimmicky mechanics that don’t fit the game because they were ‘fun’ to work on, or over complicating simple actions because this new control scheme is ‘clever’. And additionally, you’ve got entire genres being ignored because they’re ‘not fun’ to work on, with the example given often being Nintendo and 2D platformers.

The entire floatie section in the Boilerworks plus Clem battle are fantastic examples of a design team going for ‘interesting ideas’ over fun gameplay

It’s also seen quite often in architecture too. Where buildings often seem designed less for the people who actually live/work there, and more for the architects to show off to their peers/put in their portfolios.

What’s more, to some degree users understand this. You can see it really well by how many ‘crappy’ products and services end up beating out fancier rivals.

For instance, look at Craig’s List. It’s ugly, it’s boring and the tech probably isn’t much to write home about.

But it works. It works really well for its users, and so they stick by it even as VCs pour millions into rivals with shinier looking websites and apps and all manner of technical tricks going on behind the scenes.

Same goes for Hacker News. For the old version of Reddit.

Or for many popular games in general. Stuff like Minecraft or Wii Sports or Tetris. None of those are particularly fancy in any sense of the word, but they all sold millions of copies none the less, and did so by offering an enjoyable gameplay loop and getting the hell out of the player’s way after setting it up.

So creatives, stop being so focused on your CV or personal convenience. Stop putting your own interests above those of your users, and wasting hundreds of kilobytes on stuff no one cares about. You are likely not Facebook or Google, and you shouldn’t be designing or building things as if you are.

Instead, do what’s needed for the job, and provide an experience that the user will enjoy using, with as few resources as are needed.

Do that, and your users and customers will thank you.