TALK
The chat your team already knows.
Public and private channels, direct messages and group chats, with reactions, mentions, polls and read receipts. Everything runs on your server, with no outside services.
No message limit, no history paywall.1
history: kept in your Postgres for as long as you keep it
Overview
Channels for every team and project.
Public channels anyone can browse and join; private ones by invitation or by role. Channel owners rename and archive them, and everyone drags their sidebar into their own order.
Reactions, polls and mentions, built in.
React with a click, ping @here, @channel or a whole role, and run a poll with anonymous votes and a deadline. Stickers and GIF cards ship with Smack, so nothing calls Giphy or Tenor.
Know what landed.
Ticks show sent, delivered and seen on your own messages, presence dots show who’s around, and webhooks bring Jira and Sentry alerts into a channel by changing one URL.
HOW IT WORKS
Create a channel and post your first message.
01
Create the channel.
Click + next to Channels and choose Create channel.
02
Name it and choose who sees it.
Type
apollo-launch, pick Public or Private, and press Create.03
Add people.
Choose Add people and pick Jonas and Hana, or link a role.
FOR ADMINS
What admins control.
- Attachment size.
- Set the per-file limit from 1 to 100 MB; the default is 25 MB.
- Edit and delete window.
- Messages can be edited or deleted for 5 minutes by default. Set it from 0 to 1,440 minutes; it applies to everyone, the CEO included.
- Who can send messages.
- Channel owners can limit posting to selected people for announcement channels. Everyone else can still read and react.
- Webhooks.
- Each channel’s integrations can be regenerated or switched off at once.
- History.
- Messages stay in your database until you delete them. There is no message cap.
Use cases
ENGINEERING
Release threads that stay readable.
Pin the release checklist in #apollo-launch and keep the noise in threads.
OPERATIONS
Announcements people can’t reply-all to.
Limit #announcements to two posters; everyone else reacts.
SUPPORT
Alerts where the team already is.
Point Sentry at #alerts with a Slack-format webhook.
And so much more.
- Long pastes over 4,000 characters become message.txt
- Quote-reply and forward any message
- Bookmark messages and keep notes to self
- Link previews fetched by your server
- Copy button on code blocks
- Away after 20 minutes idle
- “Viewing now” avatars in channels
- Group DMs
Questions.
Something else? Talk to usCan we import our Slack history?
Not today. Smack starts clean on your server, and your Slack export stays with you.
Is there a limit on messages or history?
No. Messages stay in your Postgres database for as long as you keep them.
Do link previews call outside services?
Your server fetches the page to build the preview and refuses internal addresses. The visitor’s browser never contacts the linked site.
Where do the GIFs and stickers come from?
They ship with Smack under open licences. No GIF or emoji provider is contacted at runtime.
Which webhook formats work?
Slack payloads (text, blocks, attachments) and Discord payloads (content, embeds). Existing relays only need the new URL.
Can someone edit a message after people have read it?
Only within the edit window your admin sets, 5 minutes by default.
SAY IT ONCE. FIND IT LATER.
Docker Compose · Postgres · your S3 bucket · your domain