Coming from 20+ years of building and moderating forums: the answer to “commons or contracted service, floor-only or full-stack” is probably (and unfortunately? ): “both, layered”.
The floor (CSAM scanning, spam detection, malware) is where Moderation-as-a-Service makes sense. Nobody wants to do or build that themselves, and it’s the same regardless of content type. Ozone and Osprey handle this already.
Everything above the floor though, gray-area content, community norms, context-specific rules, that has always been local in forums. Per-community moderators with graduated privileges (earned through trust levels), clear escalation paths, transparent mod
logs. Centralized moderation can’t make those calls because it doesn’t have the context. A heated debate that’s fine in a political forum is unacceptable in a support community.
For Barazo (ATProto forum) I’m building both layers: subscribe to Ozone/Osprey for the floor, then community-driven moderation tools on top (moderator roles, report queues, per-community rules).
I also wrote about how the local reputation data from that second layer could feed back into the broader ecosystem as opt-in trust signals (labels, not scores) in the trust & reputation clearinghouse thread.