Docs / Core features / Channels & chat

Channels & chat

Real-time conversation built on top of Supabase realtime. Messages, threads, reactions, mentions, file uploads, voice rooms, and direct messages — all in the same sidebar.

Real-time Threads Reactions Voice rooms Direct messages

Overview

A channel is a named, ordered stream of messages inside a server. Channels are grouped under categories (e.g. General, Engineering) which you can collapse to clean up your sidebar. SynStacks supports five channel types — text, voice, board, whiteboard, and wiki. This page focuses on text and voice; the others have their own pages.

SS
L
+
SynStacks
General
# general
# off-topic
standup
Engineering
# deploys
# bugs
# general General conversation.
K
Knop Today at 10:42
landing page looks good. shipping it 🚀
A
Ashton Today at 10:43
nice. the mac installer is live too: updates.synstacks.dev/mac
👀 2 🚀 1

Creating channels

Server owners and admins can create channels two ways:

  1. Quick create — hover any category in the sidebar and click the small +. Type a name, pick a type, hit Enter. Done.
  2. Server Settings — open Server Settings → Channels. From here you can also create new categories, reorder them, rename channels, set topics, and delete things.

Channel names are kebab-case (my-channel). Spaces get auto-converted to hyphens.

Sending messages

Click into the message bar at the bottom and type. Press Enter to send, Shift+Enter for a new line. Messages support inline markdown: **bold**, *italic*, `code`, ~~strikethrough~~, and triple-backtick code blocks with language hints.

Files, images, GIFs

Click the + button next to the message bar to attach files, or drag-drop directly into the chat. Supported formats:

TypeFormatsNotes
ImagesPNG, JPG, GIF, WebP, SVGInline thumbnails, click to expand.
VideosMP4, WebMInline player with controls.
GIFs (search)TenorClick + → GIFs to search Tenor's library inline.

Paste images directly from your clipboard — works for screenshots from macOS's ⌘⇧4 or Windows's Snipping Tool.

Threads (replies)

Hover any message and click the reply icon, or right-click → Reply. Your next message will be threaded as a reply to the original. Replies show as a quoted preview above the new message, with the author's name highlighted.

Threads keep conversations linked without cluttering the channel — useful for diving into a specific decision, bug, or proposal without derailing the main flow.

Reactions

Hover a message and click the smiley icon to react with an emoji. Click an existing reaction chip to add your vote, click it again to remove it. Reactions are realtime — when a teammate reacts, the chip count updates instantly.

You can react with any Unicode emoji. SynStacks ships with a full emoji picker (categories + search).

Mentions

Type @ to bring up a member picker, then start typing a name. Pick a member and the mention becomes a clickable pill in your message. Mentioned users get a red badge on the channel in their sidebar and (on desktop) a system notification.

You can also mention by display name or username — both work.

Pinning messages

Right-click any message → Pin Message to save it to the channel's pinned list. Open the pinned panel from the channel header (📌 icon) to see every pinned message at a glance. Useful for stickying decisions, links to PRs, or onboarding info.

Editing & deleting

You can edit or delete your own messages. Right-click → Edit (or Delete). Edited messages show a small (edited) tag next to the timestamp. Other people's messages can't be edited or deleted unless you're a server owner.

Voice channels

Voice channels are drop-in rooms — no scheduling, no invites. Click a voice channel to join it; click again or open another voice channel to leave. Other members appear as avatars inside the channel in the sidebar.

Controls live in the bottom-left near your profile:

Voice quality. Voice runs over WebRTC peer-to-peer with a Supabase realtime signaling layer. Works best with 2–8 participants per room; larger groups may want to use the chat-with-screenshare workflow in #general instead.

Direct messages

DMs are 1-on-1 conversations outside of any server. Click Friends from the home screen to see your friends list. Click any friend to open a DM.

Adding friends

Open the Friends panel and click Add Friend. Enter a teammate's username; they'll get a friend request, which they can accept or decline. Once accepted, you'll see each other in your friends list and can DM directly.

Friends list has three tabs:

Presence & status

Your status appears next to your avatar everywhere — in member lists, in DMs, and to your friends. Set it from the bottom-left popup or in User Settings → Profile:

StatusMeans
🟢 OnlineActive in the app.
🟡 IdleLogged in but away from keyboard.
🔴 Do Not DisturbSuppresses desktop notifications.
⚫ InvisibleAppears offline to others, but you still see everything.

Typing indicators show below the message bar when someone in the channel is composing. They time out after a few seconds of inactivity.

Roles & permissions

SynStacks v0.1.1 has three roles inside a server: owner, admin, and member.

ActionOwnerAdminMember
Send messages
React, reply, mention
Create channels & categories
Edit server settings
Kick / promote members
Delete server

A more granular permission system (per-channel ACLs, custom roles) is on the v0.2 roadmap.