Browse all of Kata

Progress

Source docs/design/patterns/progress.mdMarkdown

Streaks, badges, belts — Duolingo's mechanics in Konjo's voice.

Part of the Konjo design language. The laws in the spine apply here unless this chapter contradicts them.

Konjo has more progress to show than most apps: 19 ranks, a curriculum, attendance, test readiness. The founder chose streaks and milestones — the Duolingo shape — twice, over the belt ladder, over a progress bar, and over a big number.

That is the mechanic. The tone is not Duolingo's.

Duolingo's mechanics, Konjo's voice.

Do Don't
Badge grid + streak row as the primary display Mascots, cartoon faces, confetti in progress UI
Belts are the highest tier of badge — a rank is a badge a human conferred, which is why it outranks "30 classes" A separate parallel achievement system competing with rank
The full 19-rank ladder as a deeper screen for people who want the whole climb Making the ladder the primary display (tested; not chosen)
"4-week streak. Train once this week to keep it." "You're on fire! 🔥 Keep it up!!"
Badge glyphs in ink; earned belt badges carry their belt colour; locked ones dimmed Red used to decorate badges (violates L4)
Let a streak lapse silently "Don't lose your streak!" notifications, streak-freeze economies

A dojo does not guilt people into attending. No loss-aversion mechanics, ever.

The one thing this mechanic does not cover is a promotion. Streaks, counts and badges are the app's own bookkeeping, so game shapes fit them. A rank is not: it is conferred by a person, and it gets the certificate, not a badge-unlock burst. The badge grid may show an earned rank — belts are its highest tier — but it must never be where the promotion is announced.