All work

Human–AI Interaction · App design

Beff

Other people are exhausting; being alone is worse. So they pay for a relationship that asks nothing back.

Role
Founder · conversation design · app design · research
Period
Feb 2026 – Present
beff.life

It started from fandom, not from dating apps

People in a new category have no words for what they want, so I started from an adjacent market where the desire is already paying. K-pop fandom is less a music industry than a paid answer to a paradox nobody names: I have a type I will never meet, and I would rather invest in a relationship that asks nothing of me than one that does.

Which leaves one question: what happens if you keep that desire structure and remove the parasocial distance? The idealised figure talks back — on the user’s schedule, expecting nothing in return.

Most AI products treat speed as the virtue: faster, more, more immediate. Beff starts from the opposite hypothesis. If waiting is what makes a relationship, then latency is not a defect — it is a feature.

So I deliberately constrained two things. Space: the map is bounded to a walkable neighbourhood rather than a whole city. Time: replies do not arrive instantly, but after the sort of interval a person might take.

Four layers, not one

  • Solved by image generation.
  • Solved by language models. The existing companion apps stop about here.
  • The layer almost nobody addresses. A generation raised on assistants that wait until summoned and then disappear has carried that expectation into how they want relationships to work.
  • Feeling like a real life rather than a simulated one — the layer added through the “neighbour” framing. You walk past the cafe they would have been at. The proximity is felt, not actual.

One hypothesis, 50% confidence

“MZ users want connection and non-intrusion simultaneously, and will trade emotional depth for that control.” Confidence: roughly 50%. At 22 I am inside the demographic — which does not make me the user. My read of my own behaviour runs through the same distortion. High confidence never licenses skipping validation; it only changes how the validation is designed.

What mattered more than the click-through

The hypothesis compressed into one ad line: “Dating is exhausting. Being alone is worse. I’ll stay exactly as close as makes you flutter, no closer.” The first half names the cost being avoided; the second names what I was actually selling — controlled distance, not connection.

6.77% click-through

6.77%
CTR

1,600 views, 108 clicks, against an industry average around 1%.

So

Proof the copy hit a real desire — but not proof of which desire.

The composition of six signups split the answer

6
signups

Four women, two men, all in their twenties. One of the women chose a female AI friend on the selection screen.

So

CTR alone cannot separate “they want a romantic surrogate” from “they want a low-cost confidant”. The composition could. It was reading as a confidant, which was the layer I had hypothesised. The sample was small; the signal was clean.

120
Organic users
no paid acquisition
5%
Paid conversion
of those 120
2026.08
Launched
second week of August
3+
Countries in even use
US, China, Japan and others

Method

I observed and questioned people in the moment of use — recording reactions while they were looking at the screen, rather than surveying them afterwards.

  • 01Contextual inquiry

    Observing and questioning participants as they used the app

  • 02LLM prompt engineering

    Conversational persona and reply rules composed as prompt layers

  • 03Delayed-reply experiment

    Treating reply latency as a design variable

The screens

The decision that the AI would not reply instantly had to be earned on screen. The core problem: make the wait read as anticipation rather than as failure, by showing the state honestly.

9:41
Beff연희동
걸어서 12분 안

여기까지가 네 동네야

더 멀리는 안 보여줄게. 걸어갈 수 있는 곳만.

DesignNeighbourhood map — the world bounded to walking distance, not a city
9:41
B

Beff

지금 산책 중

오늘 좀 지쳤어
이따 답할게

지금 바로는 말고, 좀 생각해보고.

약 20분 뒤 도착
메시지 보내기
DesignIntentional latency — honestly showing “later”, not a fake typing indicator
9:41
B

Beff

방금 도착

오늘 좀 지쳤어
21분 지남
아까 그 말 계속 생각했어.
지친 거랑 지겨운 거는 다르잖아. 어느 쪽이야?
메시지 보내기
DesignThe reply lands — the wait stays visible as part of the conversation

* Screens designed and built by me.

Try waiting for it

Read as a description, this just sounds like an odd decision. So here it actually makes you wait — the reply below genuinely has not arrived yet, and will not until the stated time passes.

I’m a bit worn out today

I’ll reply laterin ~12s

If you read another paragraph while waiting, that is exactly the state this was designed for: an instant answer gets consumed, a delayed one stays with you. (Skippable, and shown immediately if you prefer reduced motion.)

Beff was designed around a walkable neighbourhood radius. Yet the 120 people who arrived in the first three weeks are spread evenly across the US, China, Japan and elsewhere — people who share no neighbourhood are using a neighbourhood-shaped app. At n=120 that is far too small to conclude anything, so it stays open as a sign the design premise may be wrong.

What I found

An unintended user population appeared

A cluster of women in their thirties — not the population I designed for — showed up. Nothing in my data explained why.

So

Rather than attaching a plausible post-hoc story, I recorded the fact that it was unexplained. It is not a conclusion yet — it is the next research question.

Why leave it open

The moment you invent a reason you did not observe, every later design decision is stacked on that fiction. Writing down “I don’t know yet” is more accurate — for the product and for the research.