What we learned
What's next for SiftMod
SiftMod - Report Abuse Triage
SiftMod helps Reddit moderators handle report abuse without repeatedly reading harmful custom report text. It clusters report floods, masks abusive report reasons, generates concise evidence summaries, and lets mods review or ignore noisy reports from a simple moderator menu workflow.
Inspiration
Moderators already spend a lot of emotional energy reviewing difficult content. Report abuse adds another layer: bad actors can weaponize custom report text to harass mods, flood the queue, or bury real issues under repeated reports.
SiftMod was inspired by a simple question: what if report review could be grouped, summarized, and made less exposing for moderators?
What It Does
SiftMod listens for post and comment report events, stores report incidents in Redis, and clusters them by:
- reported target thing ID
- normalized report reason fingerprint
- configurable time window
When a pattern looks suspicious, SiftMod creates an explainable evidence packet showing:
- why the incident was flagged
- report counts and time window
- masked report reason preview
- matched abuse categories
- recommended moderator action
- known API limitations
Moderators can open SiftMod from the post/comment menu, mark incidents reviewed, add an internal note, and optionally call Reddit ignoreReports() on noisy targets.
How I Built It
SiftMod is built as a Devvit web server app using TypeScript and Hono. Report triggers write structured incidents to Redis. Moderator menu actions render Devvit forms for summaries, queue views, diagnostics, and review actions.
The app uses subreddit install settings for masking, keyword/regex patterns, flood thresholds, time windows, modmail notification preferences, and seed data for development testing.
The core detection model is intentionally transparent:
[ severity = f(report\ count,\ repeated\ reason,\ keyword\ match,\ target\ flood) ]
Instead of pretending to know who reported something, SiftMod only works with metadata that Devvit exposes.
Challenges
The biggest challenge was designing around privacy and API limits. Devvit report triggers expose report reason metadata, but not anonymous reporter identity. SiftMod handles that by never claiming attribution and by focusing on clustering, masking, and evidence summaries.
Another challenge was demo reliability: moderators cannot always create realistic report flows alone in private test communities. To solve that, SiftMod includes clearly labeled seed incidents and diagnostics so the moderation workflow can be tested without misrepresenting real report data.
What I Learned
I learned how to build practical moderation workflows with Devvit triggers, Redis persistence, install settings, and moderator menu actions. We also learned that explainability matters: moderators need to know why an incident was flagged before trusting automation.
What's Next
Next steps include a richer incident history view, more configurable severity rules, exportable evidence packets, and safer team-level workflows for large mod teams handling coordinated report floods.
Built With
- devvit
- hono
- node.js
- typescript
- vite
Log in or sign up for Devpost to join the conversation.