“Publishers aren’t evil, but they are desperate.”

A meandering and messy, but otherwise an absolutely worthwhile essay from Shubham Bose about the bloat and hostile behaviours on news sites:

I went to the New York Times to glimpse at four headlines and was greeted with 422 network requests and 49 megabytes of data. […]

Almost all modern news websites are guilty of some variation of anti-user patterns. As a reminder, the NNgroup defines interaction cost as the sum of mental and physical efforts a user must exert to reach their goal. In the physical world, hostile architecture refers to a park bench with spikes that prevent people from sleeping. In the digital world, we can call it a system carefully engineered to extract metrics at the expense of human cognitive load. Let’s also cover some popular user-hostile design choices that have gone mainstream.

Bose has a knack for naming some of these hostile patterns: The Pre-Read Ambush stands for distracting you even before you start reading, Z-Index Warfare is about multiple pop-ups competing with each other, and Viewport Suffocation is about covering so much screen with crap you can barely see the content. You can almost see those names fly by on the massive screens in the final scenes of WarGames:

By the way, I didn’t know that the ad bidding is actually happening on my computer, using my CPU, and clobbering my interface speed:

Before the user finishes reading the headline, the browser is forced to process dozens of concurrent bidding requests to exchanges like Rubicon Project […] and Amazon Ad Systems. While these requests are asynchronous over the network, their payloads are incredibly hostile to the browser’s main thread. To facilitate this, the browser must download, parse and compile megabytes of JS. As a publisher, you shouldn’t run compute cycles to calculate ad yields before rendering the actual journalism.

The essay ends on a call to action:

No individual engineer at the Times decided to make reading miserable. This architecture emerged from a thousand small incentive decisions, each locally rational yet collectively catastrophic.

They built a system that treats your attention as an extractable resource. The most radical thing you can do is refuse to be extracted. Close the tab. Use RSS. Let the bounce rate speak for itself.

Funny you should say that. There is another user-hostile pattern not mentioned in the article, as it happens on the other side; the swiping back gesture on the mobile phone is hijacked to insert a frustrating “Keep on reading” page, rather than getting you where you came from:

It’s there on many sites, from Slate to Ars Technica.

It usually shows cheap, attention-grabbing headlines (in the case of Ars Technica, the Linus Torvalds article was over a decade old!). I originally thought this was just a last-ditch attempt to keep me on the site, but when I asked on social, a reader suggested there is another reason:

It’s an SEO play. If you land on a site because of a Google search and swipe back to Google, it sends a signal to Google that it wasn’t the result you were looking for. So by forcing users to click a link on the page to read more than two paragraphs, it means the user is unable to swipe back to Google and send that negative SEO signal.

Even the bounce rate is not allowed to speak for itself.

“Podcasts are a radical gift.”

This blog is about craft, but sometimes the answer to craft is not skill or taste or awareness or effort, but it’s creating conditions for craft to flourish. Workday looks like Workday, and your banking app looks like your banking app, not because there aren’t enough designers and engineers around that know how to do it better.

This is a thoughtful post by Anil Dash about Apple’s recent announcement of introducing video podcasting, warning how the conditions set up right now will lead to enshittification, and proposing changes:

This will also start to impact content. You don’t hear podcasters saying “unalive” or censoring normal words because there is no algorithm that skews the distribution of their content. The promotional graphics for their shows are often downright boring, and don’t feature the hosts making weird faces like on YouTube thumbnails, because they haven’t been optimized to within an inch of their lives in hopes of getting 12-year-olds to click on them instead of Mr. Beast — because they’re not trying to chase algorithmic amplification.

It’s worth reading even if you don’t care much about podcasts.

“These platforms are ad-heavy to the detriment and frustration of users, yet they remain successful and growing.”

A good batch of history and observations by Nick Heer at Pixel Envy about ads coming to AI chatbots:

It is incredible how far we have come for these barely-distinguished placements to be called “visually separated”. Google’s ads, for example, used to have a coloured background, eventually fading to white. The “sponsored link” text turned into a little yellow “Ad” badge, eventually becoming today’s little bold “Ad” text. Apple, too, has made its App Store ads blend into normal results. In OpenAI’s case, they have opted to delineate ads by using a grey background and labelling them “Sponsored”.

Now OpenAI has something different to optimize for. We can all pretend that free market forces will punish the company if it does not move carefully, or it inserts too many ads, or if organic results start to feel influenced by ad buyers. But we have already seen how this works with Google search, in Instagram, in YouTube, and elsewhere. These platforms are ad-heavy to the detriment and frustration of users, yet they remain successful and growing. No matter what you think of OpenAI’s goals already, ads are going to fundamentally change ChatGPT and the company as a whole.

“I do not want to tell you about my recent experience.”

On Mastodon, Hendrik Weimer posted 5 most boosted Fediverse posts of 2025. The numbers look kind of low, but the author explains the methodology below.

At any rate, two of the 5 posts have to do with our trust in software.

Number 1 from Max Leibman:

No, I do not want to install your app.
No, I do not want that app to run on startup.
No, I do not want that app shortcut on my desktop.
No, I do not want to subscribe to your newsletter.
No, I do not want your site to send me notifications.
No, I do not want to tell you about my recent experience.
No, I do not want to sign up for an account.
No, I do not want to sign up using a different service and let the two of you know about each other.
No, I do not want to sign in for a more personalized experience.
No, I do not want to allow you to read my contacts.
No, I do not want you to scan my content.
No, I do not want you to track me.
No, I do not want to click “Later” or “Not now” when what I mean is NO.

Number 5 from JA Westenberg:

RSS never tracked you.
Email never throttled you.
Blogs never begged for dopamine.
The old web wasn’t perfect.
But it was yours.

“Distinct absence of anything that takes away screen real-estate”

Neil Panchal writing in 2020 about a cool little page called diskprices.com:

The performance of this website is stellar. It loads almost instantly. And the list (although it’s not sortable) gets the job done, it is sorted by price already which is the most important attribute.

Diskprices.com deserves the UI/UX award of the decade. We’ve lost our ability to design user interfaces laser-focused on the user. Instead, we have purple gradients, scroll jacking, responsive bullshit, emojis, animations, and many other things designers do today. The utilitarian approach of Diskprices.com is refreshing, although the contemporary designers cast it off as ‘brutalist design’, thereby marking it as a statement of fashion.

But both the creators of the page and Panchal might be getting this wrong:

Do you need a graphic designer?
No. This site is designed to maximize information density, accessibility, and performance. More whitespace, colors, and icons won’t help.

I think this is incorrect. The creator of the page is a graphic designer, that just happens to be the perfect graphic designer for the job.

Book review: Enshittification

★★★★☆

I liked this book. I consider Cory Doctorow a good, smart writer. He can put together one good sentence after another (“this is why the roads leading to Amazon depots are littered with sealed bottles of human urine”), he can tell stories of boring things in riveting ways, and he can connect various themes and events.

This last bit was a (positive) surprise. The book is a tour of what felt a more vast universe than I imagined. Turns out, the reasons for enshittification are complex and spanning many systems. There are case studies – most you’ve probably heard of – but this really feels like a book in that each one comes with extra depth: details, detours, history. The book travels through a lot of places and teaches quite a few things: computer history, arbitration laws, stock market, history of unions. I would not be surprised if everyone reading this finds a jumping off point to dig deeper into a certain area.

I also didn’t mind the tone – angry, but not too angry, blunt, but not cynical, with an entire section at the end dedicated to “now we rebuild” and some examples of what we’re already getting right.

Only two small complaints:

The book loses a bit of steam at the end. It might be simply that suggesting improvements is naturally harder than riveting stories of Things Gone Poorly, especially if those improvements are systemic and legal. But maybe it could just be a bit shorter.

Cory Doctorow also loves coinage, which – well, justified, seeing how the word that became the book’s title helped the idea travel! But there’s a lot of others words around: enshitternet, disenshittification, twiddling, chickenization… There’s this sentence in the book: “There’s something genuinely wonderful about workers who counter-twiddle their bosses’ apps and escape reverse-centaurism.” There are more like it. At this point, this feels like just bad UI.

But those are smaller things. Overall, this is worth a read. To me, it added a lot more higher-level understanding of systems and processes that lead to bad software (not an altitude level I find myself in), and packaged it nicely into a story.

I’m going to finish by listing a few passages that particularly stuck with me.

Page 34:

Companies don’t treat you well because they’re “good” capitalists and they don’t abuse you because they’re “bad” capitalists. […] Companies abuse you if they can get away with it.

Page 51:

Enshittification – deliberately worsening a service – is only possible when people value that service to begin with. Enshittification is a game of seeking an equilibrium between how much people like the thing that locks them to the service (often, that’s other people) and how much they hate the management of that service.

Page 106:

The death of competition […] doomed regulation. Competition is an essential component of effective regulation, for two reasons: First, competition keeps the companies within a sector from all telling the same lie to its regulators. Second, competition erodes companies’ profits and thus starves them of the capital they need to overpower or outmaneuver their regulators.

Page 129:

That long delay after you reach a web page but before it shows up in your browser? That’s the “surveillance lag,” the delay while all those [advertising] auctions are concluded.

Okay, so maybe I don’t mind all of the newly minted words and coined terms. This one is sharp.