Have you started a Friend Streak yet? Our newest social feature lets you share a streak with up to 5 friends—and learners are seeing great results. Our data shows that learners with at least one Friend Streak are 22% more likely to complete their daily lesson (and that likelihood increases the more Friend Streaks you have!)
Building a social learning experience has been one of the most fun challenges for our product management team to work through. Now that 57% of our users have at least one friend, we knew it was time to start building fun features that make those in-app friendships worthwhile. And at Duolingo, we’re lucky to be a highly gamified app in a social good space. As a PM, I feel good about getting people to do their Duolingo—this allows us to build really fun features in ways other apps might not be able to! More time on Duolingo = more learning.
In January, we were ready to start building Friend Streak, a feature we’d been excited about for months. Here are 5 things we learned while ideating and launching Friend Streak that any product manager can bring to their upcoming projects:
Build an uber prototype
The first version of Friend Streak that we built for internal dogfooding was what I’d call the “dumbest” version of the feature. It wasn’t even truly social—everything was on your local device, which made it easy to implement without a backend, but meant that none of your Friend Streaks were real. If you started a “Friend Streak” with someone, they wouldn’t even know.
We knew it wouldn’t be simple to build this feature, so creating an uber-prototype allowed us to get some sense of what design challenges we’d face and whether or not this feature would change user behavior. As it turned out, even this hacky version was fun to use, and Duos loved it. This engagement and excitement helped us move the project forward and get early buy-in from leadership.
This approach also allowed us to see edge cases quickly. Knowing these potential issues early in the process helped us build a better version of the feature from the start.
Assume you’ll only ever build V1
Recently, our CEO Luis decided we should stop using the term “MVP” (minimum viable product) to describe recently-launched features, because we believe it can encourage us to ship something that isn’t ready for learners. Instead, we should frame all first launches as “V1.” (Version 1), implying that it’s a complete version, ready for users. This approach was really helpful when building Friend Streak - if the version that we launched is the only version that ever exists on Duolingo, we’re OK with that. Here’s why:
We decided that the most important goal for Friend Streak was that it made you want to do your daily lesson. It should help our learners develop a stronger habit. Like your personal streak, this had the power to be really motivating… if people cared about it. We had to build the right motivation mechanisms (like notifications and nudges); create a design that felt separate yet related to the user’s individual streak; and build something uniquely social for Duolingo.
Interestingly, the version we landed on is the first social feature we’ve seen, on any app, that doesn’t require you to actually do anything with another learner. You’re basically just using Duolingo alongside someone else—it’s like studying next to a friend at the library. Any bells and whistles we add going forward won’t change the inherent motivation people have to stay accountable to their friends—and that’s the most important thing we needed Friend Streak to do!
Design for scale, but be judicious about building that scale
At Duolingo, we test everything. This was one of the reasons that we ended up launching Friend Streak with up to 5 invites.
We knew that we’d want to test the impact of multiple shared commitments eventually, and we designed with that future experimentation in mind. The UI for a Friend Streak with just one friend would be very different from multiple shared streaks. It could trap us in patterns that worked really well for focusing on one person, but would require a bigger redesign if we expanded it to multiple people. By designing for multiples in the beginning, we could ensure that we’d be able to test different iterations of it without switching up the design every single time. The version we made can scale up quite a bit!
But just because we could scale the number of users, doesn’t mean we should. Allowing more than 5 Friend Streaks adds complexity: we need to fit more users on a page, we need to have a backend that can scale to connect more Friends, and most critically, we’d want to see an impact from allowing users to add more friends. Critically, the number of users with tons of active friends on Duolingo is small (but growing!). Rather than run costly tests that would have experimentally increased the slots to 6, then 7, or even ripping the bandaid off allowing users to add as many Friend Streaks as they wanted, we did a comprehensive data science exercise that looked at retention and uptake for our existing 5 slots - how much better do users retain when they go from 1 to 2 Friend Streaks, 2 to 3 Friend streaks, etc., how large are those populations - so that we could forecast that the “juice was worth the squeeze.”
It was a helpful exercise because we realized… it probably wasn’t right now! The population of users with such large, active friend groups was small enough, and by the time they’d reached 5 Friend Streaks, they were likely to be well-retaining. While we’d considered the super friend - the friend that invites dozens of people who might not otherwise be on a Friend Streak, and who’d retain much better just getting on their first Friend Streak, our network analysis showed that these users were much less likely to be captured simply through letting users invite dozens of people, let alone whether people would even add dozens of friends.
Optimize for your biggest hurdle
The final important thing we did when designing this product was find out our “funnel of success.” The dream state, obviously, is that every learner on Duolingo has a shared streak. But how do we get there?
We broke down the process of a successful Friend Streak into 6 steps:
Then, we figured out which of those steps would be the biggest hurdle and optimize for it. In this case, it was getting learners to send that initial invite. If we made a 1% gain at that step, we’d have a much larger population exposed to the Friend Streak than if we only optimized for our power users (people with 5 Friend Streaks). We’re continuing to iterate and improve on the invite mechanic so that we can get more and more learners sharing a streak with their friends!
We love working through complex problems to make exciting features. If this sounds fun to you, we’re hiring!