User devices
Primary device
- Every user on Comm has a primary device
- This can either be a cell phone, or a full-fledged keyserver (see below)
- Your primary device owns your private keys and personal data
- When you send messages to your friends, those messages get stored on their primary device
- Your other devices all "proxy" through your primary device
- When you send a message on a secondary device, it goes to your primary device first so that it can be signed with your private key
- When you receive a message on a secondary device, it is initially received on your primary device and then decrypted with your private key, before being forwarded to your secondary devices
Keyservers
- A keyserver is a primary device that can also host communities
- Keyservers are necessary to host communities because they can handle background processing and respond to queries on-demand
- You can use our desktop app on your laptop (macOS or Windows) to host a keyserver, or you can host a keyserver as a Linux service
- Comm is not able to control who has access to the data on a keyserver
- For instance, if your friend is hosting a keyserver on a parent's computer, presumably the parent has access to that data
- Or if you choose to host a kesyerver on a cloud service like AWS, then presumably Amazon has access to that data
- Multiple users can share the same keyserver
Core Concepts
Communities
- Communities in Comm are like servers in Discord
- Each community is hosted on a specific user's keyserver
- Users in Comm can be a member of any number of communities
- You don't need a keyserver to join a community, but you do need one to host a community
Chats
- There are two distinct kinds of chats in Comm:
- DMs
DMs are similar to chats in iMessage, WhatsApp, or Signal. When you send a message to a local thread, your primary device encrypts that message separately for each recipient, and then sends it directly to each recipient.
- Communities & channels
Chats inside a community are called channels, and they are similar to channels in Slack or Discord. When you send a message to a channel, your primary device encrypts that message for the community host's keyserver, and the community host's keyserver handles sending it to participants.
- Because they are hosted on a keyserver, channels are more full-featured than DMs
- Channels can have complex roles and permissions
- You can scroll back or search through all of the historical messages of a channel, even if those messages were sent before you joined the channel
- Channels can have other channels as children
Threads