In the spirit of the holidays, we're doing a few posts on Free/Open Source projects that we use every day, that isn't what we sell. We're kicking the series off with Matrix, a communication platform we've blogged about several times in the past, but the project keeps coming up with new ways to impress.
Matrix has become as vital a platform to us as Email. As a team that's fully remote, we use Matrix to communicate about everything. Every project has a Matrix room, every system we operate feeds info into these rooms, and Matrix rooms and bots drive our delivery processes, testing, and more.
But beyond how we use Matrix internally, it's a pretty awesome platform we'd love to see everyone start using. Why?
Group chats, far better than SMS
I hate SMS. Lately SMS has become extremely unreliable. We have many different SMS group chats with friends and family -- but they are such a pain:
- You never know exactly who's in the chat. Sometimes my wife is part of a chat, but not me - she doesn't realize it, but assumes I've seen it.
- You can't be reliably added later. Once people start responding to a group, if somebody adds you the conversation forks, and others may still reply without you getting the message.
- You have to use your phone. If I'm sitting behind my computer, I would much rather use a regular keyboard, but I can't easily do this without a bunch of work.
- It's unreliable. Some messages just plain don't arrive. I've had messages show up mysteriously months after they were sent, causing all sorts of confusion. Sometimes my wife will reply to a group message, and I see everybody else's message but not hers.
- You need a phone number. We're trying to keep some limits on tech for our pre-teen daughter, and she's chafing that she can't text her friends.
There are so many other platforms for group messages, all of which beat SMS -- so why is SMS still the ubiquitous lowest common denominator?
The other platforms people do like to use all seem to be silos that still exclude people. Matrix has just about every feature any of the rest of them have, and at least three characteristics that make it better than almost everything else out there.
Matrix, Matrix clients, and getting started
So the confusing thing about Matrix is that it's a tiny bit more complex than competitors like iChat, WhatsApp, Telegram, or Signal. Matrix is not a service or an application -- it's a platform. Like Email. If you want to use email, you need to sign up for a service somewhere, and then you need to access it through some sort of email software.
If you want easy email, you might just go to Gmail and sign up for an account. If you want easy Matrix, you can just go to Element.io or Beeper.com and sign up for an account. But there are many more places to get a Matrix account, and you can run your own server (or have us run one for you) if you want. I've set up a Matrix server for my daughter to use with her friends, and the Element folks will run servers for you for a nominal fee, if you want to have your own domain for your chat system.
Element.io is the main company behind Matrix, and their client, "Element", is the leading software you use to send messages on Matrix. It's available for Android and iOS, or you can download a desktop app or just use an Element website. But it's not the only client -- there are dozens of other options, many of which are quite a bit easier to get started with. You might try FluffyChat or Schildichat if you'd like a simple easy-to-learn interface that resembles other chat apps.
For the most part, we just use Element, and this is where most (but not all) of the really cool stuff is happening.
Matrix, Element features
So at its heart, Matrix is "just" a chat system. But it has a growing, impressive list of features beyond just chat:
- Voice and video calling -- in a private message, this can replace phone calls. In group calls, this uses "Jitsi" under the hood, which can replace Zoom or any other video chat system.
- End-to-End encryption (E2EE) -- this is the gold standard for keeping your messages private. With E2EE, even server administrators cannot see your messages. They can see when you sent a message, and who is in the room receiving it, but nothing else. This security is on par with Signal, which is the market leader for secure chats.
- Threaded messages -- beyond basic chat messages, Element has threaded chats much like Slack or Discord, which you can use to split off side conversations from the main discussion (currently in Beta, but becoming stable next month!)
- Voice messages (Push-to-talk) -- Easily send a voice message to a room
- Voice broadcasting (experimental) -- start a live voice stream in a room
- Video rooms (beta) -- much like Discord video rooms, have a long-running connection that remains active even when you switch rooms
- "Spaces" -- a collection of rooms you can create as desired, to keep certain chats together. These can be nested -- I have a couple spaces for work, others for Seattle-related groups, and others for open source communities I'm part of. This makes it possible to be in hundreds of rooms while keeping your active ones in focus. Spaces can also be published so others can use them, and rooms can be set to allow members of a space to join them freely without needing an invitation.
- Custom "Widgets" -- much like the various things you can add to Slack, there are many different integrations you can add to Matrix rooms. Some of these can be shown in a pane alongside your discussions, and take context from the room.
The Spaces feature is something I haven't seen elsewhere. It's similar to a Discord "Server" or a Slack "Team", but quite a bit more powerful -- you can easily create personal spaces with any collection of rooms you're a member of -- it's a powerful organization system.
That's not all that's happening in Matrix. There's a Virtual Reality client being developed, called Third Room, similar to what Meta (Facebook) is doing -- only it already works, is fully open, and runs on top of Matrix.
The creators of Matrix had both VR and "Internet of Things" purposes in mind when they designed the protocol. There are games you can play in Matrix rooms. I've attended a few virtual conferences that were entirely hosted on Matrix (and Jitsi), with great success.
Three reasons why Matrix
I wrote earlier about three reasons Matrix beats the other chat options out there, so here they are:
- It's free/open source. Anybody can run all of it, with enough technical skill.
- It's federated -- just like email, or the Internet itself.
- It's an entire ecosystem -- you have choices for how to interact with it.
There have been a couple other previous systems that check these boxes: IRC, and XMPP. IRC never had the feature set that Matrix has, and its user base has dwindled dramatically since other systems have risen. XMPP (Jabber, Gtalk, etc) advocates do sometimes seem a little bitter to see Matrix's success, because it certainly is a capable platform -- but Matrix is quite a bit simpler for developers to work with, and having a strong central specification means that all the Matrix clients and servers interoperate much better.
But compared to everything else? There's no comparison. You're either stuck in a walled garden (Slack, or Discord, or WhatsApp -- you can only chat with other users of the same service, no way you can chat from Slack to Discord), or you're at the mercy of a closed proprietary company which might change its terms on a whim (ask a long-time Twitter user how that's working out, or anyone who used Google Reader).
In the 80s and 90s, the early Internet companies like CompuServe, AOL, Prodigy, and various billboards, could not email each other or access content on the other platforms. They were all competing for dominance, but it was an open Internet protocol called "SMTP" that won -- SMTP is how email is delivered today.
Matrix is the SMTP of chat. If you're not using it now, you will be soon. Why wait?
For more, TechCrunch just published a similar story on Matrix: https://techcrunch.com/2022/12/30/inside-matrix-the-protocol-that-might-finally-make-messaging-apps-interoperable/