Series · 7 parts Published June 19, 2026

Content moderator

A serverless moderator that keeps a community page or comment section clean without a full-time moderator. Every new comment, review, or post is checked against your house rules; obvious-safe ones pass, clearly-against-the-rules ones are held for review (never auto-deleted), and borderline ones go to a human with the reason and the rule they may break. It explains its calls and learns from a correction. A person makes the final call on anything removed. Seven posts on the same system — one diagram at a time — with an engineering reference at the end.

  1. 01

    A content moderator on AWS for a few dollars a month

    The whole system on one page — an intake, a checker, and a review piece, plus the three calls they share for every item: pass, hold, or send to a human.

  2. 02

    How a comment gets checked

    Every comment, review, or post arrives the same way — a webhook drops it in, it is cleaned and saved, and a fast rule pass settles the easy cases before any model is asked to look.

  3. 03

    How a comment gets a verdict

    The rule pass settles most items on its own. Only the borderline middle goes to Bedrock Haiku 4.5, which returns one of three calls — pass, hold, or send to a human — with a confidence score and the exact rule cited.

  4. 04

    How flagged content reaches a moderator

    The review queue, who gets each area, quiet hours and batching so a moderator isn’t pinged at 2am, and the four guardrails between a held verdict and the actual review card landing.

  5. 05

    How the moderator makes the final call

    Three actions on the review card: publish (release a held item), remove (take it down with the reason logged), and edit-and-publish. Every call is logged, every overturn teaches the system.

  6. 06

    What the content moderator costs

    A couple of dollars a month at SMB volume. The fast rule pass settles most items with no model; Bedrock fires only on the borderline middle and the weekly digest.

  7. 07

    Engineering reference: the content moderator architecture

    Same system, drawn purely for engineers. Service names, resource identifiers, region, Bedrock model IDs, Lambda inventory, IAM scopes, the SQS review queue, EventBridge config, and the DynamoDB schemas.

What is a content moderator?
A small serverless system that checks every new comment, review, or post on your community page against your house rules. Obvious-safe ones pass and publish. Clearly-against-the-rules ones are held for review — never auto-deleted. Borderline ones go to a human with the reason and the rule they may break. A person makes the final call on anything removed, and the system learns from each correction.
How much does it cost to run?
About $2.40/month at typical small-business volume (around 200 items a day). The fixed cost is essentially zero. Most items are settled by a fast rule check that calls no model. Bedrock Haiku 4.5 fires only on the borderline middle — the items the rule check can’t settle on its own — so the model bill stays a small sliver. At 2,000 items a day the bill lands around $14.
Which AWS services does it use?
Lambda (Python 3.14, arm64) with Function URLs for the inbound webhook and the moderator’s action buttons, EventBridge for the verdict events, DynamoDB on-demand, S3 (with versioning), SES outbound for digests, SQS with a dead-letter queue for the review queue, Secrets Manager, CloudWatch Logs (7-day retention), AWS Budgets, and Bedrock (Claude Haiku 4.5 via Global cross-Region inference) for the borderline cases. No API Gateway, no NAT Gateway, no always-on compute.
Where do the house rules live?
In a plain-text rules doc in a Google Drive folder you control. It lists your banned-word and link rules, your house rules in plain prose, the reviewer per area, and the quiet hours. A small drive-sync Lambda mirrors the doc to S3 every 15 minutes; the moderator reads from S3 so a rule edit takes effect on the next item without a deploy.
Does it use AI?
Sparingly. The first check is a fast rule pass in plain Python — banned words, links, length, a known-good author. Most items are settled there with no model. Bedrock Haiku 4.5 reads only the items the rule pass can’t settle on its own, and it returns a verdict, a confidence score, and the exact house rule the content may break. It never deletes anything; it only proposes a call for a human to confirm.
Does it ever auto-delete content?
No. The strongest move the moderator can make on its own is to hold an item — keep it out of public view and put it in the review queue. Holding is reversible; deleting is not. Every removal is a human decision, taken from the review queue with the reason and the rule attached. Obvious-safe items publish on their own; everything else waits for a person.
How does it learn from a moderator’s correction?
Every time a moderator overturns a call — publishes something the system held, or removes something it passed — the item, the verdict, the rule cited, and the human’s decision are written to the cm-audit table and added to a small set of worked examples. Those examples are fed back into the model prompt as guidance, so the next borderline item that looks like it gets the corrected call. The house rules doc stays the source of truth; the examples just sharpen the edges.
All posts