## Inspiration
Every mod tool ever built is about punishment. Remove, ban, warn, filter. Moderators spend hours in queues seeing the absolute worst of their community while there's nothing to help them recognize the people making it better.
Research by Lambert et al. (2025) put a name to this gap: the "policy-practice" problem. Mod guidelines talk about encouraging good behavior, but no tools exist to act on it. Their study showed that positive reinforcement causally improves future content quality and reduces removals. We wanted to build that tool natively on Reddit; no browser extension required, automatic, and integrated directly into the mod workflow.
## What it does
ModKudos gives moderators two superpowers:
1. Kudos Queue: automatically detects high-quality posts and comments based on configurable thresholds (upvote ratio, score) and surfaces them in a dedicated queue for mod review. One click rewards the contributor with flair, a personalized thank-you message, or a public recognition post.
2. User Context Card: right-click any post or comment to instantly see a contributor's full history: quality score (0–100), total posts, comments, removals, warnings, rewards, recent activity, and private mod notes. Everything a mod needs to make a fair decision, in one place.
The app also includes a Community Dashboard showing top contributors and community health metrics, and a scheduled Insight Analyzer that tracks trends over time.
## How we built it
Together with Kiro, I built this entirely on Reddit's Developer Platform (Devvit) using TypeScript. Key components:
- Triggers: PostCreate, CommentCreate, and ModAction triggers feed every event into a Redis-backed tracking system
- Scheduled jobs: a delayed quality check job fires 5 minutes after content is created (to let votes accumulate), evaluates it against thresholds, and adds qualifying content to the Kudos Queue
- Redis: all user history, quality scores, mod notes, and the Kudos Queue are stored in Redis sorted sets and strings with namespaced keys
- Menu actions: five mod-facing actions wired to forms and toasts
- 195 unit tests: using Vitest with full mock coverage of all subsystems
## Challenges we ran into
- Devvit's menu action timeout: menu action handlers have a strict execution budget. Running a full community analysis (iterating all users, fetching all events) inside a menu action consistently timed out. We had to separate the heavy analysis into a scheduled job and make menu actions lightweight Redis reads only.
- Redis sorted set API quirks: Devvit's Redis client doesn't accept
'-inf'/'+inf'string sentinels for score ranges despite the Redis spec supporting them. Required converting all range queries to numeric bounds. - Form data passing: Devvit forms pass data through a dynamic function but submitted values only include actual form fields, not the data object. Passing the target username required adding it as a visible (read-only) field rather than hidden state.
- JSX configuration: Devvit uses a custom JSX factory (
Devvit.createElement) rather than the standardreact-jsxtransform, requiring specific tsconfig settings.
## Accomplishments that we're proud of
- The Kudos Queue works end-to-end: content is detected automatically, queued, surfaced to mods, and cleared when rewarded, all without any manual setup beyond installing the app
- The User Context Card gives mods a genuinely useful snapshot in under a second, replacing what would otherwise be 2+ minutes of manual history checking
- 195 unit tests covering all six subsystems with full mock coverage
- The app is research-backed: we implemented the core concept from Lambert et al. (2025) natively on Devvit, making it the first tool of its kind on the platform
## What we learned
- Devvit's execution model rewards lightweight, event-driven design. Anything that tries to do too much in a single handler will time out; the right pattern is to do heavy work in scheduled jobs and keep menu actions as fast Redis reads.
- Positive reinforcement is genuinely underserved in mod tooling. Every existing tool is punitive. The research is clear that this matters, and building it surfaced just how much infrastructure is needed to make it work reliably at scale.
- The Devvit platform is more capable than it first appears: triggers, Redis, scheduled jobs, and forms compose well once you understand the constraints.
## What's next for ModKudos
- Sentiment-based quality scoring: integrate a lightweight NLP classifier to score content on constructiveness and effort, not just vote counts. This is the detection engine described in Lambert et al. that we didn't have time to build.
- Kudos Queue visual cues: when Devvit supports injecting into the native feed, add green highlights to quality content directly in the thread view
- Multi-mod coordination: track which mod reviewed and rewarded each item so teams don't double-reward
- Configurable reward templates per community: let mods create their own praise macro pools
- At-risk user alerts: proactive notifications when a previously high-scoring user's score drops sharply, so mods can reach out before a removal becomes necessary
Built With
- devvit-(reddit-developer-platform)
- fast-check
- gemini
- kiro
- redis
- typescript
- vitest
Log in or sign up for Devpost to join the conversation.