What you get in the generated ZIP
A typical social-network generation includes:
app/blueprints/
├── post_bp.py # CRUD + moderation hooks
├── feed_bp.py # home feed, profile feed, hashtag feed
├── follow_bp.py # follow / unfollow / mute / block
├── reaction_bp.py # like / repost / quote
├── report_bp.py # user reporting
├── moderation_bp.py # moderator dashboard
├── classification_bp.py # AI classification hook (OpenAI / Anthropic / local)
└── appeal_bp.py # appeals workflow
app/models/
├── post.py # author, content, classification_result
├── home_feed_entry.py # materialised per-user feed
├── moderation_action.py # immutable log
└── classification_result.py # toxicity, spam, NSFW scores
What's already wired
- Materialised home feed: instead of computing the feed at request time, a Celery worker materialises the home feed per user when the user follows new accounts or new posts arrive. Read latency stays constant as the network grows.
- Moderation queue: every reported post goes into a queue. Moderators see the post, the report, the user's history, and can action (warn, hide, remove, ban) with reason logged.
- Content classification: hook for OpenAI / Anthropic / Perspective API / a local classifier. Posts are scored on toxicity / spam / NSFW at create time. High-confidence flags go directly to the moderation queue; low-confidence flags rate-limit visibility until human review.
- Reporting + blocking + muting: user can report, block, or mute another user. Block is bidirectional (neither sees the other's content). Mute is unilateral.
- Appeals: every moderation action has an appeal path. Appeals go to a separate queue with case ID. Appeals decisions are logged with reason; appellate moderator must be different from the original action's moderator.
- Rate limiting: per-user post rate limits to slow down spam at the application layer. Defaults aggressive for new accounts, relaxed after trust signals accumulate.
- GDPR: full account deletion (Article 17) cascades through posts, reactions, follows. Right-to-portability (Article 20) exports posts + media URLs.
What ships in docs/
docs/decisions/ADR-0011-feed-materialisation.md— push vs pull vs hybrid feed architecturedocs/decisions/ADR-0014-moderation-queue.md— synchronous vs queue-based, with rationaledocs/diagrams/moderation-flow.md— Mermaid sequence diagram report → queue → action → appealdocs/security/posture.md— including content security policy and CSRF on every state-change routedocs/compliance/dsa-compliance-notes.md— when EU Digital Services Act overlay is flagged
Internal links
- OpenAI integration and Anthropic integration for classification
- for/martech for engagement-focused variants
CTA
Try it — free plan, no credit card. archiet.com.
Generate a social network, look at the moderation queue and the appeals workflow, decide if that's the shape your trust & safety lead would accept.