A full-stack event management platform for Discord roleplay servers, built as a monorepo. EventMate lets server owners create, schedule, and track in-game events, manage participant payouts, run minigames, and gain insights through analytics dashboards — all powered by a Discord bot and a web-based dashboard.
Features
- Event Management — Create event templates, launch sessions, and track participation with optional AI-powered killscreen analysis (OpenAI).
- Web Dashboard — Server owners and moderators manage events, view statistics, configure guild settings, and handle payouts through a Next.js dashboard with real-time data.
- Admin Panel — Separate admin interface for system-wide user and guild management.
- Discord Bot — Slash-command driven bot for event announcements, user registration, minigames (coinflip, dice, jackpots), and in-server interactions.
- Subscription & Payments — Stripe-powered subscription tiers with coupon support and grace period handling for guilds.
- Permission System — Granular, bitmask-based role permissions shared across bot and dashboard.
- Audit Logging — Full audit trail for administrative actions across guilds.
- Documentation Site — Nextra-powered docs with full-text search.
Architecture
Bun workspaces monorepo with Turborepo for orchestration. Seven apps and seven shared packages:
| App | Purpose |
|---|---|
| Dashboard | User-facing Next.js 16 app for event and guild management |
| Admin | Internal admin panel (Next.js 16) |
| API | Elysia REST API running on Bun |
| Discord | Discord.js bot with slash commands |
| Docs | Nextra documentation site |
| Scheduler | Cron-based event scheduling service |
| Migrations | Prisma migration runner for CI/CD |
Shared packages provide the database client (Prisma), type-safe API client (Elysia Eden), permissions, error handling, logging, and shared TypeScript types.