This site is a work in progress — still shipping new things every week

Why streaks work (and when they stop working)

Koushith
8 min read

Recently Mobbin posted a video deep dive on streaks and I figured I would turn it into a post. Easier to skim later than rewatching eight minutes when I need a reference.

I have kept Snapchat streaks going with people I barely talk to. I have mass-committed garbage to GitHub just to keep the green graph alive. Never really questioned why. Mobbin looked at 859 streak designs and dug into the psychology behind each one. Helped me finally understand what is actually happening in my brain when I do this stuff.

The question every streak design is trying to answer: what makes someone come back tomorrow?

It starts with fear

Imagine winning $10 today. Feels nice. Now imagine losing $10. Stings way more. That asymmetry is loss aversion. Streak mechanics bet on it hard.

The copy gets urgent. A countdown appears. An angry owl stares at you.

Screen flow1/3
Duolingo extend your streak notification with countdown timerClick to enlarge
01
Yope save your 15 streak countdown on lock screenClick to enlarge
02
Done app don't break the streak warningClick to enlarge
03

Duolingo · yope · Done on Mobbin

Works because you are protecting something you already built. Not gaining something new. Just trying not to lose.

But some apps flip it

Instead of scaring you, they make you feel like you are becoming someone. Copy is positive. Encouraging. Even the button text matters.

Duolingo's product team changed "Continue" to "Commit to my goal" and it was a massive win (Jackson Shuttleworth on Lenny's Podcast). One button label.

Screen flow1/4
Duolingo I'm committed button with streakClick to enlarge
01
Mindvalley make the commitment screenClick to enlarge
02
Ahead app I commit to myselfClick to enlarge
03
Fabulous believe in yourself encouragementClick to enlarge
04

Duolingo · Mindvalley · Ahead · Fabulous on Mobbin

More apps are doing this now. Reframing the CTA into a promise you make to yourself. Not "keep going" but "I commit."

Some go further and turn streaks into collectibles. Badges. Milestones. Tangible proof you showed up.

Opal does this really well. Your streak earns you literal gems that unlock over time. Consistency becomes a collection.

Screen flow1/4
Opal milestones collection with gems unlocking at day countsClick to enlarge
01
Opal your milestones gems locked and unlockedClick to enlarge
02
Opal 1 day streak screenClick to enlarge
03
Opal streak growing dashboard with focus hoursClick to enlarge
04

Opal milestones on Mobbin

Screen flow1/4
Duolingo achievements badges and personal recordsClick to enlarge
01
OLIO app badges collectionClick to enlarge
02
stoic app badges in snow globesClick to enlarge
03
Aaptiv badges daily streak weekly workoutClick to enlarge
04

Duolingo · OLIO · stoic. · Aaptiv on Mobbin

The owl thing

People stop caring about the number but keep opening the app because they do not want to disappoint Duo. A cartoon owl. Just pixels.

When we assign human emotions to non-human things, that is anthropomorphism. Why we yell at computers, name our cars, apologize to AI.

Back in the '90s people got emotionally attached to Tamagotchi. Tiny virtual pets you had to feed and care for. If you ignored them they would die. People carried them everywhere. Some grieved when they died. This is called the Tamagotchi effect: the attachment that forms when a digital thing appears to need you back.

Duolingo took it further than most. The mascot became a full personality.

Screen flow1/4
Duo owl saying Hi there I'm DuoClick to enlarge
01
Duo owl signing you inClick to enlarge
02
Duo owl dancing while loading with streak statClick to enlarge
03
Duo owl loading teaching endangered languagesClick to enlarge
04

Duolingo mascot on Mobbin

Mascots create attachment. Once you feel something for a product, leaving gets harder.

Filling the gap

Some streak systems skip fear, hope, and attachment entirely. They just show you a visual pattern. A calendar filling up. Dots connecting. Once there is a gap, your brain notices immediately.

The Zeigarnik effect. Unfinished things stay active in our mind longer than completed ones. Filling one tiny missing block feels weirdly good. Breaking the chain feels worse than it should.

Screen flow1/6
Duolingo 588 day streak with calendar showing filled daysClick to enlarge
01
Duolingo 847 day streak perfect calendarClick to enlarge
02
Speak app streak calendar with recordsClick to enlarge
03
Drops streak calendar with green highlighted daysClick to enlarge
04
Not Boring Habits calendar with checkmarksClick to enlarge
05
Babbel 1 day streak calendarClick to enlarge
06

Duolingo · Speak · Drops · (Not Boring) Habits · Babbel on Mobbin

GitHub does this without calling it a streak. The contribution graph is just a grid of green squares on your profile. Nobody tells you to keep it green. But once you see a few weeks filled in, a grey gap feels wrong. I have mass-committed throwaway code on a Sunday night just to keep the graph solid. Not because anyone checks. Because the pattern was there and my brain did not want a hole in it. No gamification, no badges, no owl. Just color on a grid. That is how strong visual completion is as a motivator.

These are everywhere. Shopping apps, social apps, fitness trackers. Same idea across all of them: give people a pattern they do not want to break.

Dopamine is not a reward. It is anticipation.

Common assumption: you do something good, brain gives you dopamine. Professor Wolfram Schultz found it works differently. Dopamine responds to the prediction of rewards. The smell of coffee before the first sip. The notification chime before you read it. Brain reacts to what it thinks is coming next.

A streak does not need to feel satisfying every single time. It just needs to make your brain believe something satisfying is about to happen.

The habit loop is built around this. Cue, craving, response, reward. Duolingo notification is the cue. Anticipation of the lesson-complete sound is the craving. Easy first question is the response. Streak number going up is the reward.

Studies found that just seeing the streak number makes people more likely to keep going. Have not opened the app yet. Cue already fired the loop. That is what pulls people back tomorrow. Not the lesson. Not the streak number. The loop.

What happens when it breaks

The longer the streak, the more your identity gets wrapped up in it. 200-day streak person. When it breaks, not just a number resetting. Feels like losing part of who you became.

Obvious fix: make it stricter. More pressure. More accountability. Duolingo found the opposite worked better.

They built streak freeze. Miss a day without losing everything. When they let users equip up to two freezes at a time, daily active learners went up 0.38%. Over 200,000 more people coming back every day.

Screen flow1/4
Duolingo 4 day streak with extend streak and 5 freezes usedClick to enlarge
01
Duolingo streak goal and streak protectionClick to enlarge
02
Paired app streak freeze automatically appliedClick to enlarge
03
Runna let's keep your progress going after missed workoutsClick to enlarge
04

Duolingo · Paired · Runna on Mobbin

They also tested two variants. One: users must hit their full daily goal to keep the streak. Two: users just need to complete one lesson. Second variant won. Over 40% more people maintained their 7-day streak.

More apps are designing around recovery now. Repairs. Freezes. Pauses. Grace days. Perfection is not the goal. Showing up again is.

But do they actually build habits?

Streaks seem like the perfect habit system. Show up every day, behavior becomes automatic.

Most evidence around streaks focuses on engagement and retention though. Not lasting behavioral change. Those are different things.

Once the streak becomes routine and everything is predictable, that dopamine signal weakens. So apps keep layering surprises. Animations. Milestone celebrations. Bonus XP. Manufacturing unpredictability to keep the loop alive.

Optimizing for engagement and optimizing for long-term habit formation is not the same thing.

A study by Lally et al. tracked people building real habits over months. Missing a day had almost no effect on whether the behavior eventually became automatic. People just resumed. The habit continued forming.

Opposite of how most streak systems work. They punish you for missing a day. The research says it does not matter.

What matters is not how long you keep your streak. It is whether you come back after breaking it. One bad day does not erase the habit. You just pick it back up.


Sources and further reading

Research: Dopamine & prediction of reward (Schultz, 1998) · Dopamine follow-up (Schultz, 2010) · Habit formation & missing a day (Lally et al.) · Streak reminders & return behaviour · Goal flexibility & recovery

Concepts: Habit Loop · Zeigarnik Effect · Tamagotchi Effect · Anthropomorphism

Case studies: Jackson Shuttleworth on CTA testing (Lenny's Podcast) · Duolingo streak blog · Duolingo streak improvement · Duolingo A/B test (abtest.design by Mobbin)

Books: The Power of Habit by Charles Duhigg · Atomic Habits by James Clear · Hooked by Nir Eyal


All screens from Mobbin. Video credit: Why Streaks Work by Mobbin. Follow them on Instagram and X.