The spark
I noticed mods of drama subreddits handle hundreds of posts every weekend on subs like r/AITAH and r/relationship_advice. Drama subs run on unpaid labor, and the labor doesn't scale. The shape of the bad post is pretty consistent once you've seen enough of them: five named family members, a wedding tomorrow, a cliffhanger ending, no comment from OP for three days. If a tool could flag that shape automatically, the mod team could stop reading every single one cold.
That's what aurameter is for. Score every new post on four signals, put the scores in the link flair, and give mods a triage dashboard for the ones worth a closer look. The signals are Tea (drama density), Time (urgency), Bias (one-sided framing), and Slop (AI-likelihood), each 0 to 5. The flair looks like ☕3 ⏰2 🤖2.
How it works
The dashboard has four tabs, and each one is doing real work.
Queue. Posts a rule routed to triage, ranked by composite priority, with the title visible on each card. Two actions: Dismiss clears the post from the queue (reversible from the Log), and Take action opens the post in Reddit's mod tools to remove or ban it. aurameter never calls reddit.remove() itself. The real moderator is always on the record in Reddit's mod log.
The queue stays in sync with Reddit. If a mod removes a post on Reddit, or AutoMod handles it, or another mod dismisses it from a second device, aurameter reconciles on every refresh and drops what's no longer actionable. No queue ghosts.
Signals. Per-signal sparklines so a mod can see what their sub's actual distribution looks like, plus a visibility toggle for each signal: Off, Mod-only, or Public. Mod-only is the setting most subs will want for Slop — score it and show it in the dashboard, but don't post AI-generated content in the public flair.
Log. Every action, every rule fire, every config change. Attributed to the mod username. 90-day retention, purged daily. It's the recovery surface for a mistaken dismiss, the onboarding surface for a new mod learning the team's actual standards by example, and the receipts surface for when an Admin asks.
Settings. Aggressiveness, presets, the custom rule builder with dry-run preview (it replays your candidate rule over the last 7 days of scored posts and tells you what it would have caught before you save), AutoMod YAML export so your rules outlive the app if you ever uninstall, and the Slop spot-check opt-in.
The design stance
Aurameter is a dismiss-and-handoff workstation. The safe, reversible action is the app's; the destructive action is Reddit's.
A few features I cut on purpose. No auto-posting in the community feed. No user-facing dashboard, because this is a mod tool. No author-side scoring; a "show me posters by Clown score" view is the surface that converts a mod tool into a hit list, and it doesn't exist by design. No reddit.remove() calls from the app under any circumstances.
The first 7 days are observe mode by default. aurameter scores silently and learns the sub's distribution, then flips to live without the mod having to do anything.
What I think holds up
The reconciliation loop. It's the spine. Once it existed, the unified append-only action log uses the same write path, undo is just reading from the log, and team attribution comes for free because every write already has a mod username on it.
The dry-run preview. Writing a moderation rule blind is how mods accidentally nuke legitimate posts. Replaying the rule against 7 days of real scored posts before saving means a mod sees "this would have fired on 87 posts last week, here are 20 examples" and tightens the thresholds before anything goes live.
The Slop learning loop. AI writing drifts, so a stylometric detector has to keep learning. A Devvit install has no training runtime, so retraining can't happen in-app. The fix: every install passively collects training data. When a mod removes a post that aurameter routed because of high Slop, that's a confirmed AI label. Approve is confirmed not-AI. The first verdict locks the post, so a later action in the opposite direction can't double-label it. Only Slop-routed posts count, which keeps a Tea-removed post from polluting the corpus. Retraining happens offline between releases. The mod doesn't do anything extra; the labelling is a side effect of work they were already going to do.
Where it is now
86 tests passing. One Redis, one dashboard, zero auto-removes. Test sub and Devvit listing are linked above.
Built With
- devvit-web-0.12.23
- hono
- preact
- python
- redis-(devvit-provided)
- typescript
- vite
- vitest

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