Inspiration
Moderators on busy subreddits face the same problem every day: the mod queue is a FIFO pile of reports. A scam post, a routine disagreement, and a duplicate link all look the same until you open each one. During the Reddit Mod Tools hackathon, we asked: what if mods had hospital-style triage for their queue—see the worst items first, with a clear why, before taking action?
We were inspired by how crowded the “AI moderation” space is—and deliberately chose not to build another black-box toxicity scorer. Instead we built queue intelligence: fast heuristics, your subreddit’s own wiki rules, and an explainability panel mods can trust.
What it does
TriageGuard is a Devvit mod tool that:
- Ingests reported and Automoderator-filtered posts and comments via Reddit triggers.
- Scores each item (0–100) using heuristics: report volume, account age, karma, blocked domains, keywords, repeat offenders, and Automod reasons.
- Prioritizes items into bands: Critical, High, Routine, and Likely OK.
- Explains urgency in a polished dashboard—bulleted “why prioritized,” a matched wiki rule quote, and a non-binding suggested action (e.g. likely remove).
- Enables action via mod menu: Approve, Remove (with
REMOVEconfirmation in audit mode), and Open Dashboard.
Mods open a pinned TriageGuard — Mod Triage custom post (moderator-only) instead of scrolling the native queue blindly. The tool does not replace Reddit’s mod queue UI—it provides a parallel, prioritized work list with deep links.
How we built it
We built on Reddit Devvit (@devvit/public-api):
- Triggers:
PostReport,CommentReport,AutomoderatorFilterPost,AutomoderatorFilterComment, plusAppInstallto seed a dashboard post and wiki cache. - Scoring engine: Pure TypeScript in
src/config/scoring.ts, unit-tested with Vitest. - Storage: Installation-scoped Redis sorted set for open items (
tg:openby urgency score). - Rules: Wiki page fetch + 24h cache; fallback rule pack if wiki is empty.
- Optional enrichment: Groq (
llama-3.1-8b-instant) for Critical/High items—structured JSON formatchedRuleandoneLineWhy, with rate limiting and cache. - UI: Devvit Blocks custom post dashboard with dark theme, band filters, and expandable explain panel (our primary UX investment).
Architecture, deployment, and UI specs live in docs/ARCHITECTURE.md, docs/DEPLOYMENT.md, and docs/UI_UX.md.
Challenges we ran into
- No native mod queue API — Devvit cannot reorder Reddit’s queue. We reframed the product as a triage command center with deep links, not “we sort your queue.”
- Blocks UI limits — Inline approve/remove on the dashboard isn’t reliable; we routed destructive actions to post/comment menus + confirmation forms.
- Crowded hackathon category — Many teams ship “AI mod queue” tools. We differentiated with wiki-aligned rules, heuristic explainability without LLM, and audit mode by default.
- Scope vs. deadline — We cut modmail alerts, raid signals, and duplicate clustering to ship a polished explain panel and killer demo path.
useAsync+ JSON — Dashboard state had to serialize triage items for Devvit’s Blocks hooks.
Accomplishments that we're proud of
- A screenshot-ready explain panel that shows band, confidence/score, signals, and quoted wiki rules—designed for Moderator’s Choice judges.
- Zero-config heuristics that work on install; LLM is enrichment, not a dependency.
- Audit-first design:
auditModedefaults on; removals require typingREMOVE. - Full SRS-driven build with judging traceability, tests, and documentation.
- End-to-end flow: report → Critical band → explain → menu remove → cleared from triage list.
What we learned
- Moderators trust explainability more than model sophistication—a clear “why prioritized” beats another risk score.
- Rule-aware moderation (wiki citations) is a stronger story than generic “AI moderation” on Devvit.
- Devvit’s trigger + Redis + custom post pattern is enough for a credible hackathon MVP if scope is ruthlessly protected.
- Positioning matters: queue intelligence for moderators resonates; “LLM moderation” does not.
What's next for TriageGuard
- Devvit Web + React client for split-pane list + sticky explain sidebar.
- Modmail alert on new Critical items (stretch cut from MVP).
- URL duplicate clustering for spam waves.
- App Directory launch and Reddit Developer Funds eligibility as installs grow.
- Optional: per-sub LLM opt-in vs. developer-funded keys for v1.
Built With
- devvit
- groq
- node.js
- typescript
- vitest
Log in or sign up for Devpost to join the conversation.