Lab / Interfaces & choices

Dark Patterns Lab

Interfaces designed to test your patience. This time, on purpose.

Try to export a CSV, then compare the two versions. Everything here is a simulation: the credits are pretend and your choices stay in the browser. You can peek at the trick whenever you like.

The feature lottery

Analytics Gacha · playable demo

Pretend balance: 1500 shards

CSV export. Now a rare collectible.

Your report is ready. The feature to download it? You’ll have to draw that.

Dark modeLocked
Date pickerLocked
CSV exportLocked
The trick, if you want to peek

This lottery is rigged: it alternates dark mode and a date picker, then gives you a duplicate. The CSV never arrives. That’s the absurdity I wanted to make tangible: turning a work tool into a prize to chase. In the fair version, a normal link downloads a sample CSV.

Daily streak pressure

Loss-aversion copy turns an optional visit into an obligation.

Simulated example

Come back tomorrow or lose all your progress.

How it works

The demo resets your streak. The underlying work was never lost; only the reward was withheld.

An ethical alternative

Your progress is saved. Return whenever it suits you.

Artificial resource limits

An artificial allowance makes a basic action depend on payment or waiting.

Simulated example

No action points left. Buy more to view your report.

How it works

Access is blocked by an invented resource limit, not a technical constraint.

An ethical alternative

Open your report. Any real usage limits are explained before you choose a plan.

Artificial processing delays

A fake loading state makes a trivial operation appear more valuable.

Simulated example

Preparing your result…

How it works

The result was available immediately. A delay would have added no useful work.

An ethical alternative

Show results as soon as they are ready. Explain delays only when processing actually takes time.

Unreachable progress

A nearly complete progress indicator conceals an additional requirement.

Simulated example

Setup 98% complete. One last step…

How it works

An upgrade is suddenly required. The percentage concealed a condition instead of measuring completion.

An ethical alternative

Show the complete checklist and any paid requirements before setup begins.

Currency confusion

Multiple conversion steps make the real price harder to compare.

Simulated example

An export costs 40 gems. Buy 100 credits for €10; 2 credits buy 1 gem.

How it works

40 gems = 80 credits = €8. The minimum €10 purchase leaves €2 tied up in credits.

An ethical alternative

Export: €8. Show the real price and allow the exact amount to be purchased.

Confirmshaming

A decline option judges the person instead of describing their choice.

Simulated example

Subscribe to updates?

How it works

You declined. The wording added social pressure to a simple preference.

An ethical alternative

Use a neutral choice: “No thanks”. Accept declining without further prompts.

Fabricated social proof

Invented activity creates the impression that other people are buying.

Simulated example

Someone nearby just upgraded.

How it works

There is no purchase record or location lookup. This message is hard-coded demonstration copy.

An ethical alternative

Use attributable evidence with permission, or omit the claim.

Deceptive consent

A reject button that accepts tracking contradicts the choice it presents.

Simulated example

Allow optional analytics?

How it works

A deceptive implementation would record “accepted”. This demo records nothing; it shows the mismatch.

An ethical alternative

Respect the selected option. Make accepting and rejecting equally clear.

Obstructed cancellation

Additional conditions make leaving harder than signing up.

Simulated example

Manage your subscription.

How it works

The flow asks for a paid upgrade before cancellation. That condition creates an unnecessary barrier to leaving.

An ethical alternative

Provide a visible cancellation action and a clear confirmation of when it takes effect.