Death To The Bullshit Web

As part of my decluttering of my workflow, I’m pulling out stuff that I dumped into Bear earlier in the year and never got around to doing anything with. This was back when I was trying to go all in with Markdown editing and MarsEdit, but that didn’t work out as well as I’d hoped.


These two posts by Nick Heer dovetail together on a common theme, the ‘Bullshit Web’ as he calls it. What is the Bullshit Web? I’ll let Nick explain.

My home computer in 1998 had a 56K modem connected to our telephone line; we were allowed a maximum of thirty minutes of computer usage a day, because my parents — quite reasonably — did not want to have their telephone shut off for an evening at a time. I remember webpages loading slowly: ten to twenty seconds for a basic news article.

At the time, a few of my friends were getting cable internet. It was remarkable seeing the same pages load in just a few seconds, and I remember thinking about the kinds of the possibilities that would open up as the web kept getting faster.

And faster it got, of course. When I moved into my own apartment several years ago, I got to pick my plan and chose a massive fifty megabit per second broadband connection, which I have since upgraded.

So, with an internet connection faster than I could have thought possible in the late 1990s, what’s the score now? A story at the Hill took over nine seconds to load; at Politico, seventeen seconds; at CNN, over thirty seconds. This is the bullshit web.

I’m guessing that I’m a bit older than Nick, but my online story is broadly similar. Including the incredulity at how slow some sites are today.

Incidentally, if you’re wondering why Nick is being so vulgar about it:

A second parenthetical: when I use the word “bullshit” in this article, it isn’t in a profane sense. It is much closer to Harry Frankfurt’s definition in “On Bullshit”:

It is just this lack of connection to a concern with truth — this indifference to how things really are — that I regard as of the essence of bullshit.


Nick’s first post on the Bullshit Web dates back to 2018, but a lot of the problems he identifies are sadly still relevant today. In a nutshell, bloat and lots of it, some of it poor design, most of it both unnecessary and intrusive.

Seriously, go read it. He doesn’t hold back.

Nick ends that post with this:

There is a cumulative effect of bullshit; its depth and breadth is especially profound. In isolation, the few seconds that it takes to load some extra piece of surveillance JavaScript isn’t much. Neither is the time it takes for a user to hide an email subscription box, or pause an autoplaying video. But these actions compound on a single webpage, and then again across multiple websites, and those seemingly-small time increments become a swirling miasma of frustration and pain.

It’s key to recognize, though, that this is a choice, a responsibility, and — ultimately — a matter of respect. Let us return to Graeber’s explanation of bullshit jobs, and his observation that we often experience fifteen-hour work weeks while at the office for forty. Much of the same is true on the web: there is the capability for pages to load in a second or two, but it has instead been used to spy on users’ browsing habits, make them miserable, and inundate them on other websites and in their inbox.

As for Frankfurt’s definition — that the essence of bullshit is an indifference to the way things really are — that’s manifested in the hand-wavey treatment of the actual problems of the web in favour of dishonest pseudo-solutions like AMP.

An actual solution recognizes that this bullshit is inexcusable. It is making the web a cumulatively awful place to be. Behind closed doors, those in the advertising and marketing industry can be pretty lucid about how much they also hate surveillance scripts and how awful they find these methods, while simultaneously encouraging their use. Meanwhile, users are increasingly taking matters into their own hands — the use of ad blockers is rising across the board, many of which also block tracking scripts and other disrespectful behaviours. Users are making that choice.

They shouldn’t have to. Better choices should be made by web developers to not ship this bullshit in the first place. We wouldn’t tolerate such intrusive behaviour more generally; why are we expected to find it acceptable on the web?

An honest web is one in which the overwhelming majority of the code and assets downloaded to a user’s computer are used in a page’s visual presentation, with nearly all the remainder used to define the semantic structure and associated metadata on the page. Bullshit — in the form of CPU-sucking surveillance, unnecessarily-interruptive elements, and behaviours that nobody responsible for a website would themselves find appealing as a visitor — is unwelcome and intolerable.

Death to the bullshit web.

I don’t think I’ve ever come across words that so completely encapsulate everything which is wrong with so much of the web today, and the fact that so much of it is neither necessary nor productive.


Nick Heer did a follow-up article earlier this year in which he outlines how the problems from the first article remain unresolved, and have now been compounded by even more problems, all of them a giant middle finger raised at users.

For instance, consider the lengths that the purveyors of tracking go to undermine the user’s attempts to block some or all of the cruft on the webpages they’re visiting:

You’re probably familiar with ad blocker blockers like the one from Admiral, which calls itself a “visitor relationship management company” and has a website that contains an SVG animation which uses over 100% of one of my iMac’s CPU cores. Another popular service is Blockthrough. In its 2020 ad blocking report, it claims to be the “most popular dedicated provider of ad recovery” using an “Acceptable Ads” whitelist. Most ad blocker blockers are only a little irritating. They might show a notice guilting you into disable your ad blocker; some will prevent the article from loading until the ad blocker is disabled, though many will offer an option to proceed anyway.

But some go much further, like Instart’s AppShield. They call their product an “Ad Integrity” feature, which works by encrypting most of the media on each page and requiring the company’s scripts to decode the page. If those scripts are blocked, so, too, will be everything from pictures to links. If you visited a CBS Interactive property like CNet or Metacritic at some point over the past few years with an ad or tracking blocker turned on, you may have noticed that many of the pages fail to fully load. Instart went to great lengths in an attempt to avoid detection of AppShield, from obfuscating code to monitoring whether the developer console is open.

It’s not just anti-ad blockers that are pervasive; a user’s attempts to withdraw from all sorts of the web’s bullshit are countered at every turn. Providers of push notification services for website recognized that users could simply opt out of receiving requests to enable notifications on all websites, so they switched to JavaScript-based prompts that cannot be universally dismissed. Analytics providers are promoting tactics for “greater reliability” and creating workarounds for anti-tracking policies.

Violations of users’ intent are nothing new. Ad tech companies like Criteo and AdRoll created workarounds specifically to track Safari users without their explicit consent; Google was penalized by the FTC for ignoring Safari users’ preferences. These techniques are arrogant and unethical. If a user has set their browser preferences to make tracking difficult or impossible, that decision should be respected. Likewise, if a browser has preferences that are not favourable to tracking, it is not the prerogative of ad tech companies to ignore or work around those defaults. Just because browsers have historically been receptive by default to all sorts of privacy hostile technologies, it does not mean that those defaults are more correct.

I have encountered a lot of these techniques on various websites. You probably won’t be surprised to learn that the websites in question no longer get much traffic from me. In fact, I’m considering not even linking to those site where possible.


But that is merely the in-your-face aspect of the fightback against user’s attempts to regain control of their browsing experience. There are also the practices that work under the surface to commandeer not only the user’s browser but the full resources of their computer:

This arrogance reaches its zenith when we test the limits of whether the integrity of a webpage is dependent on the entirety of its components. For instance, is it fair for a webpage to use a visitor’s CPU power to generate cryptocurrency? A recent analysis of the million most popular websites found that around a third of websites which use WebAssembly are running cryptocurrency miners; it was the most popular use of WebAssembly among the websites surveyed. The survey found that WebAssembly was being used in any capacity by only around 1,600 popular websites.

This stuff is like malware — except malware is usually relegated to the confines of software sourced in dubious means. Cryptocurrency miners, on the other hand, can be found on name brand websites. Surely, not all instances of mining scripts were deliberate, instead being included on a webpage through an ad network or similar means.

Still, these scripts are out there. When I started writing JavaScript twenty years ago, I used it to swap button styling or create dropdown menus. Now, it is somehow possible for a news article to have buried in its ad tech package a few-kilobyte obfuscated JavaScript file that will maximize CPU cycles, destroy battery life, and spool up your computer’s fans as it generates cryptocurrency in the background. One could argue that this is just another revenue source for a website, but it isn’t that simple. It’s an insidious and hostile way of usurping power and control.

I now make it a habit to use my ad-blocker of choice, uBlock Origin, to block out not only the Usual Suspect Sites but any sites that aren’t directly linked to the display of what I’m reading. Yes, I could use NoScript to do that up-front but I’ve found that it created more problems than it solved by breaking many sites that I need to access, like banks.


The third instance of the middle finger raised at users is the web-app-as-desktop-app, using Electron or some similar technology. To be fair, not all such apps are terrible — Todoist, for instance, my task management app of choice — but most aren’t that great either. Yes, I’m looking at you, Dropbox and Adobe!

Nick Heer again:

The bullshit web is not going away — on the contrary, it has leeched into the desktop, threatening native applications, and it is this very growth that is allowing websites to become laden with toxic technical waste. One of the reasons the bullshit web is able to exist at all is because the web is increasingly a universal operating system. We build websites as applications, which encourages standards bodies to add web app features to programming languages, which means even more apps get built with web languages.

It is as much a tasteless exercise as it is progress, and we should not accept its creeping intrusion. You can still separate a great Mac app from a poor one, but there is a new basement and it is found in apps which are partially or exclusively websites. It is foolish to run several instances of Chromium, and it is profoundly disrespectful for everything from our file syncing app to a videoconferencing app to be hundreds of megabytes each when their native-built equivalents are in the tens of megabytes. It is bizarre and poetic that the bullshit web has expanded to such an extent that we now construct it using a website disguised as an app.

And of course because they’re inside a black box browser that (usually) cannot be peeked into, such web-apps are beyond the reach of ad-blockers or other content blockers, unless you take the fight to the network level.


So, it appears that the Bullshit Web will not be slain for a good while yet. More’s the pity.

Leave a Reply