Matrix is a decentralized network for secure messaging and a bridge for other protocols, including Slack, Telegram or Discord. At its heart, it basically consists of servers and clients, where messages are replicated over the network and can be processed by different clients, using different messaging protocol. For instance, you could use your favorite IRC client to send a message to a Matrix channel, while the reverse also holds: a Matrix user can connect to Freenode using, e.g., the Riot application. An advantage of decentralization is that there’s no interruption in case one server fall down, and your conversation remain alive when you switch from your Desktop client to your mobile phone. No more IRC bouncer needed, you get the same experience as with Discord: your conversations stay archived, available at all time, and they can even be deleted or edited, while offering rich-content support. And there’s VoIP! In a sense, this is the IRC for the 21st century.
Maintained by the non-profit Matrix.org Foundation, we aim to create an open platform which is as independent, vibrant and evolving as the Web itself… but for communication. matrix.org
I’ve been using IRC occasionally several years ago, until it somewhat fades away because of Google talk and groups, Q&As sites like Stack Overflow, Reddit or Hacker News, and lately Gitter. Well, this was probably at the same time I had an ICQ account, really. In a certain sense, Matrix provides to IRC and other messaging protocols what Trilian or Adium were to ICQ and the rest of the messaging apps at that time. I’ve got into Matrix some months ago. I really did heard about the project two years ago, but I was not really interested at that time. Now, with my joigning some IRC folks from time to time, I thought I will either have to setup a self-hosted IRC bouncer like znc (otherwise, it really sucks sometimes) — since free bouncer are just a joke, apparently — or I will have to find a way to keep my chat sessions archived. When I’m not using Emacs as my IRC client, I am happy with Textual which allows to keep a large history of past conversations. Yet this does not solve the problem that everything is lost when you’re away. As for connecting to Discord, I can use Bitlbee, and even get notifications when someone ping me on Discord. Again, this is just plain IRC, so no rich-content, no screen sharing or face-to-face video calls, and no history of past conversations.
Here comes Riot, which acts as a glue app to provide an unified and better (as a matter of fact) experience with IRC, Slack, Telegram, Discord, and Matrix of course. Note that the authors really take security issues seriously: you can verify all (present or previously) connected devices using two-way auth, and conversations are well secured if you allow the app to encrypt them. I don’t use Slack, I no longer use Telegram, and I didn’t test the Discord bridge, which apparently works both ways. As the time of this writing, the IRC <-> Riot bridge seems a bit buggy since I can’t identify my IRC nickname on Matrix, so I keep joining IRC channels like a ghost. Maybe this is related to this issue, or not. I look forward to finding an easy solution in a timely manner. For the time being, I’m happy visiting some Matrix or Gitter channels and have a complete record of the conversations happening on the IRC channels I usually follow (e.g., #racket, #lisp, #clojure, #scheme, #org-mode).