Every project I’m involved in has some mix of ephemeral chat and more permanent, long-lived communication. It could be as simple as a Discord and GitHub issues. Everyone understands that the chat is for quick conversations and GitHub issues is where things are documented for collaboration.
In my experience, trying to force everyone into a single mode of communication becomes more of a problem. GitHub issues are impossible to follow when they have hundreds of side debates that should have been chats. IRC logs are impossible to consume when you have to search for vague keywords through endless months of backlogs to try to parse out specific topics.
Let people discuss things where it fits best.
Opening an issue is a huge signal, putting in little investment means the issue is likely to be closed with barely a look, and putting in a huge amount of investment is a waste of time when the issue gets closed as out of scope.
Having a less formal channel with lower investment from all parties is useful.
Matrix has perma links to messages and can be indexed by Google.
Asynchrony: threading should help here, perhaps also with long lasting
To contrast our needs, my number one requirement from a chat system is that free-text searches of discussions cannot be performed without limit by non-members and non-participants.
(I’m fine with bug trackers existing, of course.)
Discord servers can be configured to not require an account
>4
Each message has a URL. You can easily copy a link to a message.
>5
Discord allows you to search all messages in a server and use filters too.
But literally no one does this because of spam concerns
> Discord allows you to search all messages in a server and use filters too.
In Discord, while a forum or github issues or whatever will show up in your general internet search engine of choice.
Which is an absolutely terrible experience if you've ever actually needed to.
> Discord servers can be configured to not require an account
Still requires Javascript, no SEO, popups and nagging dialogs, overall bad experience.
Why?
1. Asynchrony. User needs time to collect data, write a bug report and so on. Developer needs time to reproduce the issue, work on it. Finally there are a lot of timezones - people ask/answer at different points of time.
2. Long lasting. Communication can take days, weeks and even months as new details emerge. Accessing a year old thread should be as easy as accessing a thread created yesterday.
3. Publicity. You want everything written to be as public as possible. Read access should be available to everyone without registration. Read access should be available via web browser. So that other users (who often experience the same issues) can easily find existing communication on the topic, and if they can't find it themselves you can at least send them a link which brings me to permanence.
4. Permanence. Each individual communication (message) should be accessible by a URI which never changes. Each individual communication page should have links to thread/parent/children/references.
5. Searchability. Follows from (3) and (4) but the easier it is for a user to find past discussions - the less noise you'll have.
Chat systems such as Discord, Slack or Matrix are fundamentally incompatible with these requirements as they are focused on synchronous, ephemeral communication.