Introducing Snikket

Posted by Matthew Wild on October 24 2020

The Snikket project was officially unveiled earlier this year at FOSDEM in Brussels. We’re thankful to all the great feedback we received from people who came to see first-hand what we’re building.

What is Snikket?

For people who didn’t make it to the demo at FOSDEM, what is Snikket all about?!

Snikket is actually a collection of open-source components that together form a complete messaging platform that anyone can deploy. You can think of it as a self-hosted open-source alternative to commercial messengers such as WhatsApp, Facebook Messenger, Telegram or Signal.

Snikket provides:

  • A minimal-configuration server component that can be deployed onto your own system, either in the cloud or on your own device, such as a Raspberry Pi. Currently this is provided as a single Docker image, but we plan to add other distribution methods soon.
  • Software for users - currently we have an app for Android users (distributed via Google Play and F-Droid), and an app for iOS will be next to launch.

Who is Snikket for?

The primary audience for Snikket is people who want to set up their own safe, secure, and private realtime communication for small groups, such as families, communities, clubs and small businesses.

The mainstream alternatives to Snikket today are operated by commercial entities that profit from exploiting personal data gathered from their users. We believe that people should have the freedom to communicate on their own terms, rather than being forced to accept unacceptable privacy policies of a service just because their friends are using it.

We believe that everyone should have the choice of using a service run by someone that they trust. That is why we make running a Snikket server as easy as possible, and allow users of different Snikket servers to easily communicate with each other through a feature known as “federation”.

How does it work?

Snikket is based on the open standard messaging protocol XMPP. This means that we’re not inventing any fundamentally new technology (the world definitely has plenty of messaging protocols already!). In fact XMPP is a mature technology that has been in active developed for over 20 years. Because we are using an existing standard, there is a whole ecosystem of software that is compatible with Snikket. It also means that every Snikket server launched can immediately become a part of an existing global network of other XMPP-compatible servers.

The Snikket software itself is based on existing open-source projects. For example, the server component utilizes Prosody, and the Android app is based on Conversations. We are not forking these projects. Instead innovations that we introduce to Snikket are pushed upstream wherever possible. An example of this is the invitation based sign-up that we required to make signing up with a Snikket service as easy as possible. This involved creating a new extension to XMPP, and implementing it in multiple open-source projects, including Prosody and Conversations.

But why?

On hearing about Snikket for the first time, a question people often ask is, “why are you developing Snikket when plenty of XMPP software already exists?”

There are a number of reasons that Snikket’s existence is important.

Snikket aims to be an entrypoint for new users into the XMPP universe. This is something that a project that is just a client, or just a server, can’t do alone. We’re providing a complete package for people to get started easily even with zero knowledge of XMPP and how everything fits together.

Even for experienced users of XMPP, there are benefits to having such a package of integrated XMPP software. Knowing that Snikket client on platform A has the same set of interoperable features, same terminology, and same UX paradigms as the Snikket client on platform B makes for an attractive solution to many use-cases.

The design principles that Snikket adheres to can be found at modernxmpp.org, which is a parallel project aiming to align as many clients as possible in terms of UI/UX and protocol implementations. It is a natural extension to the Compliance Suites published by the XSF (but these only cover protocols, not features, terminology or UX).

Finally, since “Jabber” (the original user-friendly name for XMPP) is now a trademark owned by Cisco, it is unsuitable for use in many contexts and has been declining in recent years. However telling people to “use XMPP” (a protocol standard made for developers) leaves them confused and directionless. It’s a much better option to be able to tell people to “use Snikket”, which leads them to a suite of user-friendly XMPP software.

The future

There is a lot more planned! We have two primary focuses right now: launching an iOS client, and finishing the web interface for the server (so that users can manage their account, and admins can inspect and manage the server).

To keep up to date with developments, follow this blog, or our accounts on Mastodon or Twitter!

Snikket Blog

Feed

Subscribe to our RSS feed for the latest updates from the Snikket project!

Recent Posts

Donate

This open-source project runs on external funding. If you like what we’re doing, consider donating!