Skip to content

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

FieldWhat it represents
Chat keyUnique identifier for the conversation
ParticipantsThe two users in the conversation

Message fields

FieldWhat it represents
ChatThe conversation this message belongs to
RecipientThe user receiving the message
ContentThe message body — text, an image, or a video

Relations

Business Rules

Starting a chat:

  1. Any user can start a chat with any other user — follow status is not a requirement.
  2. Each conversation is between exactly two users; group chats are not supported.

Sending messages:

  1. A message must be directed to a conversation the sender is part of.
  2. Content can be plain text, an image, or a video.
  3. Sending a message triggers a push notification to the recipient's registered devices — see Notifications.
  4. If the recipient has blocked the sender, or the sender has blocked the recipient, the push notification is suppressed; the message is still recorded.
  5. A user cannot trigger a notification to themselves.

Chat list tabs:

  1. 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.