Inspiration

Every Reddit moderator has had this moment - you remove a spammy post, ban the account, and move on. But two days later, five more accounts are doing the exact same thing, promoting the same sketchy domain, across four different subreddits.

You weren't dealing with a user. You were dealing with a campaign. And by the time you realized it, it had already spread.

Spam rings, affiliate promotion networks, karma-farming groups, and ban-evasion clusters often operate across multiple accounts and communities, making them difficult to detect manually.

The challenge isn't identifying a bad post. It's identifying the network behind it.

A moderator may ban one account today, only to discover days later that the same campaign was operating through multiple accounts, domains, and communities all along. By the time the pattern becomes obvious, the damage is already done.

I built Sentinel to surface those hidden relationships early, giving moderators visibility into coordinated behavior before it spreads across Reddit.

Sentinel - not another content filter, but a proactive intelligence layer that helps moderators see the campaign behind the account to uncover hidden relationships between accounts, domains, content, and communities before abuse spreads.


What It Does

Sentinel is a moderation intelligence platform that helps moderators uncover coordinated abuse campaigns rather than isolated bad individuals.

Instead of evaluating accounts one at a time, Sentinel correlates activity across users, domains, content patterns, and communities to reveal the broader campaign operating behind the scenes.

Sentinel Dashboard

Instead of asking "is this post suspicious?", Sentinel asks "is this account connected to a network of suspicious behavior?"

Here's what it surfaces:

  • Campaign Detection & Clustering - automatically groups related accounts into named campaigns using shared domains, duplicate content, behavioral timing, and cross-subreddit patterns
  • Explainable Risk Scoring - every account gets a score, and every score comes with a breakdown. No black boxes
  • User Intelligence Center - deep-dive on any account: posting velocity, domain reuse history, campaign memberships, ban-evasion similarity
  • Cross-Subreddit Heatmaps - see exactly how an abuse campaign is spreading across communities in real time
  • Investigation Timelines - a full evidence trail for every flagged campaign, ready for moderator review
  • AI-Assisted Summaries (optional) - Gemini 3.5 Flash or GPT-4o-mini can write a plain-English investigation brief on demand

How I Built It

Sentinel was built using Devvit, TypeScript, Redis, and Reddit's moderation tooling ecosystem.

The core of Sentinel is a real-time detection pipeline that runs on every post submission via Devvit's PostSubmit trigger.

Reddit Activity
      ↓
Feature Extraction     <-  account age, karma, domain, content hash, velocity
      ↓
Signal Scoring         <-  each signal adds weighted points to the risk score
      ↓
Campaign Correlation   <-  link this account to existing campaigns via shared signals
      ↓
Evidence Generation    <-  record exactly what fired and why
      ↓
Moderator Dashboard    <-  surface findings with full context

How works

Signals Analyzed

  • Fresh Account Detection
  • Low Karma Detection
  • Domain Reuse Detection
  • Posting Velocity Analysis
  • Cross-Subreddit Activity
  • Campaign Clustering
  • Behavioral Correlation

The risk score is transparent by design - moderators see the exact signals that fired, not just a number:

+40  Shared Domain Cluster
+25  Cross-Subreddit Spread
+15  Fresh Account (< 30 days)
+11  Velocity Signal
─────────────────────────
 91  Total Risk Score

Everything is stored in Redis - campaigns, account graphs, domain indexes, investigation histories. Devvit's Blocks UI powers the dashboard, and the Fetch API handles optional AI summary calls.

The hardest problem wasn't detecting suspicious behavior - it was making every detection explainable.

Moderators need evidence they can trust. Every risk score, campaign link, and alert in Sentinel is backed by transparent signals, evidence trails, and investigation timelines so moderators can understand exactly why a campaign was surfaced.


Challenges

Campaign correlation was genuinely hard. Individual accounts are designed to look clean. Connecting them required building a multi-signal graph: same domain + similar posting times + overlapping subreddit history + account age cluster = campaign. Any one signal alone is noise. Together, they're a pattern.

Redis data modeling - Devvit's Redis isn't a graph database, so I had to design index structures that could answer questions like "which campaigns share this domain?" and "which accounts are behaviorally similar?" efficiently. That required some creative key design.

And one of the biggest challenges was building a system that was both effective and explainable.

Moderators need more than alerts - they need clear evidence and confidence in the decision-making process.


Accomplishments I'm Proud Of

  • Built a complete moderation intelligence platform on Devvit from detection to investigation
  • Designed a campaign clustering system that correlates accounts, domains, and community activity without requiring a graph database
  • Developed explainable risk scoring with evidence-backed investigations and timelines
  • Created cross-subreddit intelligence visualizations that reveal how abuse campaigns spread between communities
  • Delivered a moderator experience focused on investigation speed, transparency, and actionability with proper UX.

Most importantly, Sentinel changes the moderation workflow from reviewing individual accounts to investigating coordinated campaigns.


What I Learned

The biggest lesson was that coordinated abuse rarely reveals itself through a single piece of content.

The strongest signals emerge from relationships between accounts, domains, timing patterns, and communities. Once moderation is viewed as a network problem rather than a content problem, entirely new detection opportunities become possible.

You can't catch it by reading posts. You catch it by reading the network. That reframe - from "is this content bad?" to "is this account connected to bad behavior?" - was the design principle that everything else followed from.

On the technical side, I got deep into:

  • Event-driven detection pipelines on Devvit
  • Redis data modeling for graph-like queries without a graph DB
  • Building trust & safety tooling that operators actually trust
  • Designing UX for high-stakes, time-pressured workflows

What's Next

Campaign Investigation

Sentinel works. But there's a lot more signal left on the table:

  • Comment-level intelligence - campaigns don't just post, they comment too
  • Reputation graphs - visualize account relationship networks interactively
  • Cross-community threat tracking - alert moderators in community B when community A bans a campaign
  • Moderator collaboration - shared blocklists, investigation handoffs, team workflows
  • Stronger ban-evasion detection - username patterns, device fingerprints, behavioral biometrics

The long-term vision is simple: moderators shouldn't have to manually connect the dots between accounts, domains, and communities.

Sentinel should identify those relationships automatically, explain them clearly, and surface actionable intelligence before coordinated abuse becomes visible to the wider community.

Reddit moderation at scale deserves intelligence at scale.

Share this project:

Updates