Content moderation
Bellamy Book protects your community from inappropriate or harmful content with native GPT moderation (OpenAI) inside the API + ContentModerationWorker queue. Manual reports still use api/Moderation.
Release 2 made this a first-class product capability: posts/stories stay out of feeds until they pass checks, authors get clear UI feedback, and operators review flags in Admin → Content Alerts. See Release notes.
Why enable it
| Goal | What happens |
|---|---|
| Protect members | Risky posts/stories never appear in feeds while Pending; high severity stays Rejected/hidden |
| Fair author UX | Creators see “being moderated” on submit and get notified on approve/reject |
| Operator control | Admins/Moderators triage Content Alerts (dismiss, hide, unhide, delete) |
| Self-hosted | Same stack as Live Chat — no separate ContentDetect / Ollama service |
Automatic pipeline
Create post or story (API)
→ Pending + hidden (if ContentModeration__Enabled)
→ RabbitMQ ContentModerationMessage (ContentType: post | story)
→ ContentModerationWorker
→ GPT text (caption) + GPT vision (images)
→ high: Rejected + alert + notify creator
→ else: Approved + Unhide + PostReady / friends (+ alert for low/medium)
Posts and stories are not shown in feeds and friend notifications are deferred until the worker finishes.
Severity
| Level | Behavior |
|---|---|
| high | Reject — stay hidden; alert admins; notify author |
| low / medium | Approve + unhide; create admin alert + optional email |
| none | Approve + unhide; PostReady / go live |
Member UI
- After create, if status is moderating, the app tells the author content is under review and they will be notified when it goes live.
- Approved content appears normally; rejected content stays hidden with an author notification.
Configuration
See Content moderation (self-host).
Admin UI
Admin → Content → Content Alerts — filter by status/severity; open detail to review the live caption plus images/videos; dismiss, hide, unhide, or delete the post/story.
Manual reports
Members can still report users, posts, or messages and block users via api/Moderation. That path is separate from the GPT auto-queue.