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,
authoris the t2_-prefixed account id, not the username. Built a resolver that detects t2_ candidates and falls back togetUserById(). - Devvit Redis quirks. No
SCAN, no per-field hash TTL,set()wants aDatenot 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
- devvit
- typescript
Log in or sign up for Devpost to join the conversation.