10 min read

How to Build a Duolingo-Style Points, Streaks, and Leaderboard Platform on WordPress

Shashank Dubey
Content & Marketing, Wbcom Designs · Published Sep 16, 2026 · Updated Sep 16, 2026
Build your own Duolingo streak system on WordPress using WB Gamification and BuddyX Pro

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.

Gamification dashboard showing points, level progress, badges earned, and day streak, built with WB Gamification on WordPress
The gamification dashboard, points total, current level with progress toward the next, badges earned (3 of 37 available), and a day streak counter showing both current and best streak.

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.

Leaderboard with ranked members, points, and level progress, built with WB Gamification on WordPress
The leaderboard, your current rank and level progress at the top, a time-window toggle (All Time / This Month / This Week), and a ranked list of top contributors with their point totals.

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

Does WB Gamification only work with other Wbcom plugins, or can it reward any custom action?

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.

Why does the leaderboard show three different time windows instead of just one ranking?

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.

What happens to a streak if a member misses a day?

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.

Is this a standalone platform, or does it need to be paired with something else?

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.

Can badges be tied to specific milestones like a 7-day streak or a completed course?

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.

Shashank Dubey
Content & Marketing, Wbcom Designs

Shashank Dubey, a contributor of Wbcom Designs is a blogger and a digital marketer. He writes articles associated with different niches such as WordPress, SEO, Marketing, CMS, Web Design, and Development, and many more.

Related reading