Superbloom

  • Snikket is a safe and secure, free and open source XMPP-based messaging platform that is hosted on an individual server for more control and security for the users.
  • As part of the OTF Usability Lab, we supported Matthew and Snikket by helping to improve the user experience across platforms through a heuristic review, a user study, and several UX design explorations.
  • We interviewed Matthew Wild, the creator of Snikket. He shares his work process and experience working with Simply Secure to improve Snikket’s usability.

Snikket is an XMPP-based messaging platform that aims to provide an open and secure alternative to proprietary messaging apps such as WhatsApp, Facebook Messenger, and Telegram. Unlike most other messaging apps, Snikket can be hosted on an individual server (including Raspberry Pis) for more control and security. While the XMPP ecosystem remains fragmented and highly technical, Snikket’s goal is to fill the gap with consistency and usability. 

Through the OTF Usability Lab, our work with Snikket focused on improving the user experience across platforms and balancing out the ease of learning versus the efficiency of use. In particular, we did a heuristic review of Snikket apps and web interfaces, conducted a user study, carried out several UX design explorations and provided design recommendations to address areas where there are barriers for adaptation and improving the onboarding experience. An upcoming blog post will explore in more detail some of the implementations of this work.

In this conversation with Matthew Wild, the creator of Snikket he shares about his work process and experience in working with Simply Secure to improve Snikket’s usability.

The transcript of this conversation was edited for length and clarity. 


Simply Secure (SimSec): Could you tell us more about your motivation for creating Snikket? How long have you been working on it? 

Matthew Wild (MW): It’s been probably nearly two years now. I’ve been working on decentralized and open messaging for over 10 years, mostly on the server side and the technical parts. I’ve always been telling people, you should use open communication platforms, and not use these centralized proprietary systems. Over the years I definitely have helped move a lot of people over thanks to stuff that I’ve written.

But I really struggled even just to get my own family over, they were still messaging each other using WhatsApp. After some time, I thought, well, why can’t I move my family over to this thing that I work on all the time? They never really understood what it was that I worked on anyway because it was all server stuff, and they don’t really know what a server is. So, I started really thinking about how to improve things from the user’s perspective, how to make things more simple, more accessible. And so I realized that the parts that I’d been working on the server side were just a part of what needed to happen. I had been making a lot of improvements there, along with other contributors to Prosody, but really just the server-side, for people to adopt it and XMPP and decentralized messaging in general, you need a whole package of something that’s easy to use and works well together. 

“Why can’t I move my family over to this thing that I work on all the time?”

I realized that what we needed was a friendly name, a friendly logo, a friendly website, an easy-to-use installation server, and easy apps for people to sign up for. From experience, one of the hardest things about getting people to use XMPP was just to get them started, get them to choose a server, an account, set a password, and find an app. And so that was the first thing that I focused on with Snikket was on-boarding and making it easier for people to get on board. 

The first prototype was an invitation link, and that’s still a big part of Snikket. Now, you just send someone a link, and it helps them install the app and get started on your server. So yeah, I sent the link to my family. Now I have 10 people on my family’s Snikket server and they no longer use WhatsApp for talking to each other. Obviously, they still use it for talking to their other contacts, but within the family, we’re all using Snikket, which I think is a big success (laugh). 

“I started really thinking about how to improve things from the users’ perspective, how to make things more simple, more accessible.”

SimSec: We know that you’re the creator of Snikket, but what exactly is your role in the team?

MW: Like a particular role that I do? Absolutely everything (laugh). So I do a bit of work on developing, obviously I develop the server. That’s my primary background. I also do a bit of work on the apps, just trying to make them more polished. But the bulk of the work on the apps is luckily done by open source developers, Daniel Gultsch for Conversations, and the Tigase team for Siskin. So Snikket builds on top of both of those. 

I do development across all the different pieces, but I also do lots of non-development tasks. So I have to also do the fundraising, applying for grants, and now I’m working on the hosting platform as well. So that also means that I’m managing servers, and things like that, as well as trying to manage and help grow the community. A bit of marketing, writing blog posts, managing the website— there’s not really much that I don’t do. So I definitely don’t have a role. It’s just Snikket, Snikket, Snikket. All the way through.

SimSec: Did you receive any support from the community?

MW: Yeah, I’ve had a lot of support, especially from people who are coming from the Prosody community. Obviously I’ve been working on Prosody for a long time, so I’ve got some good friends there who have been very supportive of Snikket, and they’ve helped. For example, one of the community members, Jonas, wrote the whole Snikket web interface, which was remarkable, because I thought the first version of it probably wouldn’t have much of a web interface. But it was really important to make it really easy to use, and he just did it. Now it works really well, and people do like it. Also, there is Kim, a longtime Prosody contributor, who continues to help a great deal with things on the server side, the technical parts. As well as everyone who is testing the apps, reporting bugs, and donating. It’s been really helpful to have this whole community behind it.

“Every time a user gets confused about something, however small it is, I have to take that feedback on board.”

SimSec: What’s great in our opinion is that you also make it quite easy for people to send feedback and contribute. You get all the support because you explicitly make the process transparent and everybody can see what the newest updates are and what is currently being worked on if they follow your GitHub! 

MW: Exactly. I think that part’s important to me because part of the whole point of Snikket is making it easier for the users. So every time a user gets confused about something, however small it is, I have to take that feedback on board and not just think, well, if they knew more technical stuff, they would know why it’s like this, or they should learn, they should read the documentation. You really can’t expect that, no one reads documentation to use WhatsApp. They just use it. So I want Snikket to be that easy. If they have any problems, I really want to know about them.

SimSec: What do you think would be the best part of your job?

MW:  I would still like to just be working on the technical parts (laugh). I really like lower-level coding. I’m not a big fan of working on user interfaces, but I definitely got a good appreciation for it now. I think I am developing a bit of an instinct for “this doesn’t look very appealing” or “it doesn’t look very user-friendly”. From listening to all the feedback, I can now look at something and think well, this is not going to be very easy for people to use, they will complain that they don’t understand this or this is in the wrong place. One of the things that continues to surprise me is that even when you have guessed what the users will think they always come back with different feedback that you never even thought of. So I think I do just like it all. I wouldn’t be doing it if I didn’t enjoy any of it. But given the choice, I’d probably just still be working on it on the server side.

SimSec: What about the least favorite part?

MW: Oh, the least favorite part is definitely finding funding and writing grant applications and just dealing with money in general and things like that. I just really, really don’t like that part of it. But at the same time, I want the project to be sustainable. So I’ve tried working on open source in the past while having a full-time job. It’s possible, but it’s very, very difficult and the project progresses very slowly and it’s always a little bit worse than it could be. So I’m hoping that if I can keep getting funding for Snikket then we can help Snikket and related projects grow and help fund more open source development which is, is my dream really: just help making this thing so they can compete with the proprietary messengers and be just as good, or even better.

“It’s really about just knowing that the people are contributing, understanding how they work best, and helping them achieve that.”

SimSec: What do you think is the most challenging thing about managing Snikket and how do you overcome it?

MW: Yeah, so from my own time management perspective, it’s obviously very difficult for me to work on so many different projects. Within Snikket, there’s the hosting stuff, there are the apps, there’s the server side, there’s a web interface. I realistically can’t work on all of them at the same time. So I try to split it up into chunks. I do a little sprint of work on the apps for maybe two weeks to a month, then I’ll work a bit on the server side for a little while, and I’ll work a bit on the hosting for a while. That helps my brain get into a particular mode and be a bit more productive. 

But one of the problems with open source is managing other people who you have to be respectful of their time, because they are volunteers. And although they often are very happy to contribute, you really can’t put many strings on it. And you can’t say, you know, you have to deliver it by the end of this week. That makes planning a lot more difficult. It’s really about just knowing that the people are contributing, understanding how they work best, and helping them achieve that. And, you know, just being very gentle with them. It’s very different to working at a company where you’re employing someone and you get to set deadlines and be a bit more strict and so on. But when someone’s not working full time for you, that’s very different. 

SimSec: What is the process of working with volunteers and contributors like?

MW: It really varies. One of the things that is quite interesting to me is that people would file bug reports, but oftentimes the people who file the bug reports also have an idea of how they want the problem to be solved. I think part of my job is looking at the bigger picture and thinking well actually, it would be better if we solved it like this, or maybe we don’t want to solve this problem at all. 

For example, some people have asked me how to have Snikket groups with over 1000 people in them. Although it’s technically possible, you would have to make some changes in the user interface to make that number of people easy to take in for someone to use. So I really want to keep Snikket very focused on a particular use case: smaller groups of people, family, workplace, clubs, and things like that. So one of the things that I have to do daily is when these bug reports come in, this feedback will be translated into tasks for people to work on, whether it’s me or some of the contributors. It’s not just a case of pointing the contributors to the bug reports, because they don’t see the whole picture. I have to try and spend time going through the bug reports and figuring out what one thing that they actually have to work on.

“If something doesn’t get delivered in a certain release, it just doesn’t. And it’s not the end of the world.”

SimSec: How do you guys keep each other accountable?

MW: (Laugh) Yeah, we don’t. At the end of the day, one of the benefits of working for myself is that I don’t have anyone telling me about deadlines. If something doesn’t get delivered in a certain release, it just doesn’t. And it’s not the end of the world. And you know, no one’s gonna get fired. So as long as we’re making overall progress, which generally we are, and I’m happy with that. There’s no blame if someone doesn’t achieve something that they said they were going to do. I understand that sometimes things get in the way. At the same time, there are things like decisions that I make, being in charge of the project I could just make, often I try to run things past other people to see what they think about it. I like getting feedback from other people in the community about the direction that we’re going in. Although I don’t have to do that, I feel it’s my responsibility because I’m not the only one deciding where the project goes, but I am responsible for it. So I try to help as many people participate in decisions as possible.

SimSec: What is your personal approach to project management?

MW:  Yeah, to prioritise. It’s very difficult because it’s a balance between so many things. For example, to prioritise getting the project sustainable, I really ought to be working on the hosting platform full time, because that can actually bring in some income and help get more people onto Snikket. I also try and prioritise things that people report a lot because it’s things that a lot of people run into. So, anything to do with usability. When someone keeps complaining about the same bugs, I know that for every person that actually gives me that feedback, there are probably 10 more people who don’t bother reporting it. So I try to keep my ears open for even small issues. If they keep coming up more than once, more than twice, then I know, it’s a high priority issue. I try and prioritise getting a fix for that, but with limited resources, it can be very difficult. So we just try and do our best.

SimSec: What are the biggest lessons that you’ve learned from working on Snikket?

MW: I think planning to timescale with a small team of volunteers is very, very difficult. So I try to be very flexible with what goes into each release. I’m very reactive in what’s going on. One week, one person might say they’ve got the week off work, and they want to spend time helping hack on Snikket. And then another week, they are completely not available. It’s very difficult to plan for things like that so I try to keep the bureaucracy down to a minimum because it helps us be more flexible and agile. We don’t have these weekly planning meetings or anything like that. We just chat in the chat room. And I try to keep it very informal like that because I think that that’s definitely what attracts some people to work on the project. They like that kind of level of formality. But I imagine some people might prefer more structure. I don’t know, I’m not one of those people.

SimSec: Is it the first time that you’ve got a fund from OTF? What has the process been like for you?

MW: Yeah, it is. It’s my first experience doing something like this. The other funding that Snikket got has always been about development work and more technical stuff. And so actually having the freedom to spend some time looking at UX and usability issues has been much fun and very liberating. It’s always good to have some people that actually know what they’re doing. Because it’s one thing to start a project that’s designed to make messaging really easy, I don’t have a background in UX or UI design. It’s great to be able to have other people who have this knowledge helping out. That’s been really, really helpful to the project. The feedback from the usability testing, for example, has been really helpful in helping pin down some design decisions and things like that. So yeah, it’s been great.

“The goal is not necessarily to become as big as WhatsApp or any of the other massive, proprietary platforms.”

SimSec: Thank you very much. We’re all quite fascinated as well seeing the screenshots of the before and after when all testing feedback is taken into consideration and how quickly things got implemented!

MW: Yes, it’s been really good for me as well. Seeing those screenshots will be interesting sometimes. Because sometimes I’m so immersed in it, I can’t see the wood for the trees, as we say. So occasionally, I see a screenshot of what the app used to look like. And I can’t believe how far we’ve come in just a short amount of time. So yes, it’s been really good and we have got a lot of positive feedback from users as well!

SimSec: What does the success of Snikket look like to you?

MW: Being decentralised, the goal is not necessarily to become as big as WhatsApp or any of the other massive, proprietary platforms. The goal is just to encourage people to move to open and decentralized networks so that success will be the average person recognising that you don’t have to be on the same provider as someone else to chat with them. And just like email, you can just share your chat address. And it doesn’t matter which app you’re using, you can still message anyone else and that’s the overall goal. But I think Snikket is how we get there. I mean, anything that makes it more easy and accessible is the beginning step. And, and I’m really looking forward to that.

Get in touch with Matthew Wild and learn more about his work here.

See Snikket’s most recent updates here and here.

Credits 

Project Contributors: Ngọc Triệu, Ame Elliott, Rae McKelvey, Snikket  


With support from The Open Technology Fund Usability Lab.