Self-initiatedProduct Design · iOS · 2026

BUBU:
losing weight in pairs.

Pair with one person on the same timeline, share nothing but what you ate, and finish the same challenge on the same day.

The challenge
A diet partner is easy to want and hard to keep, so people spend more effort finding one than following the plan.
My contribution
Product framing, interaction design, illustration and the visual system.
The bet
Cap the relationship at one subject - food - and give it a start date and an end date, so it has nothing to maintain and nothing to drift out of.
Status
In progress · Not yet user-tested
Role
Product Designer & Illustrator
Scope
Product · UI · Illustration
Platform
iOS
The BUBU challenge home screen: day 12, both players' progress, and today's receipt

01 / The starting point

A dazi is easy to find and easy to lose.

In China, a dazi (搭子) is a partner for exactly one activity - a lunch dazi, a gym dazi, a concert dazi. What makes it appealing is how little it asks: no friendship to keep up, no obligation past the activity itself.

Why it breaks

The same looseness that makes a dazi easy to start makes it impossible to keep.

Nothing holds the pairing together, so it quietly stops after a week and the search begins again. People end up spending more energy finding a partner than following the plan the partner was meant to support.

Why dieting is the worst case

It needs weeks, a matching schedule, and a witness on exactly the days you least want one.

A concert dazi has to survive one evening. A diet dazi has to survive two months, a mismatched starting weight, and the day you would rather nobody saw what you ate.

The design question

What is the smallest commitment that can hold two strangers together for eight weeks?

02 / The bet

Narrow the relationship until there is nothing left to break.

Rather than add features to make the pairing stickier, I took things away until only one shared subject was left.

01 / One subject

You share food. Nothing else.

Your buddy sees what you ate and when. There is no chat thread, no feed, no profile and no display name - both of you are a user id for the length of the challenge.

The trade-off
A message box would make this a social app, and a social app is exactly the upkeep a dazi pairing is meant to avoid.

02 / A fixed end

The challenge ends on a date, not on a decision.

You pick 4, 8 or 12 weeks at setup, and both pages count down to the same day. Nobody has to be the one who quits.

The trade-off
A fixed window rules out an open-ended habit tracker. This is a race with a finish line, not a lifelong log.

03 / Visible absence

A missed day prints as a blank.

Skipping does not send a nudge or a guilt notification. It leaves an empty dashed frame on the day's receipt, and the counter reads MISSED 1 / 3.

The trade-off
Three blank days in a row ends the challenge for both people. Harsh, but it is the only thing holding the pairing together.

03 / Finding a buddy

Invite someone you know, or match on the three things that decide whether you can finish together.

Matching does not ask for age, city, gender or a photo. It compares the only three facts that affect whether two people can run the same challenge to the end.

  • Similar goalBoth aiming for about the same number of kilograms
  • Similar startClose enough in starting weight that the pace is comparable
  • Same end dateBoth challenges close on the same day

Your challenge

Your goal

−6.0 kg

68.0 → 62.0

Their goal

−6.0 kg

66.0 → 60.0

Starts
Tomorrow 0:00
Ends
11.17 · 56 days
Three blank days in a row ends the challenge for both of you.

04 / The daily loop

Photograph the meal; the day closes itself as a receipt.

You shoot the plate, the app cuts it out of its background, and at 23:59 the day seals into a printed receipt. Yours and theirs sit side by side.

DIET MATCH

DAILY RECEIPT

DATE
2026.09.22 TUE
NO.
012 / 056
PLAYER
ME

BREAKFAST08:05

— ICED AMERICANO & EGGS

LUNCH12:40

— SHRIMP & EGG SALAD

EXERCISE
RUN 30 MIN
PROGRESS
42% → 46%
ITEMS
4
STREAK
12 DAYS
MISSED
0 / 3
THANK YOU FOR SHOWING UP

DIET MATCH

DAILY RECEIPT

DATE
2026.09.22 TUE
NO.
012 / 056
PLAYER
TA

BREAKFAST07:50

— CROISSANT & LATTE

LUNCH12:30

— NOT LOGGED

EXERCISE
WALK 5 KM
PROGRESS
30% → 34%
ITEMS
4
STREAK
12 DAYS
MISSED
1 / 3
THANK YOU FOR SHOWING UP

Why a receipt

A receipt is already read as a day that has been closed and totalled. Sealing it at 23:59 means yesterday cannot be edited to look better, which is what makes the other person's copy worth anything.

The second reason to look

Motivation is only half of it. Their receipt is also the most useful answer to “what do I eat tonight” - a real meal, eaten by someone on the same plan, at a time you can compare to your own.

The receipts above are drawn in CSS from the product’s own layout. The meal photos are stand-ins from the home screen; in the app they are cut out of their background and printed straight onto the paper.

05 / The weekly report

Seven receipts become a spread you both sign.

Every week the daily receipts bind into one journal. Your page and theirs face each other, so a week reads as a single object rather than two separate logs.

The weekly report: two facing journal pages, one per player, each holding seven days of meal photos and notes
Left page is mine, right page is theirs. Missed days stay on the paper as empty frames.

06 / Where it stands

The loop is designed. The assumption underneath it is not yet tested.

BUBU is still being built. The screens, the receipt system and the illustration set are done; what is missing is evidence that the core bet holds for anyone other than me.

Open question

Does a stranger's receipt push or pressure?

The whole product assumes that seeing someone else show up is motivating. It could just as easily read as surveillance on a bad day. This is the first thing to put in front of people.

Open question

Is no messaging at all the right cap?

Zero contact is the cleanest version of the idea. It may also be too cold to sustain - a single reaction per receipt might be the minimum warmth needed without turning it into a chat app.

Open question

Is ending after three blank days fair?

The rule exists so the pairing cannot quietly rot. Whether it reads as a fair contract or as a punishment for one bad week is a question for testing, not for me.

No usability testing has been run yet, so nothing on this page is a validated outcome. The numbers shown in the screens are sample data.