Your policy team changes a rule. Nobody opens a ticket.
Harm patterns change in hours. Release cycles run in weeks. The gap between the two is how long your platform stays knowingly out of policy.
Building moderation tooling for platforms rather than running one? Yours is sell into the enterprise.
A rule your policy lead can read and edit
constants:
auto_ban_threshold: 3
rules:
block_repeat_offenders:
all:
- path: "event.type"
op: eq
value: "create_message"
- path: "state.user.counters.severe_violations"
op: gte
value: "{{ constants.auto_ban_threshold }}"
effects:
verdict: rejected
priority: 300
response:
reason: "This account is blocked after repeated violations." Reputation is state, so the fourth violation is a different fact from the first. Change the number from 3 to 2 and ship it without waiting for a release. Test it in shadow against live traffic first, or backtest it against last month and see which accounts would have been suspended.
Bring your own detectors
Classifiers that return a number, ones that take a criterion you write as a sentence, and a judge reading your whole rulebook. Free open models, the vendor you already pay, or something you host yourself. Cheap checks run on everything and the expensive ones only on what the cheap ones flag — how that works.
We run the detectors you bring. You keep what fits your platform.
Regulators, by name
The EU Digital Services Act is the one that changes moderation work in Europe, and Article 24(5) sends every statement of reasons you issue to the Commission's public database, where anyone can read it.
| Obligation | What the engine gives you toward it |
|---|---|
| DSA Article 21: out-of-court dispute settlement | a certified body reopens a decision you already made, and reads the rule, the version and the reviewer from the same trail |
| DSA Article 24: transparency reporting | the counts come out of the same records that made the decisions |
| DSA Article 17: statement of reasons | every action already carries the rule version and the reason that produced it |
| DSA Article 20: internal complaint handling | an appeal is a second queue you declare, decided by someone other than the original reviewer, on the same trail |
| UK Online Safety Act risk assessment | what you enforce, since when, and what it caught |
| Child safety reporting | a flagged item routes to a child-safety queue with a priority, and the reviewer's decision and its reason land on the same tamper-evident audit trail as the automated ones — the trail a CyberTip filing is built from. Your own categories and your own filing path are declared like anything else here |
We do not file anything on your behalf. We put the decision, the reason and the chain in one place so your team can.
Built for the people who review
Blurring an image by default, or holding a field back until a reviewer asks for it, is declared in the screen itself. It is not a habit you ask people to keep.
By platform type
Social networks — posts, replies, coordinated behavior across accounts. Marketplaces — listings, seller messages, fraud patterns that only show up as a sequence. Streaming and creator platforms — uploads, live chat, monetization eligibility. In-game chat — text at very high volume, and grooming patterns you see in behavior rather than in single words.
One pack behind all four, because the regulator, the buyer and the machinery are the same.