"Streaks is our biggest feature with the exception of the lessons. If you figure it out, any app can introduce a streak, but you have to have a product people love. Then the streak layers engagement on top of that."
9M+ users with 365+ day streaks (a city-sized population)
Over 600 experiments run in 4 years
Duolingo doubled in value to $14B; streaks drove the bulk of DAU growth
Biggest growth lever: not new users, but keeping users coming back
The Evolution
From XP Goals to "One Lesson"
Original (XP-based): Streak tied to experience points goal (50 XP goal, etc.)
Problem: Users hit their own goal, lose streak, never return
Insight: Define unit of use (one lesson), not abstract goal
Result: Still meaningful, massively easier to understand
The key shiftMoving from "hit 50 XP" to "do one lesson" removed friction without removing meaning. Users know exactly what a lesson is.
600+
experiments in 4 years
50%
win rate on tests
Why "one exercise" failed
They tested making it even easier: one exercise per lesson. DAUs didn't move. Users became too casual, least-engaged cohort. The lesson is the unit of use, not the question.
Flexibility Mechanics
Bend, Don't Break: Streak Freezes
Streak Freeze: Insurance policy—skip a day, keep your streak
The experiment: Free 2 freezes at start → massive DAU win
Sweet spot: 2 freezes better than 1, but 3 didn't improve on 2
The tradeoff: More flexibility early (new users), less later (long streaks)
The insight: 7-day threshold unlocks real habit lock-in
The flexibility paradox
More freezes = more users returning after days off, but also training users to take days off they didn't need. The curve inverts at ~7 days.
On long streaks (400+ days)
Jackson has a 400-day streak but lost many before. Long-streak users don't need freezes—they need protection. The goal shifts from "let them miss a day" to "help them not miss."
Design Playbook
Form Follows Function
Lead with the number, not the metaphor (ditched the flame graphic)
Make it look like a calendar → users understand "daily"
Every UI element communicates one thing: how does this work?
Celebrate milestones (Phoenix Duo), but don't sacrifice clarity
Global UXR: flame emoji doesn't resonate in India—test assumptions
The serenity prayerJackson's co-lead knitted: "Grant me the serenity to accept the flexibility I need, the courage to reach perfection when I can, and the wisdom to celebrate regardless."
Contrarian
Streaks Myths vs. Reality
✗Streaks only work for gamesINSTEAD →✓ Streaks work on top of products users love. The core product has to be delightful first.
✗Easier metrics = better retentionINSTEAD →✓ Making the unit too easy (one exercise) captures the wrong users and creates no meaning. Match the unit to the habit.
✗More flexibility always winsINSTEAD →✓ 3 freezes isn't better than 2. Too much flexibility trains users to take unnecessary breaks. The curve inverts.