🛡 Reddit Mod Tools Hackathon · May 27, 2026

ModStream

A real-time moderation dashboard built directly in Reddit — spam cluster detection, repeat-offender tracking, AutoMod rule suggestions, and one-tap actions in a single Devvit panel.

Devvit Web React 19 Tailwind 4 Hono tRPC Devvit Redis u/v0iddo
ModStream r/ExampleSub · live
14
Queue
6
Pending ≥2
31
Removed today
Spam clusters
follower-farm
high severity · commercial DM links
6 posts
external-link-farm
medium severity · repeated domains
3 posts
Repeat offenders
u/spammy_mcspam
4 violations · 12 reports
ban_30d
u/link_dropper_9
2 violations · 5 reports
muted
Mod queue
💰 DM me for 10k followers instantly
u/spammy_mcspam · post · 5 reports
Check out my site for free crypto tools
u/link_dropper_9 · comment · 3 reports

how it works

Pattern recognition for mod queues.

ModStream replaces the flat report list with a live, structured view — so mods act on evidence, not instinct.

📊

Live stats row

Queue length, pending items (≥2 reports), and items removed today. Colour-coded green→yellow→red based on severity thresholds.

🔍

Spam cluster detection

Regex-based pattern grouping across title+body. Surfaces follower farms, link farms, and commercial DM prompts before you open the first post.

🚩

Repeat offender panel

Users appearing multiple times in the queue are surfaced with violation count, total reports, and their last mod log action.

One-tap actions

Approve / Remove / Ban 30d / Mute — live Reddit API calls. Item disappears optimistically on success. No page reload.

💾

Redis caching

Dashboard data cached 60 seconds per subreddit. Absorbs rapid refresh cycles during active spam waves without burning Reddit API quota.

🎭

Demo mode fallback

Empty queue? ModStream auto-injects three realistic demo items so judges and new mods see the full interface immediately.

📋

AutoMod rule suggestion

When a spam cluster hits 3+ posts, ModStream generates a ready-to-copy AutoModerator YAML rule — detect the wave, then lock it down with one click.

build notes

Inside the Devvit Web stack.

Architecture

Two Devvit iFrame entrypoints:

  • splash.html — compact inline feed card, single API call, renders live stats in-feed
  • game.html — full expanded dashboard with clusters, offenders, queue, and action buttons

Backend runs on Devvit's serverless Node.js environment via Hono. tRPC v11 handles the client↔server type contract.

Cluster detection

Pattern matching against combined title + body text. Grouping signatures:

  • follower-farm (DM prompts, follower-count claims)
  • external-link-farm (repeated off-site domains)
  • commercial-promo (monetised offers, discount codes)
  • high-report-spike (≥4 reports in 2h window)

Constraints solved

  • Rate limits: parallel getReports calls absorbed by 60s Redis cache per sub
  • iFrame restrictions: window.open, alert, geolocation blocked — replaced with navigateTo + optimistic queue removal
  • Test environments: empty queue shows full UI via buildDemoData()

Install

npm install
npm run type-check   # ✓ zero errors
npm run build        # ✓ client + server
npx devvit login
npx devvit playtest <your-sub>

Requires moderator access to your target subreddit and Devvit CLI authentication.

judge-facing proof

Verified build, clean types.

TypeScript

npm run type-check passes with zero errors against exactOptionalPropertyTypes:true

✓ zero errors

Build

Vite production build: client/splash.html, client/game.html, server/ — all outputs verified

✓ build complete

App name

modstream · deployed as u/v0iddo · devvit.json and devvit.yaml present

✓ registered

Demo mode

buildDemoData() fires when queue is empty — judges see full interface on any test subreddit

✓ always renders

AutoMod YAML

generateAutoModRule() produces copy-ready AutoModerator YAML for any detected spam cluster with 3+ posts

✓ shipped 2026-05-16