DittoAdult friendships stall because nobody wants to ask first.
Ditto is an iOS app for turning people you almost know into friends. You privately mark a plan you’d be up for. If they mark it too, you both find out at once. If not, nobody ever knows.
Most people have plenty of contacts. What they lack is a safe way to make the first move.
Ditto is for the people you almost know: the coworker you click with, the friend-of-a-friend you always end up talking to. You privately mark that you'd be up for a specific plan, like coffee with Maya. If Maya never marks the same plan, nobody finds out. If she does, you both see it at the same moment, and the app helps you turn it into a plan.
Ditto doesn't find you new people. It removes the step that stalls most adult friendships: asking first.
In a within-subjects test, 7 of 8 people suggested coffee to a new coworker with Ditto, against 3 of 8 by text. With close friends, text still won.
02
The problem
−73%
Daily in-person time with friends for 15–24 year olds, from about 150 minutes in 2003 to 40 in 2020.
U.S. Surgeon General, 2023
3% → 12%
Share of Americans who say they have no close friends, 1990 vs. 2021.
Survey Center on American Life, 2021
25%
U.S. men aged 15–34 who felt lonely “a lot of the day” yesterday, against an 18% national average.
Gallup, 2023–24
~200 hrs
Time together it takes to turn an acquaintance into a close friend. About 50 hours gets you to casual friend.
Hall, 2018
The people you could spend those hours with are mostly already around you, and even light contact with acquaintances lifts belonging (Sandstrom & Dunn, 2014). Yet every major friend app starts by showing you more strangers. The gap sits between “we should hang out” and a date on the calendar, and social psychology explains why it holds:
The liking gap. After a conversation, people underestimate how much the other person liked them (Boothby et al., 2018).
Reaching out is undervalued. Across 13 experiments, people underestimated how much a message would be appreciated (Liu et al., 2022).
People misjudge who wants to talk. Commuters expected to prefer sitting alone, but enjoyed talking more (Epley & Schroeder, 2014).
Put two people with these biases together and neither asks. It is a coordination failure, not a lack of interest.
How might I make starting real-world plans with people you already know feel as low-stakes as liking their post?
03
Research
Would people rather just get a direct invitation?
Study plan
Hypothesis
A visible no, not lack of interest, stops people. With acquaintances, a mutual signal beats a direct text.
Objective
Find where “we should hang out” stalls, then test whether Ditto turns more of it into plans than texting.
Generative method
6 interviews, a 2-week diary study of every “we should hang out” moment and what followed, 1 expert interview
Evaluative method
Within-subjects test (n = 8), direct text vs. Ditto, then a round of 5 after fixes
Participants
22–30, in a transition; one privacy-anxious, one VoiceOver user. Expert: a newcomers’ club organiser.
Non-objectives
Meeting strangers, dating, group plans
The diary captured behaviour as it happened, not as people remembered it.
What earlier products taught
The mutual reveal isn't new. Four products show where it breaks.
Facebook Dating · 2019
Secret Crush
What happened
Revealed only if both listed each other, and told people “someone” had a crush.
What I took
The mechanic works on a real social graph, but people now read it as romance.
Bang With Friends → Down · 2013
Mutual opt-in, built for hookups
What happened
Pulled from the App Store, renamed Down, and never shed the association.
What I took
Naming and tone decide whether the same reveal feels kind or predatory.
Down to Lunch · 2015
Broadcast availability
What happened
“Down for lunch” went to every friend. It hit #1 in social in 2016 and was gone by 2018.
What I took
Being available to everyone isn't the same as being wanted by someone.
Instagram Map · 2025
Opt-in that didn't feel opt-in
What happened
Off by default, yet users who saw themselves on it felt exposed.
What I took
Privacy that only lives in settings isn't enough. Each screen has to show it.
From notes to themes
I wrote one observation per sticky, one colour per person, and sorted them by hand first, then ran a cluster pass over the sort.
1. Raw notes. 42 observations from 7 sessions.
2. Sorted by hand. 11 findings, named as sentences.
3. Cluster pass. A keyword pass over the sort gave 4 themes.
What I found
Behaviour
Both people want it, and neither asks first
Evidence
Diary participants logged 39 “we should hang out” moments in 2 weeks. 7 became plans. “Everyone says ‘we should’. Nobody owns the next step.”
So
The product has to take the first ask off both people at once.
Motivation
A no from someone you'll see again costs the most
Evidence
“A no from a coworker is worse than a no from a stranger. I see them Monday.” 3 of 7 held back from asking someone they'd see again.
So
One-sided interest must look exactly like no interest, and it expires without a trace.
Need
Privacy has to be visible on the screen
Evidence
“How do I know Maya can't see it? Show me what her screen looks like.” 2 of 7 stopped to ask who would be told before tapping.
So
State who can see what next to every button that changes it.
Against the concept
With close friends, a direct text wins
Evidence
“For my close friends this is pointless. I'd just call them.” 3 of 6 said so unprompted. One participant, and both club members shown it, read the reveal as dating.
So
Ditto is for acquaintances only, and it has to read as a plan, not a crush.
What the design does about it
Nobody asks first → a private “I'm up for it” that's revealed only when mutual.
Silence reads as a no → no pending states, and interest lapses quietly.
Reads as dating → match on person + activity, and show the activity first.
Plans stall after yes → a match goes straight to picking a time and place, chosen by you.
VoiceOver missed the reveal → it is announced and marked with a haptic.
04
Defining the opportunity
A deliberately narrow audience
Young adults, 22–30, in a transition, rebuilding friend groups from loose ties. Not close friends, who just text, and not strangers, who need different safety tooling.
Job to be done: “Help me spend more time with people I already like, without the first invitation feeling like a big deal.”
An invitation is easy when you already know the answer.
Who
People you already know, not strangers
Why not strangers
It adds verification and moderation, and the liking gap is about people you've actually met.
How
Mutual reveal, not a better invite
Why not a better invite
Templates make asking faster, not less risky. The fear of a no stays.
What
Person + activity, not either alone
Why not one
Activity alone causes accidental matches. Person alone sounds like a crush.
05
Information architecture and flows
Four tabs. Everything else opens as a focused flow or sheet.
Home: the one next step, then upcoming plans. Not a feed.
Plans: needs a response, upcoming and past.
People: connections and requests. Both people have to accept; nothing is imported.
Discover: activity ideas, and where you privately choose who you'd do them with.
Interest from one side must look exactly the same as no interest at all. Any hint lets someone piece together a rejection.
No “someone's interested” teaser, unlike Secret Crush.
No pending states. Maya's view of you is identical whether or not you picked her.
Interest expires quietly after 14 days, with no notification.
No probing. Adding and removing interest is rate-limited.
Blocking removes everything, in both directions, without telling anyone.
06
Exploration and iteration
A. Broadcast. “I'm free Saturday” to everyone.
B. Just text them. A direct invite, made quicker.
C. Mutual reveal. Private interest, shown only if mutual.
All 6 interview participants dropped A in early walkthroughs: silence after a broadcast hurt more. That left B against C.
The test. 8 new participants tried both a direct text invite (control) and a Ditto prototype, half starting with each to reduce order effects. Four tasks, scored for ease (SEQ, 1–7) and unaided completion. The key comprehension check: “Who can see your interest right now?”
Mean ease rose from 3.3 to 5.6 (Wilcoxon signed-rank, p = 0.016). One participant rated both a 5.
Task
Direct text
Ditto
What I saw
Suggest coffee to a new coworker
3 / 8
7 / 8
5 typed a text, then deleted it
Suggest a plan to a close friend
8 / 8
6 / 8
Text won. “Why wait for a match with my best friend?”
Say who can see your interest now
8 / 8
7 / 8
One read “Saved” as “Sent” and thought Maya had been told.
Turn a yes into a time and place
4 / 8
7 / 8
Half the text threads ended without a time
The answer is split. For close friends, people would rather get a direct invitation. For acquaintances, Ditto more than doubled how many made the first move. I scoped Ditto to them and added a plain “Just text them” for close connections.
What changed between rounds
What I saw
What I changed
Next round (n = 5)
1 of 8 thought Maya was notified
Saved state now says “Nothing has been sent to Maya”
5 of 5 answered the comprehension check correctly
2 of 8 called the reveal “a match”
The activity leads the reveal; no dating words anywhere
0 of 5 used dating words
VoiceOver read nothing during the reveal
Spoken announcement plus a single haptic
The VoiceOver user heard the match and made a plan
Words that don’t sound like dating
“I’m up for it”, in place of a like
“Nothing has been sent to Maya”
The plan comes first
A decline reads as “Not this time”
07
The final experience
Three moments carry the product: a yes nobody sees, the reveal when it's mutual, and a plan that follows straight away.
Private
A yes nobody sees
Picking Maya for coffee opens one sheet: “Coffee with Maya? Only you can see this unless Maya is interested too.” The next screen says it again: “Nothing has been sent to Maya.”
What research showed
“A no from a coworker is worse than a no from a stranger. I see them Monday.” 2 of 7 stopped to ask who would be told before tapping.
What I designed
Interest from one side looks exactly like no interest: no pending state, no teaser, and it lapses quietly after 14 days. The promise sits by the button, even at 200% text size.
What testing showed
5 of 5 said correctly who could see their interest, after 1 of 8 in the first round read “Saved” as “Sent”.
Mutual
The overlap, not a match
When both people pick the same plan, two shapes drift together and the overlap shows what you'd both do: “You're both up for coffee.” The overlap became the logo and the loading state.
What research showed
Both people want to, and neither asks: 39 “we should hang out” moments in the diary study became 7 plans. But a mutual reveal can easily read as dating.
What I designed
A match on person and activity, with the activity first and no dating words anywhere. VoiceOver announces it with one haptic, and with Reduce Motion the shapes start overlapped.
What testing showed
7 of 8 suggested coffee to a new coworker, against 3 of 8 by text. After the rewrite, 0 of 5 used dating words.
Plan
From yes to a time and place
A match goes straight to choosing a time window, never sharing your calendar, and ends on “It's a plan.” Afterwards a private check-in asks three questions, and people are never rated.
What research showed
“Everyone says ‘we should’. Nobody owns the next step.” In testing, half the text threads ended without a time.
What I designed
Propose a window, review it (“Sending makes this visible to Maya”), and let Maya accept, suggest another time or decline with equal weight. A decline only ever reads “Not this time”.
What testing showed
7 of 8 turned a yes into a time and place, against 4 of 8 by text.
Also in the product
Onboarding that explains privacy first, before asking for anything. Contact access is optional.
A home screen, not a feed: the one next step, upcoming plans, then it ends.
“Just text them” for close friends, where testing showed a direct text still wins.
Privacy one tap from your profile. Blocking removes everything both ways, without telling anyone.
No follower counts or popularity scores, anywhere.
08
Validation and outcomes
Ditto hasn't launched. The north star is confirmed plans: plans both people say happened, not time in the app.
Activation
New users who connect with one person and express a first interest.
Mutuality
Share of interests that become mutual. Suspiciously high may mean gaming.
Conversion
Mutual matches that become confirmed plans.
Quality
Post-plan comfort, “would do it again” and repeat plans.
Guardrails: unwanted-contact reports, blocks and perceived pressure.
Still open
Showing the other side. The privacy-anxious participant still wanted to see Maya's screen. A “What Maya sees” preview is next to test.
The expiry window. 14 days felt long to some, short to others.
Partners. One participant said a secret list would worry their partner.
09
Reflection and next steps
What participants taught me
Know where your product loses. A direct text beat Ditto with close friends. Admitting it sharpened the product.
The step after yes matters as much as the yes. The diary logged 39 moments and only 7 plans.
Wording decides what a mechanic means. The reveal read as dating until the activity came first.
Accessibility users find the moments that matter. The VoiceOver user found a silent reveal nobody else noticed.
What's next
Cold start. Invite a specific person (“Maya isn't here yet”) without revealing your interest.
Groups. When does a reveal happen across three people, and what does it give away about who didn't opt in?
Sources
12
U.S. Surgeon General. Our Epidemic of Loneliness and Isolation, 2023. Coverage
Survey Center on American Life. The State of American Friendship, 2021. Coverage
Gallup. “Younger Men in the U.S. Among the Loneliest in West,” 2025. Link
Hall, J. A. “How many hours does it take to make a friend?” Journal of Social and Personal Relationships, 2018. Summary
Sandstrom, G. M. & Dunn, E. W. “Social Interactions and Well-Being: The Surprising Power of Weak Ties.” PSPB, 2014. Link
Boothby, E. J., Cooney, G., Sandstrom, G. M. & Clark, M. S. “The Liking Gap in Conversations.” Psychological Science, 2018. PDF
Liu, P. J., Rim, S., Min, L. & Min, K. E. “The Surprise of Reaching Out: Appreciated More Than We Think.” JPSP, 2022. Link
Epley, N. & Schroeder, J. “Mistakenly Seeking Solitude.” JEP: General, 2014. PDF