Self-initiatedProduct Design · iOS · 2026

BUBU:
losing weight in pairs.

An iOS app for two people on the same eight weeks. You photograph what you ate, the day prints itself as a receipt, and seven receipts bind into a paper journal you both sign.

BUBU

App Store

Build complete · preparing submission

Role
Product design, UI, illustration
Scope
23 screens · paired and solo
Platform
iOS · iPhone 17
Status
Built · one round of interviews · TestFlight next
The BUBU home screen on an iPhone: day 24, both players' progress, and the meals they logged today

01 / Why it exists

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. What makes it appealing is how little it asks, and that is also why it falls apart. Nothing holds the pairing together, so it quietly stops after a week and the search starts again. Dieting is the worst case, because it needs two months rather than one evening.

Three rules the whole product is built on

01 / One subject

You share food. Nothing else.

No chat, no feed, no profile, no display name. For the length of the challenge you are both a user id and a plate of food.

02 / A fixed end

It 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.

03 / Visible absence

A missed day prints as a blank.

No nudge, no guilt notification. An empty dashed frame on the day's receipt, and a counter that reads MISSED 1 / 3.

02 / How it works

Photograph the meal. The rest prints itself.

There is no form to fill in. You shoot the plate, the app cuts it out of its background, and from there the product is three pieces of printed matter: a receipt a day, a spread a week, and a track that runs the length of the challenge.

The day

At 23:59 the day seals itself as a receipt.

A receipt is already read as a day that has been closed and totalled. Sealing it means yesterday cannot be edited to look better, which is the only reason the other person's copy is worth anything. It is also the most useful answer to what to eat tonight: a real meal, eaten by someone on the same plan.

Both players' receipts for the day, printed side by side on a black groundOne receipt in full: each meal with its time, the exercise line, and the day's progress

The week

Seven receipts, bound and laid open.

The journal is the only place the two of you are shown as one object. Turn it and the cover, the title page, your week and their week come up in order; open it flat and both weeks read across the gutter at once.

The journal, closed on the deskMy Diet Diary, and the two of you drawn on the flyleafSeven days, each with what I ate and what I didThe same page, kept by the other personBoth weeks across the gutter, with the week's loss clipped to each

The finish

One track, two runners, a date at the end.

The home screen keeps the two of you on one track. The challenge page keeps the rules and the count. When the date arrives, the last screen is a celebration and a receipt you can share.

The challenge page: both players' progress against the rulesThe goal-reached screen: a drawn figure with arms up, and the final numbers

03 / What testing changed

Two conversations, two changes to the product.

Before TestFlight I sat down with two people who would meet the app from opposite ends: someone who would use it, and someone who has shipped things like it.

Who
A fitness creator with 20,000 followers
What they said
She liked the interface enough to want it for herself, on her own. Her point was that people will come for how it looks and may not have a buddy to hand, and the app should not turn them away at the door.
What changed
A solo mode. The same home, journal and challenge, with one runner on the track and a journal that holds only your week. Pairing became something you can add later rather than the price of entry.
Home in solo mode: one runner on the trackThe journal in solo mode: one week, one pageThe challenge page in solo mode
Who
A product designer with three years of shipped work
What they said
His concern was the cold start. Matching strangers online is a bad experience in a new app, because there are not yet enough strangers: you wait, or you are given someone nothing like you.
What changed
Matching that is one-to-one for you and one-to-many for the system. You are shown exactly one buddy, chosen for a similar goal, a similar starting weight and the same length of challenge. But the person you are shown may already be someone else's buddy, and that is allowed. When A and B are paired and C arrives closest to A, C is matched to A; A still sees B, and B still sees A. Nobody waits for an even number of people to turn up.

How a third person joins

CAB
  • Asees B
  • Bsees A
  • Csees A
The matched screen: your buddy has arrived, with both goals side by side

Both conversations were about the prototype, before any real pair had run a challenge.

04 / The look

Flat paper, hairlines, and photographs printed straight onto it.

The whole app is one material. Nothing floats, nothing has a shadow, and nothing is rounded except the phone it runs on.

Four surfaces, one ink

  • Paper

    #F6F6F4

    Every screen but the journal and the receipt

  • Board

    #C8C5AD

    The journal's cover cloth and the desk it lies on

  • Page

    #F6F5EE

    The journal's own paper, a shade warmer than the app

  • Ink

    #0E0E0E

    Type, rules, the black key and the receipt ground

Two typefaces, no third

0123456789 · MISSED 1 / 3 · 08:05

Geist Mono carries every number, label and timestamp, because a receipt is a printed object and a receipt's numbers line up. Noto Sans SC carries the sentences. Nothing is set in a script face; the only handwriting in the app is drawn, not typed.

What the system refuses

  • No drop shadows and no elevation. A card is a rule, not a layer.
  • No rounded corners. Right angles everywhere, including the buttons.
  • No white border on a photograph. A meal is cut out of its background and printed onto the paper.
  • One filled button per screen, in ink, as a plain rectangle. The receipt is the one place the system inverts: paper type on a black ground.
Setting the goal: height, current weight, target weight in mono, and the 4, 8 or 12 week choice
Setting the goal. The numbers in mono, the 4 / 8 / 12 week choice set as three figures rather than a control, and the one ink button on the screen.

05 / The cast

One pen, five loops.

The app has no mascot and no illustration library. It has a cast of two, drawn with the same line as the interface rules, who appear only at the moments the product needs a person rather than a number.

  • Skipping

    Empty states, and the pause between two challenges

  • Both of you

    The screen that confirms a match

  • Solo

    Home, when you are running the challenge alone

  • The finish

    Crossing the line on the last day

  • Goal reached

    The celebration screen, and the receipt you can share from it

The loops run while they are on screen and stop when they are not.

06 / Every screen

The whole build, in the order you meet it.

Nineteen screens captured on an iPhone 17 simulator, from sign-up to the settings page. Drag the strip.

  • Sign up01 · Sign up
  • Solo or paired02 · Solo or paired
  • Set the goal03 · Set the goal
  • Invite a buddy04 · Invite a buddy
  • Matched05 · Matched
  • Home · paired06 · Home · paired
  • Today's receipt · both07 · Today's receipt · both
  • Today's receipt · mine08 · Today's receipt · mine
  • Journal · cover09 · Journal · cover
  • Journal · my week10 · Journal · my week
  • Journal · the spread11 · Journal · the spread
  • Challenge · progress12 · Challenge · progress
  • Challenge · rules13 · Challenge · rules
  • Goal reached14 · Goal reached
  • Home · solo15 · Home · solo
  • Journal · solo16 · Journal · solo
  • Challenge · solo17 · Challenge · solo
  • Settings18 · Settings
  • Rename19 · Rename

07 / Shipping it

What is built, and what is between here and the App Store.

The app is not a prototype. It is a build that runs, and the work left is the work of getting a build reviewed rather than designed.

Done

  • 23 screens, designed and built
  • Paired and solo modes
  • The receipt, the journal and the share card
  • One-to-many matching, out of the second interview
  • The five drawn loops

Between here and the store

  • TestFlight round with real pairs, which is also the first test of the matching
  • Privacy labels and the data the matching actually needs
  • App Store screenshots and the listing
  • Review, and whatever review asks for

One thing is still untested: the whole product rests on the assumption that a stranger's receipt is motivating rather than uncomfortable. Two interviews moved the product, but two interviews are not eight weeks of use. That is what TestFlight is for.