<!-- https://getkonjo.com/design/patterns/progress · source: docs/design/patterns/progress.md -->

# Progress

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

> Part of the [Konjo design language](../konjo-design-language.md). 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](celebration.md), 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.

---
