Devpost "Project Story" — paste into the About field
Inspiration
Reddit's own modqueue already has single-mod context panels — click an item, see it in context; click a username, see their history. So we started by asking: with those panels already shipped, why do moderators still struggle?
The answer was in the research. The CHI 2026 study "Think about it like you're a firefighter" watched moderators use exactly those native panels and still measured a 74.5% action-collision rate — two mods unknowingly acting on the same item — and found 84% of mods leave the queue mid-review. Cornell Tech's 2025 mod survey named AI-generated content the "most threatening concern" moderators face. And in March 2026, Reddit introduced moderation thresholds that demod inactive mods — making every wasted minute existential.
The gap was clear: every existing tool, native or third-party, is single-mod. None coordinates a team in real time. That's the tool we built.
What it does
ModRelay is a Devvit app that pins a live moderation dashboard inside a subreddit. Three features, each closing a gap the native panels don't:
- Real-time collision avoidance. Every mod viewing the dashboard appears in a live presence strip. The instant one mod opens an item, every other mod sees a colored "reviewing" badge in under a second. No native Reddit tool does this — it's the exact gap the research found.
- A shared, computed trust signal. Triggers feed every PostSubmit, ModAction, and PostReport into Redis, aggregated into an explainable 0–100 trust score: account age, karma trajectory, removals split between mod and AutoMod, flair churn. Reddit's user panel shows raw history per-mod, behind a click; ModRelay turns it into one score the whole team sees at the same time.
- AI-suspected lane. A 30-second scheduler ships each new post to Claude Haiku 4.5 (via OpenRouter). Likely-AI posts land in a separate lane with the specific signals the model found. At $1 per million input tokens, it's the first frontier model cheap enough to scan every post — and it never auto-acts; every decision stays a human click.
How we built it
ModRelay is built on Devvit Web: a React + Tailwind webview client, an Express server exposing /api/* (client) and /internal/* (triggers, scheduler, menu) endpoints, and a thin Blocks shell that mounts the webview. Five Devvit primitives are load-bearing — strip any one and the product fails:
@devvit/realtime— presence + claim broadcasts (the primitive no Devvit mod tool had used)- Triggers — capture every moderation-relevant event
@devvit/redis— per-sub queue, per-user dossier, claims with TTL, telemetry- Custom post + webview — the in-queue dashboard, so mods never leave
- Scheduler — batches AI classification economically
A daily $5 server-side spend cap guards the AI calls. The mod-time-saved counter in the footer is computed deterministically from collisions prevented, AI pre-screens, and dossier lookups.
Challenges we ran into
- The platform pivot. Our initial plan targeted the older
Devvit.addX()Blocks API; current Devvit is Devvit Web (client/server split). We caught it on day zero by reading the live docs and re-architected before writing feature code. - No
getModQueue(). Devvit Web doesn't expose a modqueue read, so we reconstruct the queue from triggers into Redis — documented honestly as "best-effort sync." - The competitive discovery. Mid-build we realized Reddit's native panels overlapped our dossier. Rather than pivot away, we leaned into the research: the panels exist and the data still shows 74.5% collisions, because they were never built for teams. That sharpened our positioning instead of breaking it.
- Realtime constraints. Channel names can't contain
:; claims needed heartbeat-extended TTLs so a mod's claim survives while they're actively reviewing but expires if they walk away.
Accomplishments that we're proud of
- 281 tests, 100% line/branch/function/statement coverage on the server
- Five load-bearing Devvit primitives, no decoration
- A trust score that's transparent and explainable — no black-box ML, because mods have to justify actions to the users they moderate
- Caught and absorbed a real competitive threat (Reddit's native panels) mid-build by sharpening the positioning around the multi-mod gap instead of abandoning the idea
What we learned
The strongest products don't out-feature the platform — they fill the gap the platform's own research exposes. Reddit shipped single-mod panels; the peer-reviewed data showed the team-coordination gap remained. Building for that gap, complementary to Reddit's existing safety stack, was a better bet than competing with it.
We also learned to make the host's most advanced primitives load-bearing: using @devvit/realtime — the primitive every Devvit game uses but no mod tool had — is what makes ModRelay impossible to replicate as a generic web app.
What's next for ModRelay
- Cross-subreddit dossier. Today the trust signal is per-community. A privacy-reviewed, opt-in cross-sub view would help mod teams that run networks of related subreddits spot bad actors moving between them.
- Power-mod keyboard navigation.
j/kto move through the queue,a/rto approve/remove without leaving the keyboard — the kind of speed serious mods expect. - First-party model swap. The AI lane routes through OpenRouter today; if Reddit ships a first-party inference path, ModRelay drops the one external dependency entirely.
- Native modqueue read. When Devvit Web exposes
subreddit.getModQueue(), we replace the trigger-driven best-effort queue with the canonical source. - Reddit Developer Funds. ModRelay is built to qualify — first-party primitives, real engagement metrics, complementary to Reddit's safety stack — so it can keep improving past the hackathon.
Built With
- claude
- devvit
- openrouter
- vitest
Log in or sign up for Devpost to join the conversation.