Together is a self-hosted Discord alternative built for small gaming communities. One binary. One database. Full ownership.
Built for communities of 20–500 people
Features
The features your community actually uses, without the bloat your community doesn't.
Real-time chat with threading, pinning, reactions, and custom markdown formatting. Familiar feel if you're coming from elsewhere.
P2P WebRTC — your audio goes directly peer-to-peer. The server only relays signaling packets. No media touches your infrastructure.
Share your screen with the group. Broadcast games, demos, or whatever you're working on. No configuration required.
Native-feeling desktop app (Tauri), full web client, and mobile apps for Android & iOS. One codebase, three platforms.
Build bots with token authentication. Integrate with external services via HMAC-SHA256 signed webhooks.
Spam filters, word filters, role-based permissions, timeouts, kick, ban. Audit log tracks everything.
Create server events and polls natively. No bot required — they're built right in.
Search every message with PostgreSQL's built-in full-text search. Fast, reliable, no external search engine needed.
Custom server emojis, emoji reactions, and a built-in Giphy picker. The essentials.
Architecture
No microservices. No Redis. No message queues. Just a well-designed monolith in Rust.
A single Rust binary (~12k lines), one Docker Compose file, and a Postgres container. That's the whole deployment surface.
Why Self-Host
Self-hosting isn't for everyone. But if it's for you, you'll know immediately.
Install
No account signup. No vendor lock-in. Just one command.
# Grab the compose file curl -fsSL https://raw.githubusercontent.com/jtjenkins/Together/main/docker-compose.yml -o docker-compose.yml # Set your secrets (JWT_SECRET, POSTGRES_PASSWORD) curl -fsSL https://raw.githubusercontent.com/jtjenkins/Together/main/.env.example -o .env.example cp .env.example .env # That's it docker compose up -d # Open http://your-server and register. # The first account becomes the admin.