People who know me know I can get stubborn when I get sold on a particular technology. For the past year, my favorite is Matrix, a distributed chat system that addresses pretty much everything anyone wants from a messaging system. The only catch? Not that many "regular people" are using it yet. If you understand why it's so much better than anything else out there, why would you not start using it today?
Riot is the new name for the most polished, easiest to use Matrix app. The first big reason to use Matrix is that you have choice -- there are other apps for Matrix beyond just Riot, it's an entire ecosystem that is still in its infancy. To get started, visit https://riot.im in your browser, and/or download the Riot app for IOS or Android.
What annoys me about SMS
I have to use my phone. A friend sends me a text, and my phone is across the room -- and that's the only place it goes. With Riot, the message appears everywhere -- my phone, my tablet, my desktop, my laptop. All devices see the same history at the same time. I can answer from any device, and my answer shows up everywhere.
We have a friend out gallivanting the world. Nobody has to pay for text messages when you use Riot. There is no question about delivery -- messages may await our friend to get an Internet connection, but you can see how far down he's read, to know whether or not he got the message.
What annoys me about Slack
Slack is a hot new messaging platform for teams to work on projects. It keeps conversations in rooms, has rich media and bot support, and is overall a nice user experience. But it has a couple big flaws. First of all, you have entirely new logins if you interact with different Slack teams -- each group is siloed off with their own logins, you end up juggling a lot. Secondly, while Slack can be used for free, the free versions greatly limit the number of messages kept and the number of integrations you can do with other systems -- so searching history is crippled unless you shell out for a fairly hefty usage fee.
We can self-host our Matrix server and scale as big as we need, while only paying for the cost of our server. Plus, the entire history of a discussion can remain, available to searches in the future.
What annoys me about XMPP and IRC
IRC is a big way that open source projects communicate, and it's really a pretty amazing system. However, being text-only, it's hard to get non-technical users to care about using it. In many ways, Matrix is IRC re-imagined for a media-rich world.
XMPP had a shot at being an open, federated communications protocol with some of the same benefits as Matrix. We had our own internal XMPP server that we used for years before switching to Matrix. It was adopted by both Facebook Messenger and Google Chat -- but these services diverged in what they actually implemented, and nobody ever actually made their XMPP servers talk to outside servers.
Both IRC and XMPP suffer from lots of missing features -- in many cases these could be added to XMPP but because they aren't standard, you can't expect people you're conversing with to be able use. Things like embedded images, sounds, videos, synchronized history, voice and video chat, screen sharing, and more.
What annoys me about Telegram, WhatsApp, Facebook Messenger, Signal, Allo, Wire, etc etc
Every time you turn around there's yet another messaging service. Google has 3 or 4 different incompatible ones all by themselves. They're all trying to build their own big silo and rule the messaging world. All of them are centralized services, routing all their traffic through a single service. And none of them talk to any other service.
This means you have to join the service to talk to your friends on that service -- which means you end up needing to sign up for a bunch of different networks if you want to talk to everyone.
This is the same crappy situation we saw in the early days of the Internet, before the web -- there was AOL, Prodigy, CompuServe, and several other services -- and you could not email from one to another, you could only email other people on the same server.
Can you imagine what email would be today, if we still had those walled gardens? You would need a Gmail account to email your friends on Gmail, an Outlook.com account to talk to your friends there, a Comcast account to email your friends on cable... Ridiculous!
Yet that's exactly the current state of messaging on the web.
Except for Matrix. Matrix is the one messaging system that is making a really strong attempt to bridge to as many different networks as they can. There are already hosted bridges to Slack, several IRC networks, Gitter, and even Twitter and SMS, and bridges you can run yourself for Telegram, XMPP, and it sounds like there may even be one close to working for Skype.
The Matrix and Riot developers see a world where you can use the messaging app of your choice to reach anyone on any other messaging service, and are hard at work trying to make that world a reality.
What can you do with Riot?
Pretty much anything you can do with any other messaging platform.
- Access it from any device
- Have different chat "rooms" with a different set of participants, a topic, varying permissions
- Exchange images, documents, videos, rich text (markdown and HTML supported)
- Have rooms restricted to your own server, impossible to invite outsiders (for sensitive internal topics)
- Show full history of a room to all participants, new participants can see what was said before they joined
- Restrict history so that users only see messages after they joined
- "Permanent" links to a specific message in a specific room
- End-to-end (e2e) encryption, the ultimate in privacy, protect message contents entirely from server operators, governments you don't trust, corporations trying to index your messages and sell stuff to you
- Full room search, find things in your conversations from months ago
- Granular notification settings -- set some rooms to notify on every message, others only when your name is used, others not at all
- Growing number of bots and integrations available to hook up to rooms to synchronize content, notify on events, do whatever else you can dream up
- Run your own server, become completely self-reliant, not at the mercy of an external service
While there are a few cool features not yet in Riot, it's astonishing how quickly it has developed over the year I've been using it.
Things coming to Riot
The few small things other platforms have that Riot doesn't have yet, are all on the roadmap:
- Message editing
- Message reactions
- Threaded messages
- Ability to share encryption keys across devices, so you can read E2E messages from before you logged into a new device
- "Groups" functionality to group related rooms together
- "Pinned" messages
- Deleting rooms
- "read up to message" markers synchronized across devices
None of these are deal-breakers for me -- they will be nice to have when they appear, but I think Riot already is such a great user experience without these features.
What Matrix and Riot does that you can't get elsewhere
If you compare Matrix to any other messaging platform, for the most part you find that Riot can do pretty much anything the rest can do, and generally quite a bit more. Voice calls. Video calls. Screen sharing (secret "easter egg" feature). History search beyond the last 10,000 messages, and even across rooms. Invite users by email address. No need to share your phone number.
There's a few "killer" features, though, that rise above the rest, technical functionality that makes it the winner:
- Group chat encryption. With Matrix's "Megolm" double-ratchet encryption, chat rooms with dozens of participants can be fully encrypted, with no ability for the server to see what's inside. You don't have to trust your host with your private messages -- I would think this is a particularly useful feature for attorneys, accountants, or anybody who cares about their privacy.
- Distributed State Storage. It's not just chat -- we use Matrix right now to track the state of all the sites we manage, and a custom bot that uses this state to decide whether or not a site is safe to deploy. With all the hoopla around the Internet of Things (IoT), Matrix is actually a great platform for orchestrating things like home automation. I'm planning out how I can control things in my house right from the Riot app on my phone...
- Federation. This really is what Matrix has going for it -- it's a new standard that already has been adopted by several smaller projects to allow them to communicate with other systems.
Using a messaging system of any kind is a form of voting. The more people using a particular system, the more powerful that system becomes -- this is called the Network Effect, that the larger the network, the more value it has.
Right now, the largest messaging networks in the US are Whats App and Facebook Messenger -- both owned by a single company, both extreme silos that don't allow other networks to connect, neither capable of anything that you can't do in Riot.
Give Riot a try, and if you choose not to use it, tell me why you're voting for a closed, proprietary communications silo by using it, instead of voting for a future where we can all easily communicate regardless of which software any individual chooses to use. And if you'd like somebody to install and manage your own Matrix server, contact us and let's talk!
[Update: The intial post listed Tox in the section about centralized servers, but it is an e2e protocol that is peer to peer. Thanks for the correction, bb010g!]
Riot/Web now has full internationalisation support (as of a few weeks ago), with German/French/Brazilian Portuguese/Spanish/Greek/Thai/Chinese all translated or near-translated. Nobody's done Turkish yet though. Meanwhile we will be turning on E2E by default as soon as it's indestructible (personally I think Wire turned on E2E by default too early).
I just found out about Matrix/Riot and I'm hooked.
is riot supported on mobile browsers?
Not currently -- there are decent Riot IoS and Android apps, but the web app is a bit heavy/hard to use on mobile browsers....
I stumbled across Wire Messenger. It was the first one I came across that did not require a phone number. It's Open Source, end2end encryption, supported on all major OSes, mobile and Web. I have it running on Linux, Android and FireOS. Voice, attachments, Video, etc... have been very good so far.
I don't think you can group Wire with the likes of WhatsApp and Facebook Messenger. The first thing Telegram did was rummage through my contacts and display anyone else using telegram. It felt like a breach of privacy. Wire seems really focused on privacy issues. When I read that RIOT will allow you to see if someone else has read your message - this too seems like a breach of privacy. You either respect privacy or you don't.
I still like what I'm reading re: RIOT but... if the dev team needs a lesson about privacy, I'd rather just stick to a team that does understand this as part of their DNA.
Just to comment on
When I read that RIOT will allow you to see if someone else has read your message - this too seems like a breach of privacy. You either respect privacy or you don't.
... This is now configurable, you can turn off the read receipts functionality in your client settings, and it will no longer provide those.
There's also a couple of great improvements since the blog post above -- synchronized read markers across all your devices, and new Widgets that let you do video conferencing, shared documents, pinned notices, custom widgets within a room. And Group functionality is expected very soon!
Riot got me hooked too. Nice list and content btw. Glad too know all that you hate about those apps. lol.
I just recently migrated all my buddies into Telegram, and now I read about Riot. In what ways are Telegram and Riot different, and will the migration into Riot be smooth and user-friendly?
I can fully ack your comments about matrix / riot in this blog.
We are using matrix since Feb 2018 in combination with riot clients on Android, iOS, Windows and Linux.
My intention was to implement a family chat-platform for mostly used OSes, easy to use, easy to accept and fully featured as other messaging tools.
The choice was easy to make because matrix is open source AND available as client and server!
So we are using matrix-synapse combining als TLS / SSL Server encrypted by Let's Encrypt Cert under linux-server provided by a PostgreSQL DB and choosing riot als client platform for all devices.
Creating 1:1 chats or rooms is as easy as writing an email - after a few days of use.
riot co-exists beneath WhatsApp & Co - there can be more than "one-and-only" on a device i think.
Many arguments against riot are gone in 2018!
Language Support for many countries = done
E2EE (coming out of BETA) = done / nearly done
I hope matrix / riot becomes more and more public and will find it's way to all users who like their privacy but also wants to communicate in a convenient way with friends and relatives ...
Looks like a remake of discord ;D LMAO The only thing discord doesn't have or may not have or could have is e2e encryption smh
Can you run your own private copy of Discord?
What happens when Discord goes down?
Who can see your messages?
Can you talk to people on other chat services, such as Slack, IRC, XMPP?
Matrix, Synapse, and Riot are all entirely open source, which means you can run your own instance, and not have to care about any other instance. Matrix.org has gone down multiple times and we haven't noticed, because we're on our own server. I don't know about Discord's uptime track record, but we've been hearing about Slack outages fairly often...
And on our own servers, nobody can see our messages but us. No Matrix employees can see our messages -- what do you know about Discord employees? What assurance do you have that they are kept private, and how can you prove it?
Matrix has put a lot of emphasis on bridging all the various chat services out there. Some are less than cooperative -- but unlike the proprietary islands like Discord, Matrix is trying to work with other services instead of just trying to crush and replace them.
Discord, as a proprietary software as a service, is an entirely different category. What doesn't Discord have? Everyone I want to chat with. Matrix is aiming to make it so you can chat with anyone, not just those who have chosen the same island.
Why WhatsApp beats riot at the moment:
Sure this will change but its a fact.
Think about it im living in Germany. So the Riot app just needs to get a German gui right? Nope. Many turks live in Germany and they all have contact to Turkey like with the use of WhatsApp. The so there is also the Turkish language needed so that the turks in Turkey and Germany can change to Riot (Turks speak less English than Germans because its a completely different language family).
As you can see tranlating an app to a language can even affect a country in which the majority doesn't speak that language. So the more language Riot supports the better (i just wait for the day there I can finaly uninstall WhatsApp).
By the way the messanger wire haves the coul sketch feature which would be nice in riot (and an encryption which is active by default, very important).