Pattern library
Duolingo's streak loop: how the habit works, and how to borrow it
Duolingo made a hard, long goal (learning a language) into something people do every day for a few minutes. The lesson is not the hook; the streak is. Losing it feels like losing something you own, so people come back.
Why it works
- A unit of progress small enough to finish on a bad day (a three-to-five-minute lesson).
- A visible count of consecutive days, which grows into something the person does not want to lose.
- A reminder at the time the person usually shows up, not at a time that suits the product.
- A cheap way to protect the count (a streak freeze), so one missed day does not end the habit for good.
When it holds
- The task can be done in minutes and repeated daily without running out.
- Coming back daily actually moves the person toward something they want.
Where it breaks
- The real value comes weekly or monthly (payroll, a quarterly review): a daily count rewards empty visits.
- The streak becomes the goal, and people do the smallest thing that keeps it alive.
- A broken streak is so painful that people leave instead of starting again.
Where else it works
- Snapchat
- Snapstreaks count the days two friends have sent each other a snap.
- GitHub
- The contribution graph shows a year of daily activity; it showed streak counts until 2016.
- Fitness trackers
- Daily rings and move goals reward closing the day, every day.
Where you could try it
- Onboarding for a fintech or savings app
- A B2B tool that needs a weekly habit
- Learning and certification products