A mod tool for Reddit built on Devvit that helps moderators track user reputation and coordinate modqueue reviews — without ever leaving Reddit.
ModTower tracks a reputation score for every user in your subreddit based on their mod history — removals, bans, reports, posts, and comments. Scores update automatically as mod actions are taken, so there is no manual input or external dashboard to maintain. Moderators can pull up a full history for any user and act on it (ban, remove, add a note) directly from the Reddit mod menu. For larger mod teams, ModTower also provides claim locks on modqueue items and a shared notepad to coordinate handoffs without leaving the site.
- Each user has a reputation score from 0 (worst) to 1500 (best), starting at 1000
- Score decreases for removals (−30), bans (−100), and reports (−10)
- Score increases for posts (+5), comments (+2), account age (+1/month, capped at +120), and karma (+1 per 100 karma, capped at +100)
- Four tiers: GOOD (≥800, green) · MODERATE (500–799, yellow) · AT RISK (200–499, orange) · CRITICAL (<200, red)
- Scores update automatically via background triggers — no manual refresh needed
- Check any user's reputation from a post, comment, or by username lookup via the subreddit menu
- Take action directly from the reputation view: temp-ban, permanent ban, remove content, or add a note
- All actions include confirmation steps before executing
- Add private notes to any user — visible to all mods in the subreddit
- Notes are attributed to the mod who wrote them with a timestamp
- Delete your own notes (subreddit admins can delete any note)
- Claim a post or comment to signal you are handling it
- Claims expire automatically after 10 minutes
- View all active claims across the subreddit at a glance
- Shared mod notepad for shift handoffs, reminders, and coordination
- Subreddit admins can adjust how much each signal affects the score
- Configured via the Reddit native app settings UI — no custom form needed
- Go to the ModTower app page on the Reddit App Directory
- Click "Add to community" and select your subreddit
- Confirm the permissions requested (see Permissions section below)
- The app is now active — no further setup required
- Optional: go to Mod Tools → Installed Apps → ModTower → Settings to adjust score weights
Open the three-dot menu on any post or comment and select "ModTower: Check user reputation". This opens a form showing the user's score, tier, full stats, ban history, and mod notes. You can also look up any user by username via the subreddit menu → "ModTower: Look up user".
From the reputation form, select an action from the dropdown (temp-ban, permanent ban, remove content, or add a note) and click Confirm. A second confirmation step is required for all ban and remove actions before anything is executed.
Open the menu on any post or comment and select "ModTower: Claim this item". The claim is immediately visible to other mods logged into the subreddit and expires automatically after 10 minutes. Use the subreddit menu → "ModTower: View active claims" to see all current claims at once.
Open the subreddit menu → "ModTower: Mod notepad" to read and add notes for the whole mod team. Each entry is attributed to its author with a timestamp. Entries are never overwritten — older entries are preserved, and you can delete your own entries via the subreddit menu.
| Permission | Why it's needed |
|---|---|
redis |
Stores reputation scores, ban history, mod notes, and claim locks per subreddit — all data stays within your subreddit installation |
reddit |
Reads post/comment/user data to build reputation profiles; executes mod actions (ban, remove) on behalf of the moderator |
- All data is stored per-subreddit — one subreddit's data is never accessible to another
- No data is sent to any external server — everything stays within Reddit's infrastructure
- Mod notes and reputation scores are only visible to moderators of the subreddit
- Removing the app from your subreddit will stop all data collection; historical KV data will be cleared per Reddit's data retention policies
All users start at 1000. Scores are capped between 0 and 1500.
| Signal | Effect | Default weight |
|---|---|---|
| Content removal | −30 pts | 30 |
| Ban | −100 pts | 100 |
| Report received | −10 pts | 10 |
| Post created | +5 pts | 5 |
| Comment created | +2 pts | 2 |
| Account age | +1 pt/month (max +120) | 1 |
| Karma | +1 pt per 100 karma (max +100) | 1 |
Weights are adjustable per subreddit via Mod Tools → Installed Apps → ModTower → Settings.
- Ban history and mod notes display the most recent 5 entries in the form view (full history is stored in KV)
- Presence indicators (who's online) are not implemented — Devvit's form-based mod tool model does not support client-side polling
- Modqueue sorting by reputation score is not yet implemented
- Score history timeline is stored in KV but not yet surfaced in the UI
- Claims are optimistic — a race condition guard exists, but if two mods claim the same item simultaneously the second mod will see the first mod's claim on their next open
- Devvit — Reddit's developer platform
- TypeScript (strict mode)
- Devvit KV store (Redis)
- Devvit native forms
- Vitest for unit testing
ModTower was built for the Reddit Mod Tools Hackathon (May 2026). The core thesis: moderators shouldn't need external dashboards to understand the users they're moderating — all the signal they need can be computed from actions already happening on Reddit. Everything ModTower shows is derived from the subreddit's own mod history, stored locally, and surfaced directly in the mod menu where decisions are already being made.
npm install # install dependencies
npm run build # compile and bundle
npm run lint # ESLint
npm run typecheck # tsc --noEmit
npx vitest run # run unit tests
npm run dev # upload to test subreddit