Constraints beat moderation
follows from Rejection should be silentA feed that cannot contain spam by construction does not need a spam policy. Moderation is a cost that grows with your users; a constraint is paid once.
The product I’m building has no free text box. Everything a person sees is composed by the system from fixed fields. You cannot type a sentence into the feed.
That decision was not about tone. It was about arithmetic.
The arithmetic
Moderation is a running cost, and it scales with the thing you are trying to grow. Every new user is more content to review, more reports to triage, more edge cases, more policy. The better the product does, the more it costs to keep clean — and the cost never converts into a feature. You are buying the same absence of spam over and over.
A constraint is paid once. Removing the free text box cost a week of design argument and then nothing, forever. There is no spam in the feed, not because anyone is watching, but because there is nowhere to put it. The system cannot represent the failure.
This is the same move as silent rejection: the strongest way to guarantee a behaviour is to make the alternative unrepresentable, rather than to detect and correct it after the fact.
The obvious objection
Constraints cap expressiveness, and expressiveness is frequently the entire product. Nobody would argue that a text editor should remove the text box. The question is not “constraints or moderation” — it is which expressiveness is load-bearing.
In this case the answer was fairly clear: people are not joining because of how something was phrased. They are joining because of what it is, where it is, and when. The prose was never the value, so removing it cost almost nothing and removed an entire category of failure.
I suspect the honest general rule is narrower than I’d like: constraints beat moderation wherever the free-form field is decoration rather than substance. That is a much smaller class of products than the framing suggests, and it is probably why more teams reach for moderation — not because they haven’t thought about it, but because their text box is actually the product.
Which leaves the part I’m least sure about: whether this generalises past consumer social at all, or whether it’s a special case dressed up as a principle.