Get Started with Aeion Forum

Set up your community forum in 5 steps. Wilson score ranking, 8-tier karma system, AI moderation, reputation badges, and moderation tools—all in under 20 minutes.

1

Configure Forum Settings

ThresholdActionDescription
toxicity > 0.9auto-rejectContent blocked
toxicity > 0.7auto-holdRequires moderator review
spam > 0.8auto-rejectSpam detected
spam > 0.6auto-holdRequires review
2

Set Up Karma Ranks

Go to Forum → Settings → Karma.

Rank Thresholds:

typescript { "ranks": [ { "name": "newcomer", "threshold": 0, "color": "#9CA3AF" }, { "name": "member", "threshold": 50, "color": "#22C55E" }, { "name": "active", "threshold": 200, "color": "#3B82F6" }, { "name": "contributor", "threshold": 500, "color": "#8B5CF6" }, { "name": "trusted", "threshold": 1000, "color": "#F59E0B" }, { "name": "expert", "threshold": 2000, "color": "#EF4444" }, { "name": "elite", "threshold": 5000, "color": "#EC4899" }, { "name": "legend", "threshold": 10000, "color": "#F97316" } ], "displayOptions": { "showRankBadge": true, "showKarmaScore": false, "rankTitleEnabled": true } }

Karma Point Values:

typescript { "awarding": { "threadCreated": 5, "postCreated": 2, "upvoteReceived": 10, "acceptedAnswer": 25, "dailyLoginStreak": 1, "weekStreakBonus": 10 }, "deductions": { "downvoteReceived": -5, "contentRemoved": -10, "postDeleted": -2 } }

Board-Level Karma Requirements:

bash PATCH /forum/boards/{slug} { "permissions": { "minKarmaToPost": 50, "minKarmaToVote": 0, "minKarmaToCreateThread": 100 } }

3

Configure Badges

TierRarity RangeColor
Bronze50-100#CD7F32
Silver20-50#C0C0C0
Gold1-20#FFD700
4

Set Up Boards & Categories

Go to Forum → Boards → Create Board.

Create Board:

bash POST /forum/boards { "name": "General Discussion", "slug": "general-discussion", "description": "Chat about anything tech-related", "categoryId": "cat-general", "permissions": { "canView": "all", "canPost": "members", "canVote": "all", "minKarmaToPost": 0, "isReadOnly": false }, "moderation": { "requireApproval": false, "enableReports": true }, "display": { "showInLatest": true, "showInHome": true, "defaultSort": "hot" } }

Board Structure:

typescript { "boards": [ { "id": "board-announcements", "name": "Announcements", "slug": "announcements", "categoryId": "cat-meta", "permissions": { "canPost": "moderators" }, "isReadOnly": true }, { "id": "board-general", "name": "General Discussion", "slug": "general-discussion", "categoryId": "cat-general", "threadCount": 1234, "postCount": 5678 }, { "id": "board-help", "name": "Help & Support", "slug": "help-support", "categoryId": "cat-general", "permissions": { "minKarmaToPost": 50 } } ], "categories": [ { "id": "cat-meta", "name": "Meta", "order": 1 }, { "id": "cat-general", "name": "General", "order": 2 }, { "id": "cat-technical", "name": "Technical", "order": 3 } ] }

Karma-Gated Boards:

bash # Create a board only accessible to trusted members POST /forum/boards { "name": "Trusted Members", "slug": "trusted-members", "permissions": { "canView": "members", "canPost": "members", "minKarmaToView": 500, "minKarmaToPost": 500 } }

5

Configure Notifications

Go to Forum → Settings → Notifications.

Notification Preferences:

typescript { "notifications": { "replyToMyThread": { "enabled": true, "channels": ["email", "push", "in_app"] }, "mentionInPost": { "enabled": true, "channels": ["email", "push", "in_app"] }, "karmaChange": { "enabled": true, "threshold": 5, // Only notify if |change| >= 5 "channels": ["in_app"] }, "badgeUnlocked": { "enabled": true, "channels": ["email", "push", "in_app"] }, "moderationAction": { "enabled": true, "channels": ["email"] } }, "digest": { "enabled": true, "frequency": "weekly", // daily, weekly, monthly "include": ["top_threads", "replies_to_you", "karma_summary"] } }

Create Thread (API):

bash POST /forum/threads { "boardId": "board-general", "title": "Welcome to Aeion Forum", "content": "This is our new community platform!", "authorId": "user-admin", "tags": ["announcement", "welcome"] }

Response:

typescript { "id": "thread-uuid", "title": "Welcome to Aeion Forum", "slug": "welcome-to-aeion-forum-m1abc2", "board": "board-general", "author": "user-admin", "status": "published", "score": 0, "hotScore": 0, "replyCount": 0, "createdAt": "2026-05-11T10:00:00Z" }

Cast Vote (API):

bash POST /forum/votes { "userId": "user-123", "contentType": "thread", "contentId": "thread-uuid", "direction": "up" }

Response:

typescript { "action": "created", "vote": { "id": "vote-uuid", "direction": "up", "createdAt": "2026-05-11T10:05:00Z" }, "newScore": 1, "hotScore": 0.21 }

File Moderation Report (API):

bash POST /forum/reports { "contentType": "post", "contentId": "post-uuid", "reason": "spam", "details": "This is promoting an external product", "reportedById": "user-456" }

Response:

typescript { "id": "report-uuid", "status": "pending", "priority": "medium", "contentSnapshot": { "content": "Check out this great product!", "capturedAt": "2026-05-11T10:10:00Z" } }

Quick Reference

Thread API:

```bash # Create thread POST /forum/threads

# Get thread GET /forum/threads/{threadId}

# List threads GET /forum/threads?boardId=xxx&sort=hot

# Update thread PATCH /forum/threads/{threadId}

# Delete thread DELETE /forum/threads/{threadId} ```

Vote API:

```bash # Cast vote POST /forum/votes

# Remove vote DELETE /forum/votes/{voteId}

# Get vote counts GET /forum/votes/counts?contentType=thread&contentId=xxx ```

Moderation API:

```bash # File report POST /forum/reports

# Process report POST /forum/reports/{reportId}/process

# Ban user POST /forum/moderation/ban

# Appeal ban POST /forum/moderation/appeals ```

Karma API:

```bash # Get user stats GET /forum/karma/{userId}

# Get karma history GET /forum/karma/{userId}/history

# Get leaderboard GET /forum/karma/leaderboard?limit=100 ```

Badge API:

```bash # List badges GET /forum/badges

# Get user badges GET /forum/badges/user/{userId}

# Assign badge (mod) POST /forum/badges/assign ```

FAQ

Aeion Forum ranks content using the Wilson score lower bound at 95% confidence, a statistical method that balances upvote ratio against sample size. A post with a single upvote gets a low score (low confidence), while a post with 99 of 100 upvotes gets a high score (high confidence) — so a well-vetted discussion doesn't get outranked by a handful of early votes.

Members progress through 8 ranks: newcomer (0) → member (50) → active (200) → contributor (500) → trusted (1000) → expert (2000) → elite (5000) → legend (10000). Karma is awarded for upvotes received (+10), thread creation (+5), post creation (+2), and accepted answers (+25), and deducted for downvotes (-5) and content removal (-10). All values are configurable per tenant.

Reported content is automatically scored for toxicity, spam, and related risk signals, and a priority is calculated from those scores — high-risk reports are held and surfaced to moderators immediately, while lower-risk reports queue for routine review.

Each badge defines its own unlock condition. Whenever a member's karma or activity changes, the system checks all badge thresholds and awards any newly-unlocked badge automatically, with a notification sent right away.

Votes are append-only. Changing a vote's direction retires the old vote and creates a new one — a vote is never edited in place. This preserves vote history and prevents vote manipulation.

When a report is filed, the system captures the content and title exactly as they existed at that moment. Even if the content is edited later, the report retains the original text.

Each board can set a minimum karma required to post. On thread creation, the platform checks the author's karma and blocks the post with a clear error if they're below the threshold.

Every moderation action (remove/hide/approve) creates a new, immutable log entry — nothing is ever edited or deleted, giving you a durable record of moderator actions for compliance and dispute resolution.

Bans can be scoped globally, to a single board, or to a category, and can be temporary or permanent. Every ban records its reason, duration (for temporary bans), and enough context to support an appeal.

When multiple users report the same content, the system aggregates the reports into a single case rather than creating duplicates — the report count and reporter list grow on the existing case, reducing moderator workload.

Karma earned from posts and karma earned from comments are tracked separately, so the platform can recognize a prolific top-level contributor distinctly from an active discussion participant.

A single upvote gives a high ratio (100%) but low statistical confidence. You need multiple votes for a high score, which prevents sockpuppet accounts from boosting posts with a handful of fake votes.

When content is removed, the author's karma is automatically deducted and a karma transaction is recorded with the reason "content removed" — fully auditable and reversible.

Thread titles are automatically converted into clean, URL-safe slugs — lowercased, stripped of special characters, spaces converted to hyphens, and suffixed with a short unique token so two threads with the same title never collide.

Notifications are batched into a daily, weekly, or monthly email digest covering top threads, replies to you, and your karma summary.

Open the Forum Dashboard