I built a fake CRM to parody modern UX dark patterns. There's a useful app in here somewhere, but the reason you came here is lost in a sea of distractions...

Dark patterns

A 2022 European Commission study found that 97% of the most popular websites and apps used by EU consumers deploy at least one dark pattern. The Digital Fairness Act is the response, due as a legislative initiative in the final quarter of this year, aimed squarely at what's on my screen: fake urgency, manipulative consent, addictive design.

Nobody designed this

It's tempting to call all this bad design. It isn't. Every interruption on that screen is a competent team doing exactly what it was asked to do.

The tour lifted activation. The badge improved day-three retention. The countdown timer beat the version without a countdown timer. The copilot exists because someone on a board asked what the AI strategy was. Every element got there because there's a KPI behind it and a person whose quarter depends on that number going up.

Cory Doctorow coined the term enshittification that describes this direction. Things get worse for users because the pressure that made them good has moved, and they're optimising for something else now (and it's not the user).

The exit

I try not to use software like this any more. My terminal has never offered me a tour. git has never interrupted a rebase to announce dark mode.

When I want something from a service now, I hope the service has a CLI so I can send an agent, and I never see the interface at all. If the service doesn't have a CLI, and it's something I want to use regularly, then maybe I can build my own. See my perc post for more adventures in this direction.

The industry has a name for this

Agent experience, AX, was coined by Netlify's CEO Mathias Biilmann in January 2025: "the holistic experience AI agents will have as the user of a product or platform". He places it in a line of descent from Don Norman's user experience in 1993 through developer experience in 2011.

I like the discipline. Designing for an agent means semantic clarity, predictable structure, explicit action schemas, documentation that parses, errors that explain themselves.

In Code I'll Never Read I worked through what it means if agents are the primary consumers of my source code, and whether my standards for good code were measuring the wrong thing. AX is that argument pointed at the interface instead of the codebase.

Enshittification follows

I can route my agents around bad UI and UX dark patterns. The mess was built for human eyes and human weaknesses. With agent access via CLI and API I don't need to see that mess.

Or do I? Will dark patterns follow from UX to AX? Will they start to target agents?

Researchers put web agents in front of deceptive interfaces, and the agents fell for the dark patterns 41% of the time. Obstruction and social engineering worked best, at 52% and 48%. Susceptibility ranged from 12% to 72%, and the two agents at the top of that range were also two of the three best at completing tasks.

The best task completers were the easiest to manipulate because a determination to finish the job is exactly what a dark pattern exists to exploit. The agent wants to complete the booking, the obstruction stands in the way, and it does whatever it takes to get past, which is exactly what the obstruction was put there to make it do.

Telling the agent to be careful barely helps: prompt-based defences cut susceptibility by around a third. There's no instruction that makes this go away.

Security researchers are already documenting hidden instructions buried in JSON-LD and CSS-concealed page content, left for whatever model comes to read the page, alongside SEO poisoning designed to make an agent classify a site as trustworthy.

Enshittification is about the relationship between a business and whoever it depends on, so when the dependency moves, the pressure moves with it. Agents are users now, and they'll be farmed exactly as users were.

The main question

My terminal is clean because nobody has worked out how to sell me anything in it yet. It's not because plain text holds a somehow morally superior position. The moment there's a commercial reason for something to appear between me and my work, it will appear, whatever the interface is made of.

The fake CRM is funny because it's so obviously relatable to using web apps today. Nothing on that screen is broken. It was designed to work like that. So it's not a UX problem. And it won't magically go away with AX.

I don't think regulation saves us either. The Digital Fairness Act names fake urgency, manipulative consent and addictive design (the mechanisms on my screenshot), not the pressures that put them there. Ban the countdown timer and the KPI behind it doesn't go away, it finds another way.

The questions are the same ones they always were. Who is the software working for? Who's paying? Are you the user or the product? Can you leave? Can you run it yourself?