Hey all I’m working on writing an XMPP client and just doing some casual research. What would you say makes a client better than others? Cross platform? Native/web client?
I’m trying to decide if I focus on just a desktop client - which would reduce the scope, but it might be better to focus on a something more web based (I.e electron)
Stability, good user interface. While I am technical and enjoy playing with bleeding edge stuff, it is a struggle to get “normies” to join yet another chat system if they aren’t as easy to use or reliable as signal/whatsapp. audio/video calls are also critical for most people I expect, if you want people to use it as a proper alternative.
My other half and I use monocles (used conversations originally, but had some slight annoyances). Both have a very nice interface, and are usually reliable. Now and again one of us doesn’t receive the others’ message, and I have no idea why, and it is it difficult to diagnose.
I only recently got my XMPP server to work through NAT properly for A/V calls, which took me ages to sort out, and the errors in the monocles interface were not helpful in diagnosing the problem.
Sometimes (rarely) monocles doesn’t reconnect properly and one of us doesn’t realise for a while, and then we get a flurry of messages once we reconnect. An easy way of telling when it’s not connected would be good - the little icon monocles has isn’t that obvious (esp now that android only allows white notification icons, which is really lame). Other chat systems seem to be more reliable in this regard.
I’m not sure if any of this helps, but best wishes with your project!
If you were to make videocalls with more than two users possible, your client would be the first.
Movim, dino and libervia support group videocalls already.
What makes an XMPP client better than others?
For me that’s stability and features, secondary to the technical background. So electron based or based on the snikket-sdk / borogove or something totally native… Idk.
Some people are missing a desktop client for Windows that can do Calls. I would think something bloated like electron based that can do that is preferable to nothing (or to the abandoned dino fork).So go for whatever makes you feels good.
Convenience. And supporting modern standards (XEPs). It includes support for E2EE (OMEMO), history fetching and search, image and links preview. And stickers :)
History fetching would require support from the server side I assume? I’ve never used stickers myself before, is that a common feature request?
Yes, particularly https://xmpp.org/extensions/xep-0313.html
Movim has stickers, but I don’t know any other clients with stickers.
monocles will use stickers, and even (kinda) can import signal ones - I imported the mastodon ones recently, and they worked. Not tried any others.
I would suggest trying to contribute to
Understandable. Though I’m less interested in learning another code base and wish to start from scratch to learn the protocol and the programming language.