Tagline

See who's reviewing what. Eliminate double-actions. Cut queue time in half.


Inspiration

When three mods jump on the same brigade-spike, two of them act on the same item -- one undoes the other. The current modqueue gives you no signal that a teammate is already on a report. Mod teams resort to Discord pings.

Sankofa Mod is the in-product coordination layer the modqueue should have had all along. The name comes from the Akan principle of going back to retrieve what you've left behind -- exactly what mod work is: context, history, your team's footprints.


What it does

A drop-in panel installed once per subreddit. Open the Sankofa Mod post and every mod sees the same coordination layer.

  • Live presence -- see which mods are online and what each is reviewing.
  • Atomic claims -- one click locks an item; other mods see the lock instantly. 5-min auto-expire.
  • Smart sort -- human reports first, severity, trending, newest.
  • Severity bands -- color-coded by your custom reason->severity rules.
  • User context card -- account age, sub history, mod notes, recent team actions, all inline.
  • Per-item discussion -- internal mod thread per queue item. Future mods see the rationale.
  • AI assist (Claude, optional) -- 2-line thread summary + suggested action with cited rule. Mod always confirms.
  • Live action feed -- every team action streamed in real time.
  • Daily brief -- modmail digest each morning: actions today, top mods, collisions prevented.
  • Keyboard-first -- j/k navigate, c claim, a/r/b act, ? for help.

Mod-only access is enforced at the permission layer.


How we built it

Devvit Web 0.12.22 (custom post + 7 triggers + scheduler + menu) | React 18 + Vite + Tailwind webview | Devvit Redis + Realtime channels for state and fan-out | Direct fetch to api.anthropic.com (Haiku 4.5 for summaries, Opus 4.7 for suggestions) | 43 Vitest unit tests for pure server logic.

The architectural pivot that made it work: In September 2025, Reddit shipped a server-side Hide untrusted reports filter that excludes low-trust reports from every public listing API. Polling getModQueue() returns the wrong thing. We rebuilt the queue as an event-driven Redis index fed by six triggers (PostReport, CommentReport, Automod*, *Submit-when-filtered) and trimmed by ModAction. Items reflect the actual report stream now.


Challenges

  • The hidden modqueue. Spent two days debugging an empty queue before we found the Sept 2025 filter. 36-hour pivot to event-driven indexing.
  • CommentV2 author resolution. In this SDK version, author is the t2_-prefixed account id, not the username. Built a resolver that detects t2_ candidates and falls back to getUserById().
  • Devvit Redis quirks. No SCAN, no per-field hash TTL, set() wants a Date not seconds, zRange(0, -1) doesn't mean "everything". Each cost a real evening.

What we're proud of

  • Concept-complete in 8 days.
  • 43 tests, all passing on every commit.
  • A genuine architectural insight (event-driven > polling for Devvit moderation apps) we'll write up for r/Devvit after the hackathon.
  • Visual identity that means something -- the Sankofa palette, the Adinkra glyph, the proverb in the footer all tie back to the moderation-as-recovery metaphor.
  • Graceful degradation everywhere: AI without an API key, deleted accounts, malformed Redis blobs -- all handled without crashing.

What's next

  • Subreddit-specific rule packs (r/AskHistorians citation rule, r/science peer-review rule).
  • Mobile-first webview redesign.
  • Optional outbound webhook so subs that already run a Discord mod-channel keep their alerts.

Tool Overview

Sankofa Mod is a coordination layer that sits on top of any subreddit's modqueue. Mods install once, and every mod gets:

  • An event-driven queue that bypasses Reddit's "Hide untrusted reports" filter by listening to triggers instead of polling listings.
  • Atomic per-item claims with realtime broadcast -- first mod to click wins, others see the lock instantly. Collisions are counted in the daily brief.
  • Live presence -- heartbeat every 30s, see who's focused on what.
  • Inline user context -- account age, sub-scoped post/comment/removal counts, native mod notes (read + write), recent team actions.
  • Per-item internal mod discussion that persists across sessions.
  • Optional Claude-powered AI assist -- thread summaries (Haiku) + suggested actions (Opus). Always opt-in, mod always confirms, mods always provide their own API key.
  • Daily modmail brief at 9 AM (configurable) with actions taken, top 5 mods, and collisions prevented.
  • Full keyboard control for power-user mods.

Mod-only at every layer (permission gate on every RPC). All state lives in Devvit Redis, scoped per-subreddit. Settings panel for severity rules, sort defaults, brief schedule, AI on/off, and a danger-zone full reset.

Project Impact

r/AskHistorians (~2.1M subscribers, ~30 mods) -- Their AMA-day comment-report floods are exactly what claims + presence solve. Estimated 40-60% reduction in double-actioned comments during high-traffic AMAs, plus the end of the Discord side-channel for "is anyone on this?" pings.

r/science (~33M subscribers, ~50 mods) -- Borderline science-news posts need domain context (peer-reviewed source? predatory journal?). The user-context card + per-item discussion let one mod's research carry to the next mod without repeating the lookup. Estimated ~30% faster resolution time on borderline posts, plus institutional knowledge that survives team turnover.

r/relationships (~3.8M subscribers, ~25 mods) -- Recurring brigading on hot posts means 200+ angry comments per item. The AI thread-summary compresses tone in 2 lines so every mod doesn't have to scroll. Estimated ~50% reduction in time-per-decision on heavy-comment posts.

Built With

Share this project:

Updates