Appearance
Chat
Overview
Any registered user can start a one-to-one conversation with any other user on the platform. Chats are organised in the app into two tabs — private (conversations with users the current user follows) and public (conversations with everyone else). Users can exchange text messages, images, and videos.
Fields
| Field | What it represents |
|---|---|
| Chat key | Unique identifier for the conversation |
| Participants | The two users in the conversation |
Message fields
| Field | What it represents |
|---|---|
| Chat | The conversation this message belongs to |
| Recipient | The user receiving the message |
| Content | The message body — text, an image, or a video |
Relations
Business Rules
Starting a chat:
- Any user can start a chat with any other user — follow status is not a requirement.
- Each conversation is between exactly two users; group chats are not supported.
Sending messages:
- A message must be directed to a conversation the sender is part of.
- Content can be plain text, an image, or a video.
- Sending a message triggers a push notification to the recipient's registered devices — see Notifications.
- If the recipient has blocked the sender, or the sender has blocked the recipient, the push notification is suppressed; the message is still recorded.
- A user cannot trigger a notification to themselves.
Chat list tabs:
- The app presents chats in two tabs: Private lists chats with users the current user follows; Public lists chats with users the current user does not follow. This distinction is handled in the app using follow relationships; the platform stores all chats the same way.
Constraints
- Only two participants per chat; group chats are not supported.
- Blocking suppresses push notifications but does not prevent message delivery.