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:

  1. 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.
  2. 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.
  3. 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/k to move through the queue, a/r to 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
  • reddit
  • vitest
Share this project:

Updates