Matrix is a lightweight free protocol for near real-time text and file based communication and, in theory but not practice, voice over IP and video telephony. The Matrix protocol is used by a network of servers who communicate and form a large chat network similar to Discord and IRC with public and private chat rooms where users can text-chat and share images, video clips and other files.
The Matrix protocol supports voice and video chat using WebRTC. Voice and video services are, in practice, not supported. The same is true for secure private messaging with end-to-end encryption.
Matrix aims to be a real-time communications protocol. There is, in practice, a noticeable and annoying delay between the time someone writes something on one matrix server and the time it shows up in the chat window of someone connected to another server.
Messages are shared between servers in the JSON format.
A lot of Matrix development is, for some reason, focused on a web service called "Riot". Those who setup their own Matrix server using the synapse matrix server software can optionally setup a web service using Riot. Riot runs on
node.js. The source is at github.com/vector-im/riot-web.
You will likely have to use the Riot web service to register an account on a server before you can use any desktop client. The desktop clients do have a "register" function - but it won't let you register an account. As an example, nheko will give you the option for opening a browser window to register a captcha when you try to register at most Matrix servers. Solving that captcha results in a message telling you to close the window and confirm that you solved it in nheko. Completing those steps will not actually register any account, something is broken.
Spectral is an alright desktop client for GNU/Linux desktops and laptops. It has a "Explore rooms" feature, which is nice. Major distributions do not have Spectral their repositories, nor do they have any other acceptable Matrix client available. Compiling Spectral is not that hard. You can either download the latest release from gitlab.com/spectral-im/spectral/-/releases or
git clone https://gitlab.com/b0/spectral.git/ to acquire the source. See Spectral#Installation for further details.
nheko is a fine desktop client for Matrix. It does not have any built-in method of listing or exploring available rooms on a server or Matrix network. You will have to know what room(s) you want to join and/or the addresses of people you would like to talk to.
The synapse matrix server software is the only mature and usable matrix server implementation. It is written in Python/Twisted and it requires a lot of RAM. It will by default listen on port
8448. You will need to use some kind of reverse proxy like nginx or apache in front of it.
Matrix rooms have addresses made up of
#roomname:serverdomain.tld. A room can have aliases, the same room can have many names. All the names look like
#roomname followed by
: followed by the servers domain.
Most clients will let you join rooms on the local server by joining
|url||software||白左 Code of Conduct||open for signups||country||ISP||info|
|allmende.io||Synapse 1.9.0||no||yes||Germany||Hetzner Online|
|converser.eu||Synapse 1.9.0||no||yes||France||Iliad Entreprises|
|feneas.org||Synapse 1.9.0||no||yes||Finland (actually Germany)||Hetzner Online|
|matrix.org / riot.im||Synapse 1.9.0+||no||yes||Unknown||Cloudflare||Very over-crowded.|
|perthchat.org||Synapse 1.9.0||no||yes||Australia||Aussie Broadband|
|tedomum.net||Synapse 1.7.3||no||yes||France||Tiscali Telecom||tedomum.net offers blogs, e-mail, mastodon and many other free software based services|
|tchncs.de||Synapse 1.8.0||no||yes||Germany||Contabo GmbH|
|weho.st||Synapse 1.7.1||no||yes||Netherlands||Coloclue||Wehost is a non-profit ISP|
Issues To Be Aware Of
You can, in theory, start a chat with anyone using any Matrix server or invite them to a room on your local server. This is, in practice, not always true. Inviting someone on another server may or may not work depending on both the server and the client the other party is using. The Matrix network is not in a state where everything just works as expected.