Inspiration

I'm not a moderator. I came at this the other way around: I went looking for where Reddit moderation actually hurts, and the same story kept surfacing. The hard part of a queue decision usually isn't the call itself... it's everything you have to assemble before you can make it with confidence. To judge one post fairly, a mod opens the author's profile, scrolls their history, hunts for a note a teammate left months ago, checks whether a link is a known-bad domain, skims modmail, and pings the team to be sure nobody's already on it. One decision, scattered across half a dozen places and that's before the backlog.

That pain is getting sharper at exactly the wrong moment. The community-built toolbox mods leaned on for years is fading, and Reddit is steering everything toward native Devvit apps. There's a real gap opening up between what moderators are losing and what's been rebuilt to replace it.

So ModLens isn't trying to recreate a decade-old toolbox. It bets on the one thing the research kept pointing to: moderators may not need more automation, they need the right context in one place, inside Reddit, at the moment of the decision.

What it does

ModLens turns scattered moderation context into one risk-ranked workspace that lives inside Reddit — no new tab, no exported data, no context switching. It reviews the right items first and brings the history behind every author and link to where you actually make the decision.

Open it from the subreddit menu and you get:

  • A risk-ranked triage board. Posts, comments, reports, Automod-filtered items, and edits flow in automatically and sort into high, aged, and normal buckets — so you spend your attention where it matters instead of scrolling a flat queue.
  • Author context on demand. Shared mod notes, recent activity, and related moderation history for any user, one click from a post or comment.
  • Domain reputation that remembers for you. Tag linked sites as trusted, watchlist, spammy, or scam once, and ModLens surfaces that history every time the domain shows up again.
  • Edited-link detection. Catches external links that were slipped in after a post or comment was edited — the trick that normally sails past the queue.
  • Explainable risk rules. Build rules from real signals (report counts, prior removals, risky domains, new accounts, edit behavior) with dry-run support. Every score change shows the facts that triggered it.
  • Queue claiming. Claim an item so teammates know it's handled. No more two mods removing the same post.
  • Removal reason templates with variables for fast, consistent messaging.
  • Mod log insights, audit history, and decision reasoning so the team can see why an item moved up the queue.
  • One-line AI insights (Gemini) that surface a short supporting hint from compact moderation facts.
  • Optional high-signal alerts to Discord, Slack, or a custom webhook for backlog spikes, repeat offenders, risky domains, edited links, and modmail.

And the part that matters most: you stay in control. ModLens is not a black-box auto-mod. Every priority bump is explainable, the AI insight is a hint and never an action, and the final decision is always yours. It's built to make you faster and more consistent — not to moderate for you.

How we built it

ModLens is a Devvit Web app, native to Reddit end to end. The workspace runs as an expanded custom post, opened from a lightweight inline launcher, and moderator-only menu actions and forms handle the quick tasks (tag a domain, add a note, build a rule) right from the subreddit, post, and comment surfaces — so nothing pulls a mod out of Reddit.

The server is a TypeScript + Hono app mounted through Devvit. Devvit Redis stores everything subreddit-scoped: queue items, author and item notes, domain metadata, rule configuration, alert settings, mod log summaries, audit entries, decision logs, and the short body snapshots that power edited-link detection.

Devvit triggers ingest moderation events in near real time, while scheduled jobs rescore the queue every couple of minutes, roll up mod log data, and evaluate alert conditions. Ingestion is wrapped in idempotency keys so repeated trigger events never spam the queue with duplicates — the difference between a tool mods trust and one they mute. The frontend is plain TypeScript and Vite with no heavy framework, which keeps the surface fast and predictable inside Reddit.

Challenges we ran into

Building for a community I'm not part of. This was my first time building anything for Reddit, and I don't moderate an active subreddit — so the people I was building for were exactly the people I couldn't shadow over their shoulder. I leaned hard on researching how mods describe their work and on a dev subreddit for testing, but the honest truth is that the biggest challenge was the feedback loop. I reached out to a handful of moderators to try it; the hackathon timeline just didn't leave room for the rounds of real-world testing and iteration I'd want before calling it battle-tested. It shaped the whole project: when you can't be the user, you design conservatively, keep everything explainable, and make sure nothing happens that a mod didn't ask for.

Helpful without being a black box. The hardest design question was where to draw the line between assistance and automation. Mods have been burned by opaque tools that silently rank or remove content. So explainability became a hard requirement: every rule shows the facts that matched, every score change carries a visible reason, and the AI insight is always a hint, never an action. ModLens informs the decision; the moderator makes it.

Fitting a full workflow into Reddit's surfaces. A real moderation flow spans triage, author lookups, domain tagging, rules, alerts, and removals — that's a lot to deliver without sending mods off to a separate site. I split it deliberately: a custom post for deep review, and lightweight menu actions and forms for the quick contextual tasks, so the whole workflow stays inside Reddit.

Ingestion mods can actually trust. Trigger events can fire more than once, and a queue that fills with duplicates is a queue that gets ignored. Idempotency keys, Redis-backed state, scheduled rescoring, and audit logs keep the board clean and the history honest.

Accomplishments that we're proud of

A whole workflow, shipped solo, on my first Reddit project. Most mod tools do one thing. ModLens covers a full loop — open the queue, review risk-ranked items, inspect an author or a linked site, claim work so nobody doubles up, apply a consistent removal reason, leave notes for the next mod, and get alerted to what actually matters — all native to Devvit and all without leaving Reddit. Learning the platform and building that breadth end to end, by myself, is the thing I'm proudest of.

It's explainable. Every risk score traces back to rules and facts a moderator can open up, inspect, and tune — there's no guessing why an item landed where it did. That clarity mattered even more given I couldn't lean on a big base of testers to catch surprises.

It's a real, working foundation. The project passes TypeScript checks, ESLint, and the Vitest suite, and the full workflow runs end to end in a live test subreddit. It's not yet hardened by months of production moderation — but it's a solid base that's ready for real mod feedback to build on.

What I Learned

Devvit is a near-perfect fit for moderation tools. As my first Reddit build, it taught me fast. Native UI entry points, moderator-scoped Reddit access, Redis, triggers, scheduler jobs, app settings, and custom web views together let me treat Devvit as a native moderation layer rather than a bolted-on app. The winning pattern was small menu actions for quick tasks plus an expanded workspace for deep review — meeting mods exactly where they already are.

The biggest win is better context. I started this assuming the win would be smarter scoring. I finished convinced the bigger win is removing the repeated lookups, making team memory visible, and giving every moderator the same picture before they act.

I only scratched the surface of AI. Within the hackathon timeline I couldn't use AI nearly as much as I wanted to — it stayed a single optional one-line hint. There's far more it could do to pull context together for a mod, but I'd rather let real use, not guesswork, decide where it actually earns its place.

You can't shortcut real users. Research and good instincts got the design surprisingly far, but they're not a substitute for watching an actual moderator use the thing. Not having an active sub of my own — and running short on time to gather mod feedback — was the clearest lesson of the project: the next version has to be shaped by real moderators, not just built for them.

What's Next for ModLens

The honest next step isn't more features — it's real moderators. The priority is to close the feedback loop I ran out of time for and turn ModLens into something mods genuinely rely on:

  • Get it in front of active mod teams. Put ModLens into real subreddits, watch how moderators actually use it, and fix what the research couldn't catch. This comes first.
  • Stabilize and harden. Tighten the rough edges, handle the edge cases real queues expose, and earn the "battle-tested" label honestly.
  • Lean into AI, guided by feedback. Based on what mods tell me, expand the AI layer thoughtfully — the goal is to collapse the multi-step context-gathering behind a decision into something close to one click for a mod, without ever taking the call out of their hands.
  • Rule templates. Ready-made, explainable rules for common moderation patterns, so a new team gets value on day one.
  • Deeper mod log analytics. Trend comparison and clear workload metrics so teams can see backlog health, not just clear it.
  • Easier onboarding and migration. Import/export so communities can bring existing notes and domain history with them.
  • Granular permissions. Finer control over who can edit rules and configure alerts.

Built With

Share this project:

Updates