Duolingo • 2017–2018

Lessons from making Duolingo social

Clubs was Duolingo’s first social feature, and I was its sole and founding designer. Until then, Duolingo was a single-player app: your streak, your XP, your lessons. Clubs put learners of the same language into small groups with a shared feed, social language challenges, and Duolingo’s first leaderboard. It didn’t last, but a lot of what it taught us showed up in what came next.

My Role
Sole designer
Team
5 members

0.0s

What is Clubs and why social?

Clubs had its own tab in the app. Learners were matched with others learning the same language, and club-mates shared a feed of prompts from Duo, mini games, and their own posts, plus a weekly leaderboard. Behind it was a bet on network effects, a big topic at Duolingo at the time: people are less likely to leave a platform when the people they know are on it too. Learning alongside peers could give Duolingo new ways to motivate people, and to keep them around.

Play-testing

Social features are hard to test with mockups, because the dynamic you’re testing is other people. So we started with dogfooding: a real, internal build of Clubs that anyone at the company could use. Duolingo employees learning the same language were randomly grouped into clubs of 15, with a group chat, posts from members, Duo as a voice in the room, and a weekly XP race. Dogfooding let us get a feel for whether it was actually fun and engaging.

Early Clubs prototype: a group chat with messages from Duo and club members

Chat needs momentum, a feed doesn’t

Through dogfooding, we learned the leaderboard was enjoyed by the competitively inclined, but also that a group chat was hard to sustain, especially with Duo interrupting with announcements about member achievements and leaderboard wins. So for the launch to real Duolingo users, we switched from a group chat to a feed. The feed did two things: posts and their comments stayed together, and a post could rise back to the top when there was new activity. It also let us experiment with the order of posts to maximize engagement.

time

Prompt, don’t announce

After Clubs launched with the feed, we started measuring engagement more closely. Auto-generated posts about member achievements, like “Mary completed 2 skills” or “Kai earned 50 XP,” kept slipping in engagement. But removing them made it worse: engagement dropped 37%. This suggested some social lubricant was needed. The generated posts weren’t the problem; what they asked of people was. I turned them from passive updates into active prompts, open-ended questions to answer in the language you were learning. Engagement rose substantially, because the prompts invited a new way for club members to interact.

Two Clubs feeds side by side: passive activity updates and an active caption prompt from Duopassive updatesactive prompts+18% comments, +21% club tab visits

Curiosity gets lurkers talking

Even with active prompts, only 3 to 5 members in a club of 15 were commenting. The rest were reading. So I had the idea to “lock” the prompts: you couldn’t see anyone else’s answer until you’d answered yourself, but you could see who had already answered before you. Curiosity plus a little social proof did it. Unique members answering the prompt went up 70%, and comments overall 29%.

A locked prompt in the Clubs feed showing which members have already answered

Developing the prompts

Writing freely in a language you’re still learning is intimidating, and structure makes it easier to speak up. The best ideas for that structure were already in the clubs: people sharing why they were learning, or where they were from. I turned patterns like these into mini social games: Use That Word, Caption That, Listen & Answer, and Practice a Scenario. These prompts also mapped to the different skills learning a language takes, like listening and speaking.

A Use That Word challenge card in the Clubs feedA Clubs challenge in progress

People want to connect

The biggest lift came from the simplest prompt. A welcome card invited new members to say hi and introduce themselves, and the number of members posting anything in their club, a post or a comment, went up 200%. Human connection beat anything Duo could say.

People needed encouragement

It’s hard to talk with people at different levels, and hard to write in your learning language at all. But some people were willing to try, so I rewarded the attempt: members earned XP whenever they wrote in their learning language, tying Clubs back to the mechanics people already cared about. Canned replies and translation hints helped in the moments you needed more guidance, and you could tap any post to see it translated.

hints when you’re stuck

tap to translate

XP for writing in German

How you group people matters

Our first way of grouping people quietly broke itself. We launched with a public list of clubs that anyone could create and join, each capped at 15 members. Clubs with appealing descriptions filled up fast, so what was left got less and less appealing, and the join rate kept dropping. We had baked our own failure into the design: a list that got worse the longer it existed, because what was left were the less appealing clubs.

The public Clubs list and the Create a Club screen

The list did teach us something, though. Some clubs had wonderfully specific reasons to exist, like “nurses learning Spanish,” or learners bonding over their streaks. They pointed to clear themes: collaborative, competitive, or social. Based on those, and a little inspired by the Hogwarts houses in Harry Potter, I designed club themes to group like-minded learners, with an illustrated badge for each. It was a compelling idea, but we were a team of five, and building a distinct experience for every theme would have cost too much. I also explored location-based clubs, but that was really a different product, and it didn’t make sense for us to build.

Join a Local Club: get matched with other German learners near you
Eight illustrated club theme badges, from The Hunter to The Nomad

I drew these

Joining doesn’t have to be a feature

So instead, we took the choice away: tap “Find me a club,” and you’re placed in one. That turned grouping into something we could experiment with: club size (15 vs. 50 members), removing inactive members after 30 days, and the mix of members in each club. Joining a group doesn’t have to be a feature in itself. Doing the matching for people removed friction, and gave us room to experiment with how they were grouped.

What came next

Clubs was eventually shut down. It had a core of devoted fans, but it didn’t move engagement across Duolingo’s learners the way we’d hoped. We also learned that the collaborative feed and the competitive leaderboard pulled against each other. One thing I respect about Duolingo’s culture is knowing when to move on. There were bigger gains to go after.

Clubs still taught us a lot, and I like to think it was a stepping stone for Leagues, the leaderboard that came next and did reach those gains. Auto-grouping people and removing inactive members feels like an early version of Leagues’ automatic groups and demotion zone. Lenny’s Newsletter has the story of how Leagues came together.