Inspiration

Moderators often deal with karma-farming accounts that post repeated, low-effort content to build account credibility. Each post may look harmless on its own, but across a community it creates noise, wastes moderator time, and can make authentic discussion harder to maintain.

I built KarmaKarma to give moderators an early-warning system for this kind of behaviour. Instead of relying only on keywords or manual reports, KarmaKarma looks at behavioural patterns and gives moderators a dashboard where they can review, audit, and reverse decisions.

What It Does

KarmaKarma is a Reddit Devvit moderation app that scores users based on signals such as post velocity, repeated titles, account age, karma velocity, report rate, and crossposting behaviour.

When an account crosses configurable thresholds, Karma moves it from normal status to watch, then into Gambit. Gambit posts are removed from the public subreddit feed and tracked in a live moderator dashboard.

Moderators can:

  • View active Gambit users
  • Review suppressed posts
  • Inspect signal breakdowns behind each score
  • Graduate users back to normal posting
  • Exempt trusted users
  • Permaban clear bad actors
  • Manually force an obvious miss into Gambit

The goal is to reduce repetitive moderation work while keeping decisions configurable, auditable, and reversible.

How I Built It

I built KarmaKarma with TypeScript on Reddit’s DevVit platform.

The app uses Devvit triggers to listen for post submissions, comment submissions, and reports. It stores user records, post records, subreddit configuration, stats, watch lists, and Gambit lists in Devvit Redis.

The scoring engine is deterministic and based on normalised behavioural signals. Devvit Blocks power the moderator dashboard, which is automatically created as a custom post when the app is installed.

I also added scheduled jobs for score decay and stats refresh, plus debug-gated tools so moderators can manually run jobs during testing.

Challenges

One challenge was tuning the scoring system so it would catch repeated suspicious behaviour without instantly punishing normal users. I tested the app with a real non-moderator account and adjusted the recommended thresholds to make the system conservative by default.

Another challenge was building a polished dashboard inside Devvit Blocks. Since Blocks do not behave like a normal scrollable web page, I had to redesign the dashboard around compact panels, detail views, and pagination.

I also had to work through Devvit API version differences, Redis sorted-set behaviour, and live app installation/testing on Reddit.

What I Learned

I learnt how to build a full Devvit moderation workflow end-to-end: triggers, Redis persistence, custom posts, settings, scheduler jobs, menu actions, and app upload.

I also learned that moderation tools need more than automation. They need transparency, reversibility, and clear controls for moderators. Karma is designed around that principle.

What’s Next

Next, I would improve the signal model with more real-world testing, add more dashboard filtering, and expose richer audit history for moderation teams. I would also like to make the tool easier to tune per community size and posting volume.

Built With

Share this project:

Updates