You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Duolingo is the world's most popular language learning app, teaching 40+ languages to 500M+ users through gamification. The mental model is daily practice as a game — short lessons (5 minutes), XP points, streaks, hearts (lives), leaderboards, and a progression tree. Duo the Owl mascot drives engagement through encouragement and guilt ("You made Duo sad"). Unlike Coursera's academic structure, Duolingo optimizes for daily habit formation and bite-sized learning.
Site Map
├── Home / Learn
│ ├── Path (Progressive Skill Tree)
│ │ ├── Units (grouped by theme)
│ │ │ ├── Lessons (5-7 per unit)
│ │ │ │ ├── Lesson Nodes (circles on path)
│ │ │ │ ├── Locked / Unlocked / Completed / Legendary
│ │ │ │ └── Cracks (need to practice to prevent decay)
│ │ │ ├── Unit Header (theme: "Family", "Restaurant", "Travel")
│ │ │ └── Checkpoint (unit review test)
│ │ └── Legendary Level (hardest difficulty, premium or gems)
│ ├── Daily Quest / Goal
│ ├── Streak Counter (flame icon, prominent)
│ ├── Hearts (lives remaining, free tier)
│ ├── XP Progress (daily target)
│ ├── Streak Freeze Status
│ └── Friend Activity ("Maria completed a lesson!")
├── Lesson View (In-Lesson)
│ ├── Progress Bar (top, fills as you answer)
│ ├── Exercise Types
│ │ ├── Translate (L2 → L1 or L1 → L2)
│ │ ├── Tap Words (arrange word tiles)
│ │ ├── Type Answer (free text)
│ │ ├── Listen & Type (audio → text)
│ │ ├── Speak (speech recognition)
│ │ ├── Match Pairs (tap matching pairs)
│ │ ├── Select Image (which picture matches?)
│ │ └── Fill in the Blank
│ ├── Feedback (correct = green, wrong = red + explanation)
│ ├── Hearts Lost (wrong answer = lose a heart)
│ ├── Combo Counter (consecutive correct)
│ ├── Tips / Hints (tap word for translation)
│ └── Lesson Complete
│ ├── XP Earned
│ ├── Accuracy %
│ ├── Streak Extended!
│ └── Share / Continue
├── Streak
│ ├── Current Streak (days)
│ ├── Streak Calendar (filled circles)
│ ├── Streak Freeze (protect streak for 1 day)
│ ├── Streak Society (milestone badges: 7, 30, 100, 365)
│ └── Friend Streak Comparison
├── Leaderboards
│ ├── Leagues (Bronze → Silver → Gold → Sapphire → Ruby → ... → Diamond)
│ ├── Weekly League (30 users)
│ ├── XP Rankings
│ ├── Promotion / Demotion Zones
│ └── History
├── Profile
│ ├── Stats (total XP, streak, courses, time spent)
│ ├── Achievements (badges gallery)
│ ├── Friends
│ │ ├── Friend List
│ │ ├── Add Friends (search, contacts, social)
│ │ ├── Follow / Unfollow
│ │ └── Friend XP Rankings
│ ├── Courses (languages being learned)
│ └── Edit Profile (name, avatar, username)
├── Practice
│ ├── Review (weak skills — spaced repetition)
│ ├── Practice Hub (stories, listening, speaking)
│ ├── Mistakes Practice (redo errors)
│ └── Timed Practice (challenge mode)
├── Stories (Intermediate)
│ ├── Story List (by difficulty)
│ ├── Story View
│ │ ├── Narrative (illustrated, animated)
│ │ ├── Interactive Questions (inline)
│ │ ├── Character Voices
│ │ └── Comprehension Check
│ └── XP from Stories
├── Podcasts
│ ├── Episodes (real stories in target language)
│ ├── Transcript (L1 + L2)
│ └── Comprehension Questions
├── Duolingo Max (Premium AI)
│ ├── Explain My Answer (AI tutor explains mistakes)
│ ├── Roleplay (AI conversation practice)
│ ├── Video Call (AI character chat)
│ └── Unlimited Hearts
├── Shop
│ ├── Gems (virtual currency)
│ ├── Streak Freezes (200 gems)
│ ├── Heart Refill (350 gems)
│ ├── Outfits for Duo (cosmetic)
│ ├── Timer Boost
│ └── Legendary Level Unlock
├── Courses
│ ├── Switch Language
│ ├── Available Languages (40+)
│ ├── Course Progress
│ └── Reset Progress
├── Settings
│ ├── Daily Goal (5/10/15/20 min)
│ ├── Reminder Time (push notification)
│ ├── Sound Effects
│ ├── Speaking Exercises (on/off)
│ ├── Motivational Messages
│ ├── Account
│ └── Privacy
├── Super Duolingo (Subscription)
│ ├── Unlimited Hearts
│ ├── No Ads
│ ├── Mistake Practice
│ ├── Legendary Levels (unlimited)
│ ├── Progress Quizzes
│ └── Family Plan (up to 6)
└── Help
├── FAQ
├── Bug Report
└── Community Forum
type (free/super/max/family), features[], expires_at
belongs to User
Gamification Mechanics
XP: Earned per lesson (10-20), bonus for combos and speed
Streak: +1 per day of practice, breaks reset (unless frozen)
Hearts: Start with 5 (free), lose 1 per mistake, refill with gems or wait
Leagues: Weekly competition, top 10 promoted, bottom 5 demoted
Gems: Earned from lessons, spent on power-ups
Legendary: Hardest lesson difficulty, earn a gold crown
Lesson Status
locked → available → started → completed → cracked (needs review) → practiced
→ legendary (gold)
User Flows
Daily Practice (The Core Loop)
Open App → See Streak ("Day 47 🔥") → Next Lesson on Path → Complete 5-10 Exercises → "Lesson Complete! +15 XP" → Streak Extended → Close App → Push Notification Tomorrow
Review Mistakes
Practice → Mistakes → Redo Exercises You Got Wrong → Correct → Strengthened! → XP Earned
Compete in Leagues
Complete Lessons → Earn XP → Check Leaderboard → "3rd Place in Gold League" → Earn More XP → Promotion to Sapphire → Trophy!
AI Roleplay (Max)
Practice → Roleplay → Scenario: "Ordering at a café in Paris" → Type/Speak Response → AI Responds in Character → Conversation → Feedback on Grammar
New User Onboarding
Visit Duolingo → Sign Up (email/Google/SSO) → Complete profile → Guided setup wizard → Configure preferences → Explore key features → Start using the product
↘ Skip wizard → Land on dashboard