10 min read
How to Build a Duolingo-Style Points, Streaks, and Leaderboard Platform on WordPress
You can build a Duolingo-style points, streaks, and leaderboard system on WordPress using one free plugin: WB Gamification. It tracks points, daily streaks, levels, badges, and a ranked leaderboard across whatever actions your site already rewards, course completions, forum replies, published articles, job applications, without being a standalone app. It’s not a platform to clone on its own, it’s the engagement layer that makes every other platform in this series harder to quit.
This guide covers the specific mechanics behind Duolingo’s retention numbers: streak tracking with loss aversion built in, a levelling system with a visible next-threshold, badges as milestone markers, and a leaderboard scoped to different time windows so a new member isn’t competing against a year of someone else’s activity. Every screenshot below is from a live install with real accumulated points, a real 2-day streak, and a real ranked leaderboard, not a mockup.
Key Takeaways
- WB Gamification (free) adds points, streaks, levels, badges, and a leaderboard to any WordPress site, not tied to a single content type, so it can reward course completions, forum posts, articles, or any action you define.
- The streak counter shows both the current streak and the best-ever streak side by side, the specific framing that makes a streak feel like something worth protecting rather than just a number.
- A levelling system (points needed to reach the next level shown explicitly, “68 pts to go”) gives members a visible short-term goal at all times, never just a flat lifetime total with no next milestone.
- The leaderboard scopes by all-time, this month, and this week, so a member who joined yesterday can realistically compete for a top spot on the weekly board instead of being permanently buried under a year of accumulated points from earlier members.
- This is a layer to add to an existing platform, not a platform on its own, pair it with any build earlier in this series (a course marketplace, a community forum, a publishing platform) to add the retention mechanic that turns a one-time visit into a daily habit.
What Is a Points-and-Streaks System, and Why Would You Add It?
Duolingo’s retention is legendary in the app world not because language learning is inherently addictive, but because the game layer wrapped around it is. A daily streak creates loss aversion, breaking a 30-day streak feels like losing something you already own, not just missing an opportunity. A leaderboard scoped to the current week means a member always has a live, winnable competition in front of them, not a a lifetime ranking they gave up on months ago. Levels give a sense of progress that a raw points total doesn’t communicate on its own.
Adding this to a WordPress platform makes sense anywhere member activity is voluntary and repeatable: a course platform where completion rates matter, a community forum where daily engagement is the whole point, a publishing platform where you want writers coming back, or a support/documentation site where you want to reward the members who answer the most questions. It’s the wrong fit for a one-time transactional site (a simple e-commerce store checkout flow doesn’t need a streak counter), but the right fit for anything built around repeated member visits.
Where Self-Built Gamification Usually Falls Short
Three failure patterns show up repeatedly in DIY gamification attempts. First, a flat lifetime points total with no visible next milestone, a member with 1,632 points has no idea if that’s good or what happens at 1,700, versus a level bar that explicitly says “68 pts to go.” Second, an all-time-only leaderboard, which permanently favours whoever joined earliest and gives new members no realistic path to a top rank, killing the exact competitive instinct a leaderboard is supposed to create. Third, streaks with no loss-aversion framing, showing only the current streak with no “best streak” comparison removes the psychological stake in not breaking it.
WB Gamification avoids all three by pairing current streak with best streak, showing an explicit points-to-next-level count, and scoping the leaderboard to all-time, this month, and this week simultaneously.

Why Self-Host Instead of Relying on Generic WordPress Engagement Plugins
Most WordPress “engagement” add-ons are single-purpose, a comment-count badge here, a login-streak counter there, none of them unified into one coherent points economy a member can actually watch grow. Building a real gamification layer without a dedicated plugin means either accepting that fragmentation or building custom points logic tied to your specific theme and plugin stack, which breaks the moment you add a new content type you want to reward.
WB Gamification centralises points, streaks, levels, badges, and the leaderboard into one system that any other plugin or custom code can award points into, so a course completion in Learnomy, a forum reply in Jetonomy, and a published article in WB Member Blog can all feed the same points economy a member sees on one dashboard, rather than three separate, disconnected counters.
What You Need
- WordPress, any standard install, self-hosted or on a host that allows plugin installs.
- WB Gamification, a free WordPress points, badges, and leagues plugin. This is the entire engagement engine.
- Any content or community plugin you want to reward activity on, this pairs with every build earlier in this series: Learnomy for course completions, Jetonomy for forum activity, or WB Member Blog for published articles.
- A theme that renders the dashboard and leaderboard cleanly. BuddyX Pro is what’s used in the screenshots on this page.
WB Gamification is free to install with no per-member or per-action fee.
Step 1: Install WB Gamification and Understand the Points Economy
From your WordPress dashboard, go to Plugins → Add New, search for WB Gamification, install and activate. The plugin ships with 86 predefined ways to earn points out of the box (visible under “How to Earn” on the dashboard), covering common actions like logging in, posting, commenting, and completing profile fields, and integrates with other Wbcom plugins to award points for their specific actions (a completed course lesson, a forum reply, a published article) without custom code.
A front-end Gamification dashboard is registered automatically, showing a member’s own points, level, badges, and streak at a glance, alongside quick links to the full badge list and leaderboard.
Step 2: Configure Streaks and Levels
The Day Streak counter tracks consecutive days of qualifying activity, shown alongside the best streak ever recorded, in the example above, a current 2-day streak against a best of 6 days. This dual display is deliberate: showing only the current number lets a broken streak disappear quietly, showing the best streak alongside it keeps the previous high score visible as something to beat again.
Levels (Regular, progressing toward Champion in the dashboard example, or the numeric “Lv 1” framing on the leaderboard) group point ranges into named tiers, with the exact point gap to the next level always visible (“68 pts to go”). This turns an abstract lifetime total into a series of achievable short-term goals instead of one distant, demotivating number.
Step 3: Set Up the Leaderboard
The leaderboard is scoped to three windows, All Time, This Month, and This Week, each producing a genuinely different ranking. This is the detail that keeps a leaderboard motivating past the first few members: someone who joined this week has no realistic path to the all-time top 10, but has a real shot at the weekly board, which is exactly the version most members should be checking day to day.

Step 4: Award Badges for Milestones
Badges mark specific milestones distinct from raw point accumulation, in the example above, 3 badges earned out of 37 available. Where points and levels track ongoing activity, badges mark specific achievements (a first post, a completed course, a 7-day streak), giving members discrete, collectible goals alongside the continuous points grind, the same two-track motivation system Duolingo runs with its own achievement badges layered on top of the daily XP and streak system.
Frequently Asked Questions
It ships with 86 predefined point-earning actions covering common WordPress activity (logging in, posting, commenting, profile completion) and integrates natively with other Wbcom plugins for their specific actions. Custom actions from other plugins or theme code can also be wired into the points system without needing a full custom build.
An all-time-only leaderboard permanently favours whoever joined earliest, giving new members no realistic path to a top rank and killing the competitive instinct a leaderboard is meant to create. Scoping to All Time, This Month, and This Week gives every member, regardless of when they joined, a realistic leaderboard they can actually compete on.
The current streak resets, while the best streak ever recorded stays visible and separate, so a broken streak doesn’t erase the member’s previous high score. This keeps the best streak as a standing goal to beat again rather than losing all record of prior consistency.
It’s an engagement layer, not a standalone platform. It’s designed to sit on top of an existing content or community system, a course platform, a forum, a publishing platform, rewarding the activity that system already generates rather than creating new content types of its own.
Yes, badges mark discrete milestones separate from the continuous points total, giving members collectible, specific achievements to target alongside the ongoing points and streak system, the same two-track motivation structure Duolingo uses with achievement badges layered over daily XP.
Related
This is the ninth build in a series on cloning well-known platforms with self-hosted WordPress plugins. Unlike the others, this one is an engagement layer meant to be added on top: pair it with the Udemy-style course marketplace to reward course completions, the Reddit-style community forum to reward active discussion, or the Medium-style publishing platform to reward writers who publish consistently. See the full series: LinkedIn-style networking, Meetup-style events, Instagram-style photo sharing, Yelp-style business directory, Fiverr-style service marketplace, Netflix-style protected video, and Twitter/X-style polls.
Get Started
Get WB Gamification to add points, streaks, and a leaderboard to your site. If you want the exact look shown in this guide, BuddyX Pro is the theme used throughout.
Related reading