← All tools · team chat
Open source alternatives to Discord
Discord Nitro Basic plan starts at $2.99/mo (billed monthly) (pricing, checked 2026-10-16). Here are 3 self-hostable options – free to run on your own server.
Rocket.Chat
RocketChat/Rocket.Chat
MIT for everything outside ee/ and apps/meteor/ee/; those have their own license. License file
Build it yourself with AI
Hard: realtime voice/video plus servers/channels at Discord scale needs WebRTC and careful infra. A text-only community chat with roles and invites is a realistic AI-assisted build.
Paste this prompt into Cursor, Claude Code, Codex or any coding agent to build a minimal self-hosted Discord clone, deployable with Docker on a VPS.
You are a senior full-stack engineer. Build a minimal, self-hosted clone of Discord (team chat) that I can run on my own VPS. Keep it small, production-sane, and easy to maintain. ## Goal Replace my paid Discord subscription for a single person or small team. MVP only — no billing, no enterprise features. ## Core features (build exactly these) 1. servers with channels (text) and roles/permissions 2. realtime messaging via websockets with reactions and threads 3. direct messages and group DMs 4. file/image uploads with size limits 5. invite links with expiry and member caps ## Stack - Next.js (App Router, TypeScript) + Tailwind + shadcn/ui - PostgreSQL with Drizzle ORM (migrations checked in) - Auth: Better Auth (email + password, optional GitHub OAuth); every query scoped to the signed-in user/workspace - Background jobs (if needed): pg-boss on the same Postgres - File storage (if needed): S3-compatible (MinIO container) ## Data model (start here, extend only if required) User, Server, Channel, Role, Message, Reaction, Invite, Attachment Use UUID primary keys, createdAt/updatedAt on every table, and foreign keys with sensible ON DELETE behavior. ## Deliverables 1. Working app with the features above and a clean, minimal UI 2. docker-compose.yml with app, postgres, minio and Caddy (automatic HTTPS) — `docker compose up -d` must be all I run 3. .env.example documenting every variable; no secrets in code 4. Seed script with demo data 5. README: local dev, deploy on a fresh Ubuntu VPS (install Docker, set DNS A record, compose up), backups (pg_dump cron), and updating ## Rules - Build in small steps; after each feature, run typecheck and the app, and fix errors before moving on - Validate all input with zod; rate-limit public endpoints - Write a few Playwright smoke tests for the main flow - Ask me before adding any dependency beyond the stack above For reference (study the approach, don't copy code): https://github.com/mattermost/mattermost, https://github.com/RocketChat/Rocket.Chat, https://github.com/zulip/zulip
Recommended hosting
Disclosure: some links are affiliate links. If you sign up through them we may earn a commission at no extra cost to you. It never affects which tools we list. Details
One self-hosted swap per week
A new SaaS teardown and its open-source replacement, every week. No spam.
We only use your email to send the SelfHostThis newsletter (stored with our email provider Resend, EU). Every email has a one-click unsubscribe link, and you can ask us to delete your data anytime. We use double opt-in. Datenschutz · Privacy policy