๐Ÿ”

๐Ÿ”ฅ Heat it up

A streak is a tiny moral system.

It takes a day โ€” with all its context, interruptions, tradeoffs, intentions โ€” and collapses it into a binary: you showed up, or you failed. At first it's motivating. "Don't break the chain." But the tone shifts. The streak stops describing your behavior and starts prescribing it. You're not doing the thing because it's valuable. You're doing it because you must not lose what you've built. The pressure isn't the activity. It's the threat of erasure.


The heatmap refuses to collapse

My current French streak on Bellringer:

A heatmap just says: here is what happened. Some days dark, some light, some empty. Weeks flare up, then go quiet. You went hard for a while. You dropped it. You picked it back up. Nothing erased, nothing judged. The same data a streak flattens into a number becomes a history.

We didn't invent this. GitHub did โ€” or rather, GitHub pointed it at developer activity and stumbled on one of their more useful data visualizations. Heatmaps have been around forever: weather maps, density plots. They've always been about showing distribution, not issuing verdicts.


GitHub killed its own streak

GitHub used to show a "current streak" โ€” days in a row you'd committed. It sounds harmless. In practice it smuggles in a specific claim: you should be doing this every day. No weekends, no seasons, no life. Miss a day and the number collapses, no matter that you wrote ten thousand lines the week before.

That's not a visualization. That's a value system. It fed directly into the GitHub-meritocracy story โ€” that a person could be evaluated by the consistency of their output, visible to anyone who cared to look. People pushed back. GitHub quietly removed the streak. They kept the heatmap, because the heatmap doesn't moralize your life. It just records it.


Duolingo went the other way

Duolingo took the streak and made it the center of the system โ€” not just a number but a ritual. You check in daily. You protect the chain. You're reminded, constantly, that it is fragile. There are streak freezes and streak repairs, but these don't remove the pressure; they formalize it. The system acknowledges that failure is expected, and monetizes your fear of it.

Over time the question shifts from am I learning? to did I keep the streak alive? Two minutes of tapping counts the same as an hour of focused work โ€” the system can't tell them apart, because the signal has already been collapsed. You don't leave because you've learned enough. You leave because you finally break the chain.


A log, not a ledger

A ledger asks: did you comply? A log asks: what did you do? One produces anxiety. The other produces understanding.

Bellringer keeps the heatmap and throws away the streak. Click into any day and see the work โ€” the sentences, the mistakes, the time. Instead of a current streak that can be broken, there's a single number that only goes up: you've practiced 127 days. It can't be reset, because it isn't a judgment. It's a record.

Missing a day isn't failure. Missing a week isn't failure. Leaving for six months isn't failure. When you come back, nothing has been revoked, and nothing needs repair. You just continue.


Don't test loyalty. Record effort.

published design writings dataviz habit