These days it can be overwhelming to select the best software to use because now more than ever, choices are abundant when it comes to software. Messaging and Communications apps are a great example of that because there are so many options out there. What if you’re looking for a messaging app that scale-able and privacy-focused? It can be even harder.
Thanks to the Element team, I’ve got a great option to show you. Element, previously known as Riot.im, is a cross-platform client that works on the Matrix protocol. What does that mean? Is Neo the One? Well, let’s talk about what the protocol and why you should consider using this great messaging platform.
What Is Matrix?
Matrix team describes it as an “open standard for secure, de-centralised, real-time communication”. First, its open source, more eyes equals better code. We all know how much I love open source…but for the uninitiated, that means more people can read and study the code, security vulnerabilities can be found and fixed faster, and other projects and contributors can build effective integrations into the source project.
Second, its decentralized. This is a little more complicated, but think of it this way, when you stand up an instance of a decentralized application, that is your space. This could be for a family, a meetup, or a company. Every thing would be self contained until you make your instance discoverable. At that point, you@yourhomeserver.com can reach out into the world and find say friend@anotherserver.com.
Thirdly, Matrix supports real time communications. This includes collaboration, messaging, voice, and even video! Matrix provides a series of encryption algorithms and bridges to facilitate end user applications to communicate with one another. You may use Etherpad for real-time collaborative document editing, Jitsi for video conferencing, and in today’s blog post, Element for messaging.
Some of the most popular bridges for Matrix are IRC and Gitter. The Open Source Community jumps in with some of their own too, including Telegram and Google Hangouts.
Matrix enables the communications between these platforms within an instance or throughout the interconnected network of Matrix instances across the Internet.
What is Element?
If Matrix is the network, then the Element client is the vehicle that allows you to traverse that network; Element is the interface for text, voice, and video conversations. Just like the Matrix protocol, the Element client is completely open source!
With the ability to bridge between different apps like Slack right into the Element interface, you no longer need to install and maintain a dozen different apps just to keep in touch with friends, family, work, your volunteer group, your work’s other chat client…you get the idea.
Create an account, activate the needed integrations, and chat with anyone, anywhere on any number of different platforms. Enjoy 1:1 conversation or hundreds of participants in public rooms.
Bonus: One of my favorite features? Notifications management. I can have every notification from every room, set it to only being notified if I am tagged, or never get any notifications…ever. But Element didn’t stop there, nope, they have one of my favorite notification settings I have ever seen: keyword notifications.
Let’s say I want to know any time someone is talking about dogs. I can add keywords to my configuration and get notified anytime someone says dog, dogs, cats drool, you get the idea!
Element has the option to join the central server at Matrix.org, host your own server on your own server, or to pay a monthly fee to a secure, hosted option. In fact, from their website, you can get up to 5 active users a month for as little as $2/month (USD).
Creating Your Account
It’s now time for you to enter the Matrix and get in your Element. See what I did there? Alright, to get started you will need to create an account. One of the best things about Element is that you can use it on all sorts of devices like your laptop, tablet, phone or whatever.
For this guide, I’m going to show you how to do it on the Web client in your browser. So open up your favorite browser, such as Mozilla Firefox, and navigate to https://app.element.io.
Your browser will likely ask you to allow access to persistent storage. Accept it that way Element can store your keys, messages, etc. Next we are going to create an account.
We could create our account on Matrix.Org, but here is a little pro tip: The central server in a federation usually is over-taxed and prone to lag. So, if you know of another public-facing instance, that would be a good bet.
Lucky for us, the Destination Linux Network has some awesome community members that manage LinuxDelta.com, a community-driven hub for information on Linux Distributions, tutorials, and a Matrix server! Instead of using the Matrix.Org option, we are going to go to Advanced/Other:
In the ‘Homeserver URL’ field, type in: https://matrix.linuxdelta.com and click on the green next buttom. Next, it’s time to create a username. The username will be your display name as well so keep this in mind as you decide. This is what people will see you responding as and how they can tag or search for you! Then create a password, make sure its complex. No sense in skimping on security especially if you are utilizing a password manager, like Bitwarden for instance.
For me personally, I am a content creator and a community advocate. I want to be found in the open source community, so, I would add an email so people can look me up via email. If you do, you’ll of course be sent the customary email confirmation link. For now though, let’s go ahead and sign in.
Once you have filled in your username, password, and email go ahead and click the green Register button!
This next step is tricky, but stay with me. One of the advantages of Element we discussed was end to end encryption. We need to generate a Security Key (that is different from our password!). I typically recommend using a system generated key. Then you can use a secure note somewhere to store the key.
Disclaimer – I changed the security key after writing this blog post, so, don’t think you can get into my account that easily. 😀
Once you’ve saved your key somewhere safe, go ahead and enable notifications and read through some of Elements recent announcements.
Getting Connected
You are sitting with a brand new, secured account. Now what? Well, Element is a communication platform, let’s find some people to communicate with!
In the middle of the window, there is the option to “Explore Public Rooms”. Let’s click there. Element will default to your home instance, in this case LinuxDelta.com.
Get connected to The Geek Lab, for instance, by clicking join. That will put you in touch with hundreds of other technology enthusiasts like yourself who hang out, chat, and help each other fix technical problems.
Want to get connected to the broader world? Go back to the Explore button, next to the search bar. In the window we saw before, we have the option to Create a new room, or select a different server. Let’s hop over to Matrix.org.
There are literally thousands of public rooms covering a crazy number of different topics. Many open source projects have communities on Matrix. There are HAM radio enthusiasts, D&D (Dungeon and Dragon) hangouts, and even region-focused rooms.
The join process is exactly the same though for a different server, just find a room you want, click join, and start chatting.
There is plenty more to do and discover. From 1 on 1 conversations, adding bridges, and initiating video calls. However, for now, that is all the deeper we will go!
Closing Thoughts
You maybe surprised to hear that this is not paid content. I wrote this because I believe in Element. I believe that Matrix is going to have a HUGE part to play in the years to come. There are SO many (read too many) apps to keep track. Many of them have ads or tracking built in, or are limited to voice or text. Element, powered by Matrix, has it all. The integrations keep getting better. More and more bridges keep getting built (no pun intended, okay, maybe a little pun).
Open Source is the key. E2E (End to End Encryption) will ensure that your private conversations stay private… You know, I haven’t even mentioned the beautiful interface or that the Element Team release new features on a frequent basis.
So go sign up and give Element & the Matrix protocol a try. Though if for some reason you want some other messaging options then check out Michael Tunnell’s article here on Front Page Linux.
Eric, thank you for this remarkable guide. I am a COMPLETE noob when it comes to Matrix / Element and have a question for you or anyone else in the awesome DLN community:
Can one EASILY go about creating a server like the example given for LinuxDelta? I’d love to have something similar set up for Linux For Everyone. But reading the documentation at matrix.org has left me even more confused…
Great guide. Thank you.
A comment about the pricing:
The cheapest paid option, called Nickel, is $2 PER USER per month. 5 users are included, so that makes it $10 + tax per month. The prices are for annual billing, so it is $120 + tax up front.
The second cheapest, called Silver, has custom branding and at the same cost per user, but it includes 25 users, so the cost is $50 per month and again, it is with annual billing, so you are out $600 + tax.
Extra users are purchased in 5, 25 and 100 user bundles for the Nickel, Silver and Gold plans respectively and are also paid up front.
Users that have not been active for more than two days total or not been active for the last 30 days are not counted in your total active users.
The lead of Matrix did a pretty informative YouTube video about getting quickly set up. I was able to use this video and the install documentation on the github to get synapse up and running via Docker. The video doesn’t cover docker but it is a speed run of setting matrix element and jitsi on Debian.
Edit: I now realize that I just essentially posted “I watched this, didn’t do it that way, but did a completely different but related thing“ and I want to clarify that the YouTube video really really demystified the process in general and gave me a good idea of the system requirements needed to run a matrix synapse + element-web + jitsi instance. Spoiler Alert: Jitsi needs RAM.
Hey Jason, thank you for the feedback! I’ve really been enjoying Matrix.
As for setting up your own server, I haven’t given it a try yet. I’ve heard different degrees of success from folks. I hope to set one up soon. I’ll let you know how it goes.
Hi Jason!
A few things.
Join the discussion at forum.tuxdigital.com
1 more reply