Open-source community chat
Your community, your node, your keys.
tavrn is a chat for communities: text, voice and video, files, roles and moderation. Conversations are end-to-end encrypted, and anyone can run a node. All nodes together form one network, without a central service.
tavrn is open source and still in development: the code and the release candidates are public, and you are welcome to run your own node and try it. The official node is invite only for now.

What makes it different
Everything a community needs to talk, built so that nobody in the middle can read along.
Encrypted by default
Channels, direct messages, attachments and calls are end-to-end encrypted. The keys stay on your devices, so the people who run a node cannot read your conversations.
No centre
Anyone can run a node, and all nodes form one network. With an account on one node you can join rooms on every other node. You can use your own domain for your address.
Voice, video and screen sharing
Talk, turn on your camera or share your screen. Calls are encrypted with keys from the same groups that protect the text.
Bots that respect encryption
A bot is a visible member with a badge, and everyone is told when it joins. Rooms can say "no bots", and webhooks can post into encrypted channels without being able to read them.
Moderation for real communities
Roles and permissions, an audit log, reports, bulk actions with a preview, and automatic moderation that works without reading encrypted messages.
One container to self-host
A node is one container image with the web app built in. Add a database and the reverse proxy you already have, and your community has its own home.
How it works
Three ideas, and no central server anywhere.
Your account lives on your home node
You sign up on one node, your home node. Your address carries its domain, much like an e-mail address: alice@example.org.
A room lives on exactly one node
Each room lives on one node. Members from other nodes connect to it directly, so the room's data stays in one place instead of being copied everywhere.
Nodes only pass on short notes
Nodes send each other small signed notifications: an invite, a friend request, "you have a new message". The conversations themselves stay where they belong.
Interactive diagram: three nodes
The room night-owls lives on exactly one node, gaming.example. Alice and Ben connect to it directly, each with a short-lived pass from their own home node.
Alice's account lives on her home node, example.org. That is where she signs in, and her address is alice@example.org.The room night-owls lives on exactly one node, gaming.example. Alice and Ben connect to it directly, each with a short-lived pass from their own home node.Alice invites Ben. Her node sends a small signed note to Ben's home node, club.example. That kind of note is all nodes say to each other.What the node operator sees
End-to-end encryption means a message is locked on your device and only unlocked on the devices of the people in the conversation. The node in between stores and forwards it, but cannot read it.
To be honest about the limits: a node still sees metadata, such as who is in a room and when someone writes. Room admins can make a single channel readable on purpose, for example a large public one; then every app shows a permanent notice.
What the members seeWhat the node sees
Mira
Raid tonight at nine?
Encrypted message, unreadable without the keys.
Jonas
I'm in. Bringing snacks for the stream.
Encrypted message, unreadable without the keys.
Lena
Same here. Voice opens at quarter to nine.
Encrypted message, unreadable without the keys.
The members' devices hold the keys, so they read the messages as usual.The node only stores sealed messages. Without the keys, they are noise.
A closer look
The web app works on phones, tablets and computers, and the apps for Windows, Linux and Android bring the same client.
Text channels
Formatting, code blocks, replies, reactions, pins and the member list, grouped by roles.

Voice and video
A stage for the people talking, cameras and screen sharing. Calls are end-to-end encrypted, too.

Polls and date polls
Ask the channel, or find the evening that suits most. Results show after voting, and in encrypted channels the votes are encrypted too.

Shared folders
A folder tree per channel for the files a community keeps. End-to-end encrypted by default, down to file and folder names, and a room can keep its files on its own WebDAV or S3 storage. A channel created without encryption says so all the time.

Roles and permissions
Roles with plain switches for every permission, overrides per channel, an audit log and reports.

Search
Search works in encrypted channels as well: the index is built and kept on your own device.

Bots with buttons and forms
Bots post embeds, buttons, select menus and forms, drawn with the app's own controls. Every bot has its own permissions and is marked as a bot.

Run your own node
A tavrn node is one container image. Put it next to PostgreSQL and the reverse proxy you already have, set a few environment variables, and start it.
You need a domain, a server with Docker and, for voice, a range of open UDP ports. The first account becomes the node's admin.
# in a folder with the files from tavrn-node/deploy
cp .env.example .env # then set your domain
docker compose up -dReady when you are
Open the web app in your browser, download the desktop app, or read how everything works.
tavrn is before its first stable release, and the encryption has not been independently audited yet. Treat it as pre-release software for now.

