sermoLatin. Conversation, discourse, the talk itself.

Every conversation your team needs. Nothing it doesn't.

A real-time messaging workspace built on the four things that actually carry the work: channels, threads, presence, and read state. No feed. No filler. Just the room where it happens.

Free to start. Run it on our cloud, or run the binary yourself.

Go, PostgreSQL, Redis WebSocket fan-out Multi-tenant on every row SSO allowlist and JIT provisioning Native desktop clients

The primitives

Four things, built properly.

Most chat tools grow outward until nobody can find the message. SERMO went the other way. We took the handful of primitives that a working team genuinely leans on, and we made each one behave correctly under load, on every device you have open.

  • Channels

    Public for the whole workspace, private when it needs to be. A channel carries a topic, a description, and a member list, and nothing else.

    • Public and private
    • Browse and self-join
    • Topic and description
  • Threads

    Replies stay exactly one level deep. There is no reply to a reply, so a discussion can never fork into a maze you have to excavate later.

    • Reply count and avatars
    • Auto-follow what you touch
    • Send to channel, optionally
  • Real time

    Messages, edits, reactions, typing and presence all ride one live connection. Open SERMO on a laptop and a phone and they stay in lockstep.

    • WebSocket fan-out
    • Redis pub/sub
    • Multi-device read sync
  • DMs and presence

    One-to-one and small group DMs, plus an honest availability dot. Active or away. Ten idle minutes flips it, and no one can fake it green.

    • Group DMs
    • Active or away, only
    • Typing indicators

Built for teams

Boring where it counts.
Fast where you feel it.

The interesting engineering in a chat tool is not the chat. It is isolation, ordering, and read state, done so plainly that they never surprise you at 2am.

  • Isolation is not a setting

    Every row carries a tenant id and every query filters on it. There is no code path where a workspace can see another workspace, because there is no query that could.

  • Ordering you can trust

    A message id is its timestamp, unique inside its conversation, and it sorts lexicographically. History, paging and threads all fall out of that one decision.

  • Yours to run

    One Go binary, PostgreSQL, and Redis. Take our cloud, or take the compose file and keep every message inside your own network. Same build either way.

Pricing

Priced per person, not per feature.

Channels, threads, reactions, mentions and presence are in every tier, including the free one. We do not hold the product hostage.

  • Free

    $0forever

    For a small team finding its feet.

    • Up to 10 people
    • Unlimited public and private channels
    • Threads, reactions and mentions
    • 90 days of message history
    Start free
  • Most teams

    Team

    $7per person / month

    For a company that lives in the tool.

    • Everything in Free, no cap
    • Full message history and search
    • Group DMs and presence everywhere
    • SSO allowlist and JIT provisioning
    • Native desktop clients
    Start a trial
  • Self-hosted

    Your boxyour rules

    For teams whose data does not leave the building.

    • The same binary we run
    • PostgreSQL and Redis, nothing exotic
    • Unlimited people and history
    • Support and upgrades by contract
    Talk to us

Prices in USD, billed annually. Cancel whenever. Your messages export as JSON on the way out.

Say the thing.

Spin up a workspace in about a minute. Bring one channel, or bring the whole company.