Two friends going to Japan in six months. A couple where one is learning the other's first language. Two people who both quit and want to try again together. Friend Streaks, Friends Quests, and Leaderboards will keep all of them opening the app, but none of it puts them in the material together. The casual learner loses most: 58.7M of Duolingo's 140.6M monthly learners show up on a given day, and a streak that breaks on the first miss turns a commitment into a record of missing.

So the design question became: what would it take for two people to be working through the same material together, in a product built entirely around going at your own pace?

🤝

Agreeing Where to Begin

A pair settles on one of two starting points: pick up where you both are, or start from the beginning. Whoever's further along gives up ground without losing any of it, since the units they rewind to appear as rings on nodes they've already cleared and get worked through at their own pace.

✏️

You Answer Before You Send

The only thing a pair sends each other is a five-question review quiz. Four cards are on offer, each a question type paired with a character, and picking one means answering all five yourself, so your buddy gets those exact five. It costs 5 energy against a 25-a-day budget, and because the sender does the retrieval practice too, a quiz is practice for both people rather than a favor.

🎉

Nothing to Farm

XP sits at parity with practicing alone, and a milestone earns a celebration and a feed post and nothing else. The feature adds no material value over solo learning, which means a buddy is worth having only if the person is.

Two Paths to Explore

Each path starts a pair at a different point in their learning. Use the scenario picker at the top of the phone screen to switch between them or reset.

Path A

Fresh Start

No Japanese yet, Korean at Score 10

A pair forming from nothing. You add Japanese, invite a friend who's also starting at zero, and the Path gains a co-learning layer: your buddy's marker, a challenge tile, and quizzes that unlock once you've both finished the unit. Ends with a shared milestone landing in the feed.

Happy Path
  1. Tap the course flag, then the + Course tile
  2. Choose Japanese, tap With a friend
  3. Tap Invite, then Continue
  4. Tap Continue on the acceptance screen
  5. Tap your buddy's marker on the Path
  6. Open the first node, Simulate complete unit
  7. Tap the pink tile, pick a quiz type
  8. Answer the five, then Send
  9. Tap the tile through the reply and answer back
  10. Reach Score 6, then open the Feed 🎉
Path B

Meet Up

Japanese at Score 10, one unit ahead of your buddy

The harder case: two people already learning, out of step. You rewind a unit to meet them, and the review range appears as rings on nodes you've already cleared. Nothing you earned is taken away, and one lesson at your own position returns you to it.

Happy Path
  1. Tap the course flag, then Learn with a friend
  2. Tap Invite
  3. Choose Pick up together, tap Send invite
  4. Tap Continue on the friend list
  5. Tap Continue on the acceptance screen
  6. Tap your buddy's marker on the Path
  7. Open the first ringed node, Simulate review
  8. Open the last ringed node, Simulate review all
  9. Tap your own node, Simulate complete lesson

Three calls on this page are bets. Each one ships with the alternative already chosen and the signal that would trigger it.

🎁

No material reward

The call is to ship with nothing you couldn't earn by yourself. Then watch pair survival at 30 days. Pairs that form and then go quiet mean the relationship isn't carrying the exchange on its own, and the move is a reward on the monthly badge, the one thing you can't earn alone. Duolingo has run this sequence before: Friend Streak shipped as a shared count, and gifting arrived later once the interaction proved thin.

🃏

Choosing from four cards

The call is to offer four cards, each a question type paired with a character, and no preview or re-roll on the questions themselves. Then watch whether picks are deliberate, tracking either what a buddy has been missing or a character they like. Picks that look random mean the choosing isn't doing the work the design assumes, and the move is showing the sender the questions before they go.

🔁

Review clearing at node level

The call is to have a rewound partner clear their range one node at a time. Then watch whether they abandon before they converge. If the range is what kills pairs, the move is clearing by unit. That's faster, and it also lets someone tick off content without doing it, which costs some of the shared material the feature depends on.

📊

How it gets measured

  • Primary: days active per Course Buddy per month
  • Against: unpaired learners matched on segment and baseline activity
  • Measured per person rather than per pair, since pairs are asynchronous by design and averaging would hide one partner showing up daily while the other shows up twice a month
  • Guardrails: solo lessons completed, 30-day retention
  • Known confound: paired learners self-select, so the reactivation read needs a holdout

The kill test

The prototype shows the full V1. If that scope weren't available, this is the one test worth running first: let people already on the same course, at roughly the same point, send each other five questions. Nothing else.

The shared start point, the review range, and the Path layer are the expensive parts, and they're what lets any two people decide to learn together instead of waiting to happen to line up. This tests the exchange itself, on the rare pairs where that alignment already happened by chance. A negative result settles it. If the quiz doesn't hold two people who are already in step, it won't hold two people the feature puts in step. A positive result only tells you the quiz works when the alignment was luck.

The constraint is that it has to run on people who already know each other, where those pairs are rare, so it reads slowly. Matching strangers by course and position the way Leagues does would produce volume in a week and would answer a different question: whether a quiz from anyone drives return, rather than a quiz from someone you know.

Caveats & Context

  • Built on the author's own Duolingo account. Every screen is a real capture, which is why the profile and friend names are real ones. No Duolingo characters or icons were generated or redrawn.
  • Prototype covers two scenarios in one course (Japanese, plus one Korean screen to establish a second course exists). Everything outside those two paths is unbuilt.
  • Simulate controls advance state that would take days in reality: completing a unit, a partner answering, reaching a milestone. Buttons relabeled in place stand in for something you could do; dashed-border controls appear only where the fiction is that your buddy acted.
  • Static fidelity, no motion. A deliberate scope call.
  • Dark mode throughout, because that's the account's setting.
  • Published Duolingo figures cited from 2024 and Q2 2026 reporting.