Chat & DMs
Real-time conversation, organized into community channels for the whole neighborhood and one-to-one direct messages for private exchanges between two residents.
On this page
Two tabs: Community and Direct
The chat page has two tabs at the top. Community shows the shared channels every approved resident can read; Direct shows your private one-on-one conversations with other residents. The URL keeps the tab and the selected channel in sync, so you can deep-link to either side from anywhere in the app.
How channels are organized
Channels are grouped in the left rail. The default groups are Management (board and management channels), Committees (one per committee that has a linked discussion channel), Residents (the general community channels), Polls (per-poll discussion channels created when an admin checks the box on a new poll), and Archived (read-only channels that are out of rotation). Admins can rename or reorder these groups in Site Settings.
Most channels are open to every approved resident. Some are scoped: board channels are visible to board members only, management channels to admins, and a committee channel is visible to the residents who belong to that committee. Sidebar membership reflects what you have access to, not the full set.
Posting a message
The composer at the bottom of every channel accepts plain text plus three optional attachments: a GIF (chosen from the in-app GIF picker, which searches Klipy), a photo (uploaded to private storage and rendered via a signed URL), or an emoji picked from the standard emoji panel. You can use any combination of those on the same message.
Press Enter to send. Shift+Enter inserts a newline. Photos and GIFs send the moment they’re selected. there’s no separate confirm step.
Replies and reactions
Hover any message to reveal its toolbar. The reply icon quotes the message in your composer and sends your reply as a child of the original; the quoted preview shows above your message so the context is visible without scrolling. The smile icon opens an emoji picker for reactions. Reactions group by emoji and show the count. clicking your own reaction removes it; clicking someone else’s adds yours next to theirs.
New messages, edits, deletes, and reactions all stream in over realtime, so you don’t need to refresh to see what others are doing.
Editing and deleting your own messages
You can edit or delete any message you sent. Edited messages render with a small (edited) tag. Deletes are soft. the message body is cleared and the row is flagged as deleted, so replies that quoted it still render a “message deleted” placeholder rather than vanishing. Admins can delete anyone’s message; the same soft-delete applies.
Unread counts and read receipts
Each channel in the sidebar carries an unread count. The count is the number of messages posted after your last visit to that channel. Opening the channel writes a read-receipt timestamp for you, which clears the badge and becomes the floor for the next round of unread counting.
DMs use the same mechanism. each conversation in the Direct tab shows an unread count when the other person has sent something since you last looked.
Direct messages
DMs are strictly one-to-one. Group DMs aren’t a thing. To start a conversation, click another resident’s avatar or name anywhere in the app, then pick Message from the profile popup. If a DM channel between the two of you already exists you’ll land in it; if not, one is created and you land in it. The thread supports the same text, GIF, photo, emoji, reply, and reaction features as community channels.
Blocking another resident
The profile popup also has a Block action. Blocks are bidirectional: once you block someone, neither of you sees the other’s DM thread in the Direct tab, and existing messages between you are hidden on both sides. Community channel posts still render to everyone. blocking is a DM-side tool, not a community-wide mute. Your profile page has a Blocked Users accordion for unblocking.
Timeouts and bans
Admins can timeout or ban a resident from community chat. A timeout is a time-limited mute. the resident can still read every channel but can’t post, react, or edit until the timer expires. A ban is the same restriction with no expiration; it lasts until an admin clears it. Both states are enforced in realtime, so the moment an admin lifts a ban the affected resident can post again without reloading.
Admins reach the moderation menu from a resident’s row in the admin Users page, or from the Shield icon in a message’s toolbar inside chat. Bans and timeouts apply to community channels only. DMs are unaffected, since DMs are scoped to two consenting residents and either side can block the other directly.
Archived channels
Channels in the Archived group are read-only. New posts, reactions, and edits are blocked. Archiving happens in two ways: an admin archives a channel manually from its settings, or the system archives it automatically when a linked poll closes (and unarchives it if the poll is reopened). Either way the history stays browsable; only the composer is hidden.