Inspiration
Modding a busy subreddit on mobile is death by tap-tap-tap. Every borderline comment forces the same 30-second ritual: open the user's profile, scroll global history, mentally filter to "just this sub," switch contexts to a ban form, lose the original comment. Multiply by hundreds of decisions per day and you get mod burnout. Mod Dossier collapses that ritual into one tap and one screen.
What it does
Mod Dossier adds three moderator-only menu items to a subreddit:
Mod Dossier: open searchon the subreddit overflow menu — type any username.Mod Dossier: dossier authoron any post's⋮menu — investigate the post's author.Mod Dossier: dossier commenteron any comment's⋮menu — investigate the commenter.
Each opens a dossier post that shows, at a glance:
- Account age, post karma, comment karma, verified email
- Subreddit-scoped activity: posts, comments, posts removed, comments removed, removal rate %, approved count
- Samples of the user's recent removed content in this sub
- Risk badges:
NEW ACCOUNT,LOW KARMA,MULTIPLE REMOVALS,HIGH REMOVAL RATE,VERIFIED EMAIL,TRUSTED MEMBER - Shared private mod notes (institutional memory for the whole mod team)
- Inline Ban (reason + duration), Unban, Mute, Unmute
How I built it
- Devvit Web 0.12.24 — HTTP server pattern with a webview front-end
- TypeScript end to end, with a shared
api.tscontract between client and server - Redis for shared mod notes (
notes:{sub}:{user}) and dossier-target mapping - Reddit Plugin at
moderatorscope for user lookup, content history, ban/mute - esbuild for client and server bundling
The server computes the risk badges from rules tuned to surface the patterns mods actually care about: new throwaway accounts, repeat-offender removal patterns, and (positively) trusted long-time members so a mod can avoid over-reacting.
Challenges I ran into
- Devvit Web's
permissionsblock must explicitly declareredis: trueandreddit: { scope: "moderator" }— otherwise the app deploys but the webview asset endpoint silently refuses connections. - Building three different entry points (subreddit, post, comment) that all converge on the same dossier UI, with the target user persisted per-post in Redis so the dossier survives page reloads.
- Filtering Reddit's global user-history feed down to a single subreddit on the fly while keeping the response fast.
Accomplishments I'm proud of
- Real moderation actions (ban / mute with reason + duration) work inline — no context switch
- Shared mod notes give the mod team durable, queryable memory across shifts
- Works on the Reddit mobile app, where most modding actually happens today
What I learned
- The Devvit Web HTTP-server pattern is genuinely productive once
permissionsare correct - Risk thresholds need to be tunable per community — what counts as "high removal rate" varies wildly by sub
- Subreddit-scoped signals beat global signals every time for moderation decisions
What's next
- Per-subreddit configurable thresholds for risk badges
- Optional flag-and-track of users automatically (cron + Redis history)
- Cross-mod commentary on individual notes (replies / upvotes on notes)
- An optional auto-comment on the original removed content linking to the dossier
Built With
- css
- devvit
- esbuild
- html
- node.js
- redis
- typescript

Log in or sign up for Devpost to join the conversation.