Reddit "Mod Tools & Migrated Apps" Hackathon Submission
OfficialModRelay is a Devvit-powered mod team CRM (Customer Relationship Manager) that solves the #1 coordination problem for large subreddit mod teams: information dying when a shift ends.
Right now, when a mod signs off, there's no native Reddit way to:
- Tell the next mod who to watch out for
- Leave notes on specific users and posts that all mods can see
- Auto-generate a structured handoff so nothing falls through the cracks
OfficialModRelay fills that gap entirely.
Flag problem users with four escalation levels:
| Level | Meaning |
|---|---|
| 🟡 Low | Minor concern, keep an eye |
| 🟠 Medium | Recurring issues |
| 🔴 High | Serious repeat offender |
| 🚨 Critical | Imminent ban / safety concern |
- Set optional auto-expiry (24h, 7 days, 30 days)
- Automatically logs a note when a flag is set or cleared
- Cleared flags are archived (not deleted) for full audit trail
Leave structured notes on users and posts:
- Categories: General, Rule Violation, Escalation, Ban Warning, Positive/Resolved, Shift Note
- Notes persist in Redis — visible to all mods, all shifts
- Each note has a unique ID for easy resolving
- Notes show: author mod, time ago, target, category icon
One click generates a full handoff:
- Mod writes a shift summary + manual open items
- App auto-compiles all unresolved notes + active watch flags
- Posts a distinguished mod post to the subreddit
- Handoff is also stored in Redis so the dashboard can surface the last 3
A pinned interactive dashboard post showing:
- Watch List tab – all active watch flags with level, reason, flagging mod
- Mod Notes tab – 30 most recent notes, resolved/unresolved status, note IDs
- Handoffs tab – last 3 shift handoffs with summaries and open item counts
- See a problem user on a post → Post menu → "🚨 OfficialModRelay: Flag User for Watch"
- Need to leave context on a post → Post menu → "📝 OfficialModRelay: Add Note to Post"
- Need to note something about a user → Post menu → "👤 OfficialModRelay: Add Note to Post Author"
- Subreddit menu → "🔄 OfficialModRelay: Generate Shift Handoff" → type summary → post is auto-created
- Subreddit menu → "📊 OfficialModRelay: Open Dashboard" → pinned post with live data
- Subreddit menu → "✅ OfficialModRelay: Clear User Watch Flag" → clear a resolved situation
- Dashboard → Mod Notes tab → tap "✔ Resolve" on any note to resolve it directly
- r/AskReddit (34M+ members) – Massive mod team across timezones. Shift handoffs are a constant coordination challenge.
- r/worldnews (32M+ members) – Fast-moving news events require rapid escalation of bad actors across shifts.
- r/gaming (39M+ members) – Regular drama events, ban waves, and watch-listed users need cross-mod tracking.
- Average large subreddit mod spends 15–30 minutes per shift on "catch-up" from reading modmail and mod logs.
- OfficialModRelay's handoff post + dashboard reduces this to 2–3 minutes of reading.
- Watch flags eliminate duplicated work where multiple mods unknowingly handle the same user.
modrelay/
├── devvit.yaml # App name & version
├── package.json
├── tsconfig.json
└── src/
├── main.tsx # All Devvit menu items, forms, custom post component
├── types.ts # TypeScript types + Redis key helpers
└── redis-helpers.ts # All Redis read/write operations
| Key Pattern | Type | Purpose |
|---|---|---|
modrelay:notes:{sub} |
Sorted Set (score=createdAt) | All mod notes |
modrelay:watchflags:{sub} |
Hash (field=username) | All watch flags |
modrelay:handoffs:{sub} |
Sorted Set (score=createdAt) | Shift handoffs |
modrelay:lasthandoffpost:{sub} |
String | Last handoff post ID |
Devvit.addMenuItem– 7 menu items across post and subreddit contextsDevvit.createForm– 6 interactive forms for data entryDevvit.addCustomPostType– Live dashboard with 3-tab navigationcontext.redis– All persistent storage (sorted sets, hashes, strings)context.reddit– Post submission, user resolution, post distinguishinguseState/useAsync– Reactive dashboard state
# Prerequisites: Node.js 18+, devvit CLI
npm install -g devvit
# Clone and install
git clone <your-repo>
cd officialmodrelay
npm install
# Authenticate
devvit login
# Upload to Reddit Developer Platform
devvit upload
# Test in your dev subreddit
devvit dev- Go to developers.reddit.com
- Search for OfficialModRelay
- Click Install and select your subreddit
- Go to your subreddit → click "📊 OfficialModRelay: Open Dashboard" from the subreddit menu to create your pinned dashboard post
- ✅ No external HTTP calls (all data stays in Reddit's Redis)
- ✅ Moderator-only menu items (
forUserType: 'moderator') - ✅ No user data collected beyond what mods explicitly enter
- ✅ No automated moderation actions — all actions are mod-initiated
- ✅ No spam or unsolicited messaging
- Modmail integration – link notes to modmail threads
- Discord webhook notifications for critical-level watch flags
- Note search by username across the dashboard
- Weekly digest auto-post (scheduled job)
- Reddit Developer Funds milestone tracking
Built for the Reddit Mod Tools & Migrated Apps Hackathon 2026