August 2026Topics

Channels were fine five years ago

Work stopped happening in rooms, so we stopped building rooms. Naumu's whole permissions system is one sentence, and every share is five keystrokes - a hashtag.

Matija Fućek8 min read
topicschannelsaccess controlcollaborationteam chat

"Adding you here for visibility"

You have just read something a teammate needs to see. A decision that touches their work, sitting in a private channel they are not in. Sharing it should be the easiest thing in the world.

Instead, you pause. Because you have three options, and all of them are bad.

You can screenshot it and send the picture, like knowledge is contraband being smuggled past a guard. You can copy the messages into a brand-new group chat, where the conversation arrives as an orphan - no history, no replies, a second version of the truth that starts drifting from the first one immediately. Or you can add them to the private channel, and now they see everything, forever, including the twelve threads that were none of their business and a few that were not yours to show.

You will pick one, and whichever you pick, the tool makes you feel vaguely in the wrong - for wanting a teammate to have context. Every option is a small betrayal of what you actually meant, which was simply: this concerns you now. Come in.

Nobody designed this feeling. It is just what happens when the unit of access is a room and the unit of work is a conversation.

We built rooms because work used to live in rooms

Channels were the right answer five years ago. Teams were bigger and stabler, people had one role each, and the org chart could be mirrored as a hallway of rooms: engineering, marketing, sales. You joined the rooms that matched your job and stayed in them for years. It worked because work held still.

Work does not hold still anymore. Teams are small and everyone wears four hats. The same person does support in the morning and pricing in the afternoon. A conversation that starts as a bug report becomes a product decision and then a sales argument within the hour, and no single room was ever the right place for it.

The room model punishes all of that motion. Joining a channel is a commitment. Sharing one message is a favor someone has to grant. So people protect themselves the only way the model allows: they go quiet. Look at any workspace you have ever been in - the real conversations migrate into DMs and private channels, and the shared rooms slowly turn into announcement boards. That is not a discipline problem. Hiding is the rational move when visibility is all-or-nothing.

We felt this one first-hand. We build Naumu, a shared workspace where a team's conversations, notes, and decisions live in one connected place, with an AI that has read all of it and answers from it. This July, one of our pilot teams quietly retreated into their private corners and started asking the AI company questions there. They would ask what had been decided, and get nothing useful back, because the decisions lived where it was not allowed to look. They were not using the product wrong. They were telling us, without saying a word, that openness felt dangerous. That one stung, because we knew they were right.

The whole permissions system is one sentence

We spent months designing a permissions system. The final design is a hashtag.

Topics, the whole idea in 30 seconds.

In Naumu, conversations are filed into topics. A topic is a named audience you can type: marketing, sales, founders, whatever your team actually is. Topics live inside your space - your team's private workspace - so a hashtag here shares with your people, never with the internet. Most topics are open, meaning anyone in the space can look in. A topic can also be closed, visible to its members only. That is the entire hierarchy, and this is the entire access rule:

A thread is readable by its participants, plus everyone who can see any topic it is linked into.

No flags on individual threads. No permission matrix. No roles screen. One sentence you can hold in your head, which means one sentence you can trust.

Type #marketing inside a message and that IS the share: the thread files itself into the topic and everyone there can see it, full history included. The whole thread, yes - but one conversation you chose to open, not every conversation a room ever held. Realize sales should weigh in? Someone types #sales mid-sentence and the same thread now lives in both topics. Change your mind? Remove the topic and the access narrows again - and the thread says so, visibly, right in the conversation. Even sharing with one specific teammate follows the same rule: mention them and they become a participant, the smallest audience there is.

Getting to one sentence meant deleting our own cleverness. Our first draft still had a little switch on every thread, deciding between "whole org" and "participants only". Antun, who designed the access rule, spent an afternoon arguing with that switch and then deleted it. His summary in the thread, translated from Croatian: "The only thing that matters is that there is one mental model for privacy. And that's topics."

What we refused to build

A one-sentence permission model sounds, on first contact, like a system that will leak. So before any numbers: most of the design was restraint, and the refusals are the point.

  • No #general. Every chat tool has the room where messages go to be unread. Our catch-all, #misc, is deliberately not a topic: a quiet feed for unfiled conversations, with no unread badge and no guilt.
  • No topic creation by typo. An unknown #tag does not spawn a new topic. Creating an audience should be slightly harder than addressing one, or you get a hundred single-use topics and the trust drains out.
  • No silent flips. Making a closed topic open exposes everything inside it, so only a space owner can do it, behind a warning that says exactly that.
  • No notification firehose. Visibility is not notification. A topic makes a thread readable and searchable for its members; it does not page them. Generous with access, protective of attention.

And the refusal we expect to be measured by: nothing opens by accident. Two weeks of production data is not a track record, but the property we designed for is holding - no DM or private conversation has ever ended up in a topic. A thread only ever widens because a human deliberately typed the share. People stop hiding when they trust that.

What people actually do with it

Topics went live on July 22, so we will not pretend to have adoption charts. What we have is the workspace we run our own company in, plus the first outside teams who turned it on. Small numbers, one unambiguous shape.

Nobody uses the menus. Every topic filing by users outside our team so far - a small sample, two weeks old - was typed as a hashtag, mid-message. Not one came from a picker or a confirmation prompt. Given a menu and five keystrokes, people choose the keystrokes.

The hashtag is part of the sentence, not an afterthought: most filings happen within a minute of the thread starting. And then there is the long tail the room model never allowed - threads that widen after they have gone cold. One of our design discussions sat untouched for six days before someone typed #design under it, and later #product. Nothing was forwarded, nothing was pasted; the conversation just grew to fit who needed it. Of the threads people have filed by hand, one in six now lives in two or more topics.

The cleanest before-and-after comes from one of those outside teams: a sales team that moved over from Slack and brought its habits along. While new threads here still started private, they behaved exactly the way Slack trained them to - of the conversations they started in the app, 19 in 20 stayed private. A week ago we flipped the default, so a new thread starts open to the space and a single keystroke makes it private. Same team, same job, opposite shape: since the flip, nine in ten of their new conversations are shared. And the few that stayed private look deliberate - a rep keeping a personal daily call log, not a decision in hiding. The point of the flip was never to make privacy hard. It was to make openness free, and the moment it was free, openness is what people chose.

Topics stay small, on purpose. The median topic in our own workspace holds one conversation and three people. In the channel era that would be a dead room someone has to archive. Here it is precision: an audience can exist the moment it is needed, instead of waiting for a reorg to bless it.

Type the share

Channels answered a real question - who is allowed to see this? - one room at a time, for a world where people stayed in their lane. We are not the first to notice the mismatch: Zulip organized chat around topics years ago, and Gmail swapped folders for labels a generation back. The part we have not seen anywhere else is making the tag itself carry the access.

It is also the easiest thing about Naumu to explain in person. When we walk a team coming from Slack through it, the moment that reliably gets a reaction is not a feature at all: you just start writing, and decide where the conversation belongs later. No choosing a room before you are allowed to speak. The sentence comes first; the filing follows.

We think the next era of work runs on conversations that are open by default, private by choice, and shared the moment they concern someone new. Not because a policy demands transparency, but because sharing finally costs less than hiding. Topics are live in Naumu now, in every space.

If you can type, you can share exactly as much as you mean to.

What are you working on?

Whatever it is, drop it in - Naumu turns it into working memory you can query, and answers when you ask.

or just drop your pile