Collision Guard
Inspiration
Reddit's volunteer moderators are the invisible backbone of the platform. They manage thousands of reports daily, across multiple tabs, often with entire mod teams working simultaneously with zero coordination layer.
The problem we kept hearing about: two mods open the same reported post, both take action, and the work is duplicated or contradicted. Academic research published in 2025 and 2026 explicitly names this "collision" problem as a source of wasted effort and moderator burnout. No existing Devvit app addressed it. So we built the first one.
What It Does
Collision Guard is a real-time coordination layer for Reddit mod teams. It prevents moderators from accidentally duplicating work on the same reported item by showing instantly who is already reviewing it.
Core features:
- Claim for Review — A mod opens a reported post or comment and clicks "Claim for Review" from the context menu. An atomic Redis lock is written instantly, visible to all moderators.
- Collision Warning — If a second mod tries to claim the same item, they immediately see: "u/[ModName] is already reviewing this." They can skip it and work on something else, zero duplicated effort.
- Release Lock — When a mod finishes reviewing, they click "Release Lock" to free the item for the team. Locks also auto-expire after 5 minutes if no action is taken, so nothing gets stuck.
- Live Dashboard — A pinnable custom post that shows every mod team member exactly what the whole team is reviewing right now. Updates in real time without refreshing. Shows who holds each lock, how long they've had it, and how much time remains before auto-expiry.
- Non-blocking design — Collision Guard never prevents a mod from acting. It warns and coordinates without getting in the way of urgent moderation decisions.
How We Built It
Built entirely on Devvit, Reddit's developer platform, in TypeScript.
Tech stack:
@devvit/public-api— Devvit framework for menu items, custom posts, triggers, and scheduler jobs@devvit/redis— Atomic SET NX locking with TTL auto-expiry. First writer wins. Race conditions handled at the database level.@devvit/realtime— Live broadcasts on themod-lockschannel. Dashboard updates instantly when any mod claims or releases a lock.- Devvit Scheduler — A cleanup job runs every minute to prune expired lock index entries and broadcast TTL expiry events. Key engineering decisions:
- Atomic locking with SET NX — We use Redis
SET NX(only set if not exists) to guarantee that when two mods click "Claim" at the exact same millisecond, only one wins. No race conditions, no conflicts. - TTL auto-expiry — Every lock has a 5-minute TTL. If a mod walks away without releasing, the lock disappears automatically. Nothing ever gets permanently stuck.
- Graceful degradation — Every Redis and API call is wrapped in try/catch. If a broadcast fails, the lock still works. If the dashboard can't load, mods can still use the menu items. The app never blocks moderation.
4. Non-blocking by design — Mods can always approve, remove, or spam directly without claiming first. Collision Guard improves coordination without adding friction to emergency decisions.
Challenges We Ran Into
- Devvit's Redis wrapper uses
expiration: Daterather than the standardex: secondsdiscovering this required careful SDK inspection rather than relying on standard Redis documentation. - Custom post rendering in Devvit requires the
useStateasync initializer pattern standard React patterns don't apply directly.
- Menu items only appear with the playtest parameter in the URL, which took careful testing to discover and document.
Accomplishments We're Proud Of
- First Devvit app to solve the mod collision problem
- Full atomic locking with zero race conditions
- Real-time dashboard that updates without any page refresh
- Clean, non-blocking UX that respects mod autonomy
What We Learned
- Devvit's Redis and Realtime capabilities are genuinely powerful for coordination tools , the infrastructure is already there, it just needed the right use case
- Moderator tooling is underserved and simple coordination primitives (locks, presence awareness) that are standard in professional software don't exist yet in Reddit's ecosystem
- The Devvit platform is beginner-accessible with the right scaffolding
What's Next
- Configurable TTL — Let mod teams set their own lock timeout (5, 10, or 15 minutes) via app settings
- Mod presence indicator — Show a subtle badge on queue items directly, not just in the dashboard
- Lock history log — Track who reviewed what and when, for mod team accountability
- Multi-subreddit support — Already architected (locks are scoped per subreddit), just needs publishing to more communities
- Reddit Developer Funds — After launch, target engagement milestones for ongoing funding
Project Impact
Reddit has hundreds of thousands of moderated communities. Any subreddit with more than one active moderator benefits from Collision Guard.
Primary targets:
- r/worldnews — 12+ active moderators handling thousands of daily reports. Collisions are a daily occurrence.
- r/AskReddit — 20+ moderators, extremely high report volume. Coordination overhead is significant.
- Any mid-size subreddit (10k–500k members) — These communities have 3–8 mods who are most vulnerable to collision burnout because they lack the tooling of large communities but have real volume. Academic research (CHI 2025/2026) documents mod collisions as a measurable source of burnout and reduced moderation quality across Reddit. Collision Guard is the direct, deployable solution.
Built With
- Devvit
- TypeScript
- Redis (via @devvit/redis)
- Realtime (via @devvit/realtime)
- Reddit API (via @devvit/public-api)
Built With
- api
- devvit
- realtime
- redis
- typescript
Log in or sign up for Devpost to join the conversation.