• 0 Posts
  • 2 Comments
Joined 3 years ago
cake
Cake day: July 9th, 2021

help-circle
  • I did it too.

    I closed my Facebook, Instagram, Signal, Skype, Telegram, and WhatsApp accounts, all at once.

    That left the following choices for the others around me:

    • email
    • SMS
    • phone calls
    • meeting up in person
    • no more contact

    or the last option: an account on my newly installed, self-hosted Snikket (XMPP) server.

    The vast majority opted for an account on my server, a few chose a 3rd party XMPP provider, and one wanted a Snikket server of his own (the best option for federation!).

    The ones I lost contact with are all people I never really communicated with anyway, we just existed in each other’s contact lists on the aforementioned services.

    It’s easier to switch people over to a alternative, federated platform than you think. Sure, you may not be able to make them move away from the monolithic platforms, especially WhatsApp, but you sure can get them to follow you to a better platform of your choice.

    My argument to support that claim is that the vast majority of people are only on platform X or Y because someone else suggested it to them, not because they discovered it themselves.

    My friends and family preferred that to not being able to chat with me anymore. Some of them, who also had/have each other on WhatsApp have started using their Snikket accounts between themselves too, as they started to become aware of the privacy implications of WhatsApp and Meta.

    Snikket is very easy to install if you have general Linux knowledge, and their support is excellent. It takes more time to get a Linux machine set up (I use a Raspberry Pi), install Docker, and configure your DNS, than it does to install Snikket itself. They also offer a hosted service if you can’t or don’t want to self-host. What really sells Snikket is the easy invitation based onboarding process, which takes the hassle out of account creation and app installation (an obstacle for many non-technical people).

    It is focussed on groups of people who already know each other, e.g. family, a group of friends, clubs, or communities, which removes the need for mutual friend requests. It does this through the concept of circles, which are essentially groups with their own associated contact lists. Anyone added to, say, the Family circle will automatically have the others in that circle in their contact list. This takes a lot of the hassle out of switching to Snikket. Traditional chat groups are also supported. They can be created by the users themselves, and work just like chat groups on other platforms, including manually adding (inviting) other users. Circles are managed by the Snikket administrator.

    Another good solution is Quicksy, which, like Snikket, is also based on XMPP and thus lets its users communicate with any other XMPP provider in the world. One downside to Quicksy is that it’s Android only. This is a requirement for account creation only, as the account can in theory be added to any iOS XMPP client, such as Siskin or Monal.

    Snikket, on the other hand, provides both Android (based on Conversations) and iOS (based on Siskin) clients.

    It has also received EU funding to work on things like account portability and multi-factor authentication for XMPP.

    OMEMO end-to-end encryption is enabled by default.


  • Do you mean Quicksy, the Conversations spin-off? I can see its appeal, but personally I’m not keen on the concept. While convenient, it’s a privacy issue as you point out. It’s one of the reasons why I’ve abandoned Signal in favour of XMPP. As with WhatsApp (deleted a year and a half ago), I found myself being contacted by people I don’t necessarily want to have in my chat network, simply because they got notified I’m now on Signal too.

    It completely removes any form of control over who’s in your network. You could have a valid reason for having your boss’s mobile number in your phone, but you wouldn’t necessarily want to be contactable by your boss on your private chat account. Or what about the evil ex, whose number you keep in your phone so that you can block it? You don’t want to advertize to them that you’re now on Signal/WhatsApp/Quicksy! Sure, you can block them in your chat app too, but you don’t want your ex or boss to know that you’re on the same network in the first place.

    As for XMPP, Snikket offers a nice take on it. It is essentially a packaged, ready to run XMPP server (including Let’s Encrypt support) with a couple of really nice innovations that make it much easier to join a Snikket server.

    The first one is easy onboarding. It’s an invitation only based system that provides a link to the Snikket app (currently Android via Google Play only, iOS will follow soon, and steps to achieve the same with F-Droid have been initiated), following installation the user will automagically be taken to the app and prompted to enter a username. A secure password has already been generated, although a custom password can be set if so desired. Pick an avatar, and you’re in.

    The second innovation to note is the concept of circles. Circles are essentially admin generated groups. The admin then adds members to the circle, and all members will automically have the other members’ JIDs added to their roster. All members will also be added to an MUC of the same name as the circle so group chats are immediately available without any additional steps for the users. An example: the admin creates a circle called ‘Family’ and adds all his family members to this circle. Upon login, each member of the ‘Family’ circle will find the JIDs for all family members prepopulated in their roster; no need to manually add each person’s JID. They will also have an MUC called ‘Family’ available to them without having to do anything.

    Snikket is primarily aimed at people who already know one another, and would want to have each other as contacts on Snikket. People who don’t necessarily know one another, or for other privacy reasons need to be kept separate, can be added to different circles. For example, the server admin may want to offer his Snikket server to his family, his gaming friends, and his cycling friends, where these three groups do not overlap. The admin would create three circles: ‘Family’, ‘Gaming Buddies’, and ‘Cycle Friends’. Each group will have all members listed in their roster, but none of the people from the other circles. And if necessary, a person can be made a member of more than one circle simultaneously.

    Also, as Snikket is ultimately based on XMPP (it’s running Prosody under the hood), members of unconnected circles can still manually exchange JIDs and add one another to their roster, including users on other XMPP servers, whether Snikket or otherwise. MUCs can be created independently of circles (which are only availabe to the admin), and can be made private or public. And of course there is full support for OMEMO.

    I believe these innovations deal with some of the (perceived) shortcomings of XMPP. It provides an extremely easy way to join the XMPP ecosystem, without the complications of having to install and configure a full blown XMPP server such as Prosody or ejabberd. Of course with simplicity come limitations, e.g. you can only use Snikket with one domain, no additional modules can be added, etc., but for Snikket’s target audience (families, groups of friends, small communities such as sports clubs or interest groups) that is not an issue.

    The official Snikket for Android app is a fork of Conversations, and Snikket for iOS is a fork of Siskin IM (currently in beta). Both apps closely follow upstream.

    I’ve been running my own Snikket server from home on a Raspberry Pi 4 since February this year, and now have around 20 users spread all over the world on it. The easy onboarding process, as well as not having to manually swap JIDs, have been real winners here and massively helped adoption by my friends and family, most of whom are not technical at all.