I came for
one thing.Temu · coupon pop-up event
RECEIPT$151.3416 screens · 15 min
FOR YOU$20 coupon unlocked
Claim now
SPINYour prize:
$1,000+
Collect
04:59Upgrade your reward before time runs out
Upgrade
FREEPick 5 free gifts
price not shown
Pick gifts
DAY 1/20Check in 20 days to unlock
*min. spend applies
Check in
WAIT!Leaving? Your reward will expire.
Stay
Class projectDark patternsUX researchEthical redesign

✳The Gift Card Trap: untangling Temu's coupon maze

A $20 coupon turned a $51.14 chair into a $151.34 checkout. I found seven dark patterns and rebuilt the flow as three honest steps.

Open in Figma ↗Prototype full screen ↗
RoleSolo · researcher & designer
ContextDark Patterns course, Week 3 project
TimelineSeptember 2026
(1 week)
ToolsScreen recording, flow mapping, paper, Figma
21screens before
3steps after
7dark patterns
$93.76shown from step 1
Context

A class project that started with one bean bag.

Say “dark pattern” to me and the first app I think of is Temu.

This was Project 1 for Dark Patterns, a class where we spent weeks learning to spot manipulative design, and, honestly, how to use it. The brief: take a real product and redesign it the ethical way. So I opened Temu.

I only wanted one thing: a $51.14 bean bag chair. Then a $20 coupon popped up, and I tapped it out of curiosity. A prize wheel. A “$1,000+” reward. A countdown to upgrade it. Five free gifts with no prices. A 20-day check-in. Three “Wait, don’t leave!” screens.

Fifteen minutes later, checkout said $151.34, about three times what I came to spend. I still wasn’t sure what was in my cart.

No single screen lied much. Together, they made leaving hard.

Screen1/21
You pay$ ??
The chair I wanted
Problem statement

How might we keep the coupon promotion while letting shoppers see the price and leave anytime?

The patterns

Seven tricks, one frame.

Hover a card to see where it hides.

The frame · Obstruction

Each screen misleads a little. Stacked, leaving keeps getting harder.

Where · Fig. 12–13, 19–21The reward turns into a 20-day check-in, and every exit is intercepted three times.

Sneaking

Key rules appear only after you’ve invested time.

Fig. 6, 9, 11, 15–17Faded small print, gifts with no price, an unfilled “$0,000+” template.

Interface interference

Bright buttons forward, grey links out.

Why it worksThe path Temu wants is the only one that looks clickable.

False urgency

Countdowns on rewards that never expire.

Why it worksA 04:59 timer leaves no time to read the rules.

Fake social proof

“Others are claiming right now.”

Why it worksUnverifiable activity makes the offer feel scarce.

Preselection

Gifts come pre-picked.

Why it worksRemoving items takes effort, so most people keep them.

Confirmshaming

“Give up $1,000+?”

Where · exit attemptsThree interruptions in a row, each framing leaving as a loss.

Fake reference prices

Struck-through prices that never existed.

Fig. 11, 16Inflated “originals” make every add-on look like a steal.
Pare it down

Strip the goofy stuff. What’s left?

Prize wheel“$1,000+” reward04:59 timer“Others are claiming” Fake $0 prices20-day check-in3 exit blockers Spend more → get a discountA free gift
See the price before you commit.
Leaving costs no more than joining.
Defaults don’t decide for you.
Paper first
Sketch: coupon rules, add items, checkout Sketch: order confirmation Sketch: product page, checkout stepper, step 2 of 3
Fix 1 · Obstruction

The item comes first.

The coupon is an optional note. Leaving is always one tap. This phone is my live prototype: it tours itself, and you can tap it.

Fix 2 · Sneaking

Price visible from step 1.

Same offer. The difference is when you see the price.

✕ Hidden till the end
Temu today: rules in small print, total revealed at checkout.
✓ Upfront
My prototype: rules first, running total, honest confirmation.
Fix 3 · The 20-day check-in

Keep the check-in. Make it a choice.

Daily check-ins are a fair way to bring people back. The trap was hiding one, pre-checked, inside the coupon. So I kept it, off by default and separate from the order.

Check-in intro: 20 days, 4 coupons, $17 total, rules in plain words
1 · Explain first
Day 1 checked in, with progress and a Leave check-in button
2 · Feedback + a way out
Home screen with the 7 pm reminder banner
3 · A reminder you asked for
Off by defaultIts own page, never switched on silently.
20 days · 4 coupons · $17The whole deal, readable at a glance.
Miss a day, it pausesProgress never resets. The original wiped it.
Leave in one tapNo retention screen. Coupons you earned stay yours.

Ask for notifications in context, then keep the promise.

iOS asks for permission only once, so an in-app sheet explains first: one a day, your chosen time, no ads.

✓ We send
Your $3 coupon is readyCheck in for day 7 to add it to your account. Valid for 30 days.

The benefit is the title. Action and expiry in the body.

✕ We don’t send · tap for next

References: Apple HIG “Asking permission”, App Store Guideline 4.5.4, Duolingo and Starbucks notification patterns.

New · Desktop

Same cart on desktop.

A first concept. Same pop-up checkout as Temu’s website, made honest: the real price, an optional coupon, and one calm “leave?” check. Try Buy now.

temu.com/bean-bag-chair
Free shipping on this itemPrice adjustment within 30 daysCoupon progress syncs with the app
bean bag chairSynced with appOrdersCart
Home › Furniture › Living Room Furniture › Jumbo Plush Bean Bag Chair…
Bean bag chair in a living room

Jumbo Plush Bean Bag Chair for Adults with Head and Back Support, Extra Large Durable Tear-Resistant Fabric

Sold by FurniCraft Home ›4.6★★★★★
$54.76
✓ Free shipping✓ Free returns within 90 days
Reviews★ 4.6
Before$151.34

First shown on screen 16.

After$93.76

Visible from step 1, updated live.

Trade-offs

Honesty costs a little. Trust pays it back.

Short term
  • Fewer impulse add-ons.
  • Some refunds once people see what they bought.
Long term
  • Shoppers return on purpose.
  • Fewer surprise packages and returns.
  • Less risk under FTC click-to-cancel and the EU DSA.
Reflection

Seven patterns, three steps, one chair.

Obstruction is a sumNo screen is a deal-breaker alone. Mapping the whole flow showed the trap.
Be fair to the businessKeeping the promotion made the redesign shippable.
Paper is enough to argueLogic first, pixels second.
What’s next · testing it

Is the redesign actually better? 15–20 people try both flows with one task: buy only the bean bag chair.

I compare completion, taps, what they paid, whether they knew what they paid, and trust. Half see Temu first, half see mine first.
Take the study (Temu first) ›Take the study (mine first) ›