PHPackages                             hubertusanton/silverstripe-leaderboard - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. hubertusanton/silverstripe-leaderboard

ActiveSilverstripe-vendormodule[Utility &amp; Helpers](/categories/utility)

hubertusanton/silverstripe-leaderboard
======================================

A gamification module for SilverStripe CMS that adds scoring, levels, and badges for CMS users

00PHP

Since Sep 24Pushed 7mo agoCompare

[ Source](https://github.com/hubertusanton/silverstripe-leaderboard)[ Packagist](https://packagist.org/packages/hubertusanton/silverstripe-leaderboard)[ RSS](/packages/hubertusanton-silverstripe-leaderboard/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

SilverStripe Leaderboard 🏆
==========================

[](#silverstripe-leaderboard-)

This module is created on the Stripecon 2025 HackDay by acronica team

A gamification module for SilverStripe CMS that adds scoring, levels, and badges for CMS users. Transform content creation into an engaging experience!

Features
--------

[](#features)

### 🎯 Scoring System

[](#-scoring-system)

- **Page Creation**: 10 points
- **Page Edit**: 3 points
- **Page Publication**: 5 points
- **Page Deletion**: 2 points

### 🎮 Level System

[](#-level-system)

Users progress through funny levels based on their total score:

- 🥺 **CMS Newbie** (0+ points)
- 🤓 **Page Padawan** (50+ points)
- 🪄 **Content Conjurer** (150+ points)
- ✨ **Edit Enthusiast** (300+ points)
- 🚀 **Publishing Pro** (500+ points)
- 👑 **CMS Champion** (750+ points)
- 🌟 **Digital Deity** (1000+ points)
- 🧙‍♂️ **Website Wizard** (1500+ points)
- 👹 **Content Overlord** (2000+ points)
- ⚡ **The Chosen One** (3000+ points)

### 🏅 Badge System

[](#-badge-system)

Extensible badge system with fun achievements:

- **First Steps** 👶 - Create your first page
- **Page Creator** 📄 - Create 10 pages
- **Content Machine** 🏭 - Create 50 pages
- **Editor in Chief** 📝 - Make 25 edits
- **Rapid Fire** 🔥 - 5+ actions within an hour
- **The Destroyer** 💀 - Create then immediately delete
- **Streak Master** 🔥 - Work 7 consecutive days
- **Night Owl** 🦉 - Work between 10pm-6am
- **Early Bird** 🐦 - Work between 5am-8am
- **Perfectionist** 💎 - Make 10+ edits
- **Century Club** 💯 - Reach 100 points
- **High Achiever** 🎯 - Reach 500 points

### 📊 Leaderboard Interface

[](#-leaderboard-interface)

- View top performers with rankings
- Display user levels, scores, and badges
- Show activity streaks
- Overall statistics dashboard

### 👤 Member Profile Integration

[](#-member-profile-integration)

- Leaderboard stats added to member profiles in CMS
- View individual user progress and achievements

Installation
------------

[](#installation)

```
composer require hubertusanton/silverstripe-leaderboard
```

Setup
-----

[](#setup)

1. Run database migration:

```
vendor/bin/sake dev/build flush=1
```

2. Populate default badges:

```
vendor/bin/sake dev/tasks/populate-leaderboard-badges
```

3. Access the leaderboard in the CMS admin menu (🏆 Leaderboard)

Usage
-----

[](#usage)

The module automatically tracks user activity and awards points/badges. Users can view:

- Their progress in their member profile (Leaderboard tab)
- The global leaderboard in the admin interface
- Badge collection and achievements

Extending
---------

[](#extending)

### Custom Badges

[](#custom-badges)

Create custom badges by adding records to the Badge model or extend the badge checking logic in `LeaderboardService::meetsRequirements()`.

### Custom Scoring

[](#custom-scoring)

Modify point values in `LeaderboardService::SCORES` constant or extend the service to add new activities.

Requirements
------------

[](#requirements)

- PHP 7.4+ or 8.0+
- SilverStripe Framework ^4.0 or ^5.0
- SilverStripe CMS ^4.0 or ^5.0

###  Health Score

16

—

LowBetter than 5% of packages

Maintenance44

Moderate activity, may be stable

Popularity0

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity13

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/620a71b0219e7a3b9cec3626c6b023c9f4fa6b2c142a183887c343bf4d7ee195?d=identicon)[hubertusanton](/maintainers/hubertusanton)

---

Top Contributors

[![hubertusanton](https://avatars.githubusercontent.com/u/582188?v=4)](https://github.com/hubertusanton "hubertusanton (7 commits)")

### Embed Badge

![Health badge](/badges/hubertusanton-silverstripe-leaderboard/health.svg)

```
[![Health](https://phpackages.com/badges/hubertusanton-silverstripe-leaderboard/health.svg)](https://phpackages.com/packages/hubertusanton-silverstripe-leaderboard)
```

###  Alternatives

[saad-tazi/g-chart-bundle

A super simple Bundle that facilitate the usage of Google Chart Tool, Google Chart Image API and Google Infographics.

20167.1k](/packages/saad-tazi-g-chart-bundle)[alexanderschnitzler/phpstorm.meta.php-typo3

This package contains a .phpstorm.meta.php file which can be used to ease the work with TYPO3 projects in phpstorm.

2157.4k](/packages/alexanderschnitzler-phpstormmetaphp-typo3)[jenky/laravel-plupload

Plupload package for Laravel 5

2919.5k](/packages/jenky-laravel-plupload)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
