Ben's Logarion ☪

Connecting With Friends on XMPP

| | | topics: Articles
id: 33d7a58a-03b3-4837-ac5b-82c36ed80d08

Introduction

The XMPP network is a growing and vibrant network thanks to a great software ecosystem and widespread adoption, and it offers many opportunities for users to connect and communicate over the network. However, one of the biggest roadblocks to adoption is a lack of awareness and what's called the "network effect".

Low awareness means people generally do not know what XMPP is, and they may even already be using it and still not know. They may not know what programs they can use to connect to it or what servers are available. The network effect means that people need other contacts on a network in order to use it, and so on an unfamiliar network like XMPP they may feel alone and that nobody else is using it.

Some people I know have already started using Conversations on Android at my insistence, so I decided to write this article to help them better understand XMPP's limitless potential and give practical tips on how to use it to connect with friends.

The Network Effect

Companies like Facebook and Google prey on the aforementioned weaknesses surrounding a network like XMPP, because by contrast instead of uncertainty about what programs to use and what sites to connect to, they make it simple and obvious: Download Facebook, connect to facebook.com. Instead of making you feel alone on their network, they make you feel that everybody is on it, that you have to be on it to connect with others. This double-whammy is enough to stop the majority of people from even considering XMPP as an alternative. However, XMPP still has some tricks up its sleeve:

For one thing, while the network effect seems to work against XMPP and in favor of giant monoliths, it can also be their undoing. That is because these behemoths are greedy and close their networks. Facebook is limited to just Facebook, WhatsApp to WhastApp, and Instagram to Instagram. (These three services are even owned by the same company and users on these apps still can't communicate with one another, though Facebook is more than happy to stalk you across all three.) Instead, if you use XMPP with Conversations, or on a venerable server like kwiecien.us, you are absolutely not limited to messaging only other Conversations users or only other users on kwiecien.us. In this way, being an open and Internet-wide network trumps whatever Facebook et al. have to offer.

Therefore, one thing to keep in mind is that switching to XMPP at first seems as inconvenient as switching to any other new service. The mentality that closed networks have created is that of, "I can't move to X service unless everyone else is moving with me." If you're using MySpace, you can't start using Facebook unless you take all your friends with you, or you have to stop using it because all your friends started using Facebook and are taking you with them. However, once you're on the XMPP network, you're no longer slavishly dragged around or forcing others to be; if you are happy using Conversations or happy with your account on conversations.im, and your friend wants to try a new app or server, they're certainly free to do that and they won't lose you as a contact. Nobody has to gather on a single server or follow others around, and nobody has to use the same app. This, of course, feels very liberating once you see it in practice.

Going back to the age-old analogy, it's easy to understand how this works when you consider e-mail. When you want to write someone an e-mail, you simply need their address and you're good to go. You don't ask them what app they're using to check their e-mail, nor do you need to sign up for an account on their server. (To imagine something so absurd.) If someone were to come along now and attempt to make e-mail work that way, they'd simply be ignored, just as today's closed platforms will soon be ignored.

Ways to Connect

If you've read up to this point you already got the basic idea that you needn't expect anything from your contacts except that they give you a valid XMPP address to reach them at. Ideally, it should be enough to tell someone, "Message me at user@server.net", but unfortunately we haven't gotten to that point yet because people don't know how. Here are some suggestions that can probably work for most people:

Conversations and Derivatives

Conversations has really been a game-changer for the viability of more widespread adoption of XMPP. It provides an unparalleled experience on Android, and you're probably already using it yourself. In the past, people used to focus more on using desktop computer applications, but now mobile is king.

As you may already know, Conversations is easy to find on Google Play and is free of charge on F-Droid, the "app store" of liberty. (F-Droid is not pirated software, but rather it is made for open source.)

Once someone installs Conversations, they are offered to create a free trial account on conversations.im, a server run by Conversations' creator as a paid service. I don't discourage anyone from using it (it's not expensive), but many free servers are available. You might consider the popular server dismail.de among others, and there are many.

Due to being open source, Conversations has a number of derivatives, and you might run across people using those instead. Some of them you might even suggest to friends if you think they'll find them easier than Conversations:

Quicksy

Quicksy is Conversations' twin that you probably didn't know about. It comes from the original author of Conversations as well, but it's configured to work with a special server, quicksy.im. But why?

Some people might find setting up Conversations to be a bit of a hassle. If you don't already have an XMPP account, finding a server and creating a login may seem like much effort. Conversations is a breeze to install if you already have an ID, sure, and it even offers to help you make one, but nowadays people are used to things like Telegram and WhatsApp where you enter your phone number as your login and it just works.

That's what Quicksy does; you provide your phone number and it automatically logs you in as something like +12223334455@quicksy.im and then you can start messaging anyone. As an added service, it can do as WhatsApp does and scan your phone's address book to see if anyone else you know is using Quicksy.

Unlike conversation.im, the quicksy.im server is free to use, and Quicksy is also costless on Google Play. This is all geared towards making it as easy as possible to get someone online. If you personally do not use Quicksy, you can pay a one-time fee of around 5 euros to add your phone number to Quicksy's directory, associated with your non-Quicksy ID so that any contacts who install Quicksy will automatically find you if your phone number is in their address book. (This is mainly to help Conversations and Quicksy users connect.)

The obvious downside to using Quicksy is that in exchange for the convenience that it offers, you are required to reveal your phone number to the service and other people you chat with. This is how WhatsApp and even the privacy-oriented Signal work, so naturally some people are comfortable with that, but others will definitely prefer not to use their number as their ID.

Snikket

Snikket is another notable Conversations clone whose site can be found here. The goal of this project seems to be to create a product that is free and easy to use. From what I can tell, they are trying to lead a community-based effort for admins to create their own private Snikket servers which others can join by invite only. It seems to me that this is not much different from any private XMPP server used with Conversations, and that they simply want to provide the full solution in a neat package to assist deployment.

Though I am not too familiar with Snikket, it is a brand new project and appears to be well-made. It is very well possible, that we'll be hearing more about it in the future.

Pixel-Art and Others

While I definitely recommend the original Conversations and also hold alternatives like Quicksy and Snikket in high regard, there are even more apps out there based on Conversations that you might run across. Pixel-Art Messenger is perhaps the most famous of them, and it is as far as I can tell just a customized version of Conversations, probably with some UI and behavior tweaks that might suit some users better. I have not tried it and would probably prefer Conversations, but it is free on Google Play and appears to be actively maintained.

Movim

What I consider to be one of the most interesting projects, movim.eu is a web-based application that labels itself as a "kickass social network", and if you were to log in you'd get the impression that what you're looking at is a social networking site like Facebook or Twitter. Surpringly, however, it is little more than an XMPP client that also supports something called "pubsub", which is a little-used capability of XMPP servers (most clients, including Conversations do not support this) to post status updates, public (for anyone) or private (for contacts only), that others can subscribe to and see in their news feed. In other words, you have a timeline you can post to and others can like, share, and comment, very much like Twitter and Facebook. It also allows you to create "communities" within Movim, which is something like a Facebook page.

What makes Movim so intriguing is that you don't even have to sign up for an account on movim.eu, but rather you can use your existing XMPP ID from any other server and it will work just the same. That means that unlike Facebook and Twitter, you control your account and data. However, be aware that if you use the app on one of their three instances (nl.movim.eu, de.movim.eu, or jp.mov.im) you are temporarily revealing your account's password to them and are trusting them to handle your data. Because Movim is free software, an alternative to trusting movim.eu as you would any other XMPP server is to simply create your own Movim server.

Movim offers a beautiful and easy to use interface that opens in your browser, which I consider to be its main strength. Just like any other XMPP client, from within Movim you can chat with any XMPP ID, so for example you can have a friend sign up on movim.eu and then chat with them using Conversations. Also available are mobile versions that interface conveniently to the web app.

There is one huge drawback, however, and that is while Movim supports many features, it does not support full end-to-end encryption, which Conversations uses by default. As a result, messages you send between Conversations and Movim cannot be encrypted with OMEMO or PGP, and as such you are excluded from encrypted chats and otherwise required to trust your servers not to invade your privacy by reading your messages, which they may do. However, if you trust the servers involved, rest assured that your messages are being stored and transmitted safely according to protocol.

I personally am very impressed with what Movim has accomplished so far, and if you are OK with the absence of end-to-end encryption, I strongly prefer it to social networks like Facebook and Twitter. Although it may lack all the capabilities of corporate social networks, it is a pleasure to use and promotes free software and network decentralization.

It is also said that Movim is a nice solution for schools and businesses, which leads me to think that the ideal scenario is to deploy your own private instance of it rather than using an open public server, but having tried movim.eu it seems to me to perform well enough, and for now the service is not overloaded with too many users. (That may change if it gains in popularity.)

If you're looking to get friends to join you on XMPP and they don't want to bother with installing a mobile app, this web-based service might be exactly what you're looking for.

Apps on Other Platforms

There's no denying that currently the best way to go for XMPP is Android by far. To be frank, the alternatives are just not as good, but be that as it may some people do not have Android or don't want to use it. On mobile, it's necessary to have something for iPhone, and some people still prefer the desktop. Here's a short list of software I recommend, though they are not quite as easy to set up as the other software mentioned in this article:

iOS

Most users prefer Monal, some prefer Siskin. Another well known application is ChatSecure. These should work almost as well as Conversations on Android, but they probably do not support Conversations-style private group chats that are end-to-end encrypted, or do not support them well (yet). Your mileage may vary.

Windows

As far as I know, your only good choice with Windows is Gajim. It's actually a very good client, but UI-wise it's not quite as slick as the more "modern" apps. Gajim has been around for a while, so the plus side is that it should be very well matured and fully functional.

Linux

Linux users are almost as spoiled as Android users because the Linux desktop has an excellent app called Dino which is almost equal to Conversations. Just make sure that you are using the latest version possible, as some systems provide only outdated versions of Dino which have some major flaws that have since been corrected in the development version. Fedora's Dino package is reasonabely well up to date, and the most recent development versions are conveniently packaged for all major distros thanks to openSUSE's Open Build Service (OBS) and its repos. (Dino packages are found here.)

For those who prefer a text-based client, which I'm sure many users of Unix-like systems do, Profanity is an excellent client as well, especially if you're used to something like Irssi or WeeChat.