Modern XMPP project discussion - 2025-04-17


  1. alexkurisu

    > I mean, I guess there's "a lot" and "a lot", it's no Python or Matrix foundation God I wish all the people who donated to Matrix would have donated to XSF and XMPP clients instead…

    👍 1
  2. dora71

    >> I mean, I guess there's "a lot" and "a lot", it's no Python or Matrix foundation > God I wish all the people who donated to Matrix would have donated to XSF and XMPP clients instead… 👍

  3. erebion

    >> I mean, I guess there's "a lot" and "a lot", it's no Python or Matrix foundation > God I wish all the people who donated to Matrix would have donated to XSF and XMPP clients instead… We could still migrate the Matrix network to XMPP. A merge request could add XMPP to the servers. If all features are implemented that Matrix uses and servers just speak both, there could be a transition period and then the old protocol could be dropped.

  4. erebion

    (Not insinuating this would be a weekend project)

  5. pep.

    It's happening the other way around..

  6. L29Ah

    erebion: i afraid matrix includes things like html5 and javascript

  7. erebion

    Nope, it does not

  8. erebion

    My client does not show any websites

  9. L29Ah

    see Matrix Widget API

  10. erebion

    Yeah, well, that's just a website, that can be opened in a browser

  11. erebion

    Anyway, if a smaller Matrix server project got an MR for additional XMPP support, I bet they would acxept that

  12. L29Ah

    that's not, IIRC they have matrix-specific things exported to DOM/JS

  13. erebion

    Synapse only if every other server does that already and their customers also request that feature.

  14. erebion

    > that's not, IIRC they have matrix-specific things exported to DOM/JS Whatever, barely anyone uses that widget stuff

  15. erebion

    Not the right thing to start with

  16. L29Ah

    it was the only way to do calls until recently

  17. erebion

    It's all more broken than I thought

  18. erebion

    I never noticed, the Android apps do not make it look like a website is involved

  19. L29Ah

    also i think there's about 0.5 FOSS matrix servers maintained these days, so just make Synapse accept it (boils down to convincing New Vector)

  20. erebion

    They will accept it once a lot of requests are made

  21. erebion

    Those will come once other servers have it

  22. erebion

    Smaller projects are more likely to accept that

  23. L29Ah

    other servers are effectively dead

  24. erebion

    I know quite a few people hosting dead servers then

  25. L29Ah

    yeah there are some jabberd2 instances too

    👍 1
  26. epi

    I may not understand matrix fully, but isn't it a synchronized message store vs xmpp being a transport protocol?

  27. epi

    So bridging is/was an important goal (bridging as many messaging systems as possible) for matrix

  28. epi

    but the c<->s protocol is nothing like xmpp, afaik

  29. MattJ

    Roughly, yes. It's a decentralized graph, similar to how something like git works. XMPP does hop-by-hop delivery instead, with synchronization built on top of that.

  30. epi

    (And I think Element (the only full featured client?) _is_ in fact a web app. (Chrome/Electron-based, if I understand correctly)

  31. Zash

    Yes, the desktop version is Electron last I looked (years ago tho)

  32. Kris

    Ejabberd does have some plans to add Matrix c2s support at well apparently

  33. MattJ

    I worked on a mod_c2s_matrix for Prosody, and all I managed to do was crash a few Matrix clients :)

    🤣 2💪 1
  34. MattJ

    And at the time, Element was doing stuff that wasn't yet in the spec, and it was all a bit messy so I gave up

  35. MattJ

    They filed a bunch of spec bugs based on my feedback, but I didn't follow much after that

  36. MattJ

    I decided it's simpler and more efficient to just focus on improving the XMPP side

  37. Kris

    yeah. Honestly a while ago I thought the Matrix apps were better, but right now not really

  38. MattJ

    At FOSDEM someone came to the XMPP stand, and tried to show me their Matrix app, but after it spent well over 10 minutes loading, we gave up. Network conditions at FOSDEM are often not great, but their XMPP app was working fine.

  39. epi

    I wanted to like matrix more than I do. Too many glitches with reading peoples messages, sometimes even trying to read my own. And Electron doesn't really improve my mood either.

  40. MattJ

    I think both ecosystems have stuff they need to improve, but at this point I'm more happy than ever that I'm working on the XMPP side

    👍 1
  41. epi

    Of course, I understand xmpp has its share of omemo synching issues also when participating with mutliple devices in encrypted group chats.

  42. epi

    It just has worked better for me than matrix, but I use both.

  43. MattJ

    The "sync issues" (assuming you mean not being able to read history before you added a device) is not even a bug, it's the whole design of OMEMO. It's supposed to prevent someone from reading past conversations in case of a compromise.

  44. MattJ

    But it turns out that nobody actually wants this behaviour in practice :)

  45. Zash

    or the chaos you get when you add new devices after having verified some of them?

  46. MattJ

    Matrix have methods to grant new devices access to those messages, but obviously that's quite dangerous, and those methods have had security issues which let unauthorized entities read the past messages

  47. MattJ

    I'm not saying we can't also do this stuff in XMPP, but it's not a clear win, and it certainly doesn't improve the security

  48. Zash

    People want cat pictures, not security!

  49. erebion

    > At FOSDEM someone came to the XMPP stand, and tried to show me their Matrix app, but after it spent well over 10 minutes loading, we gave up. Network conditions at FOSDEM are often not great, but their XMPP app was working fine. Yup, that was me :D

  50. MattJ

    :)

  51. erebion

    I wish Matrix and XMPP were compatible and I could turn off my Matrix server

  52. erebion

    Single user server that uses pretty much all of 4x ARM vCPU with 8 GB RAM...

  53. erebion

    I don't even know what it's doing

  54. erebion

    Could be mining bitcoin and I wouldn't notice a difference

  55. erebion

    > Yes, the desktop version is Electron last I looked (years ago tho) But Fractal works fine. GTK app. I have to use it... Unfortunately I run the Matrix server for the German amateur radio society DARC.

  56. erebion

    Three years ago we were considering some options...

  57. erebion

    We were choosing between Rocket.Chat and Matrix (Synapse, to be precise)

  58. erebion

    Unfortunately I did not think of XMPP back then

  59. erebion

    Had I thought of that...

  60. erebion

    Well, let's not cry over spilled milk...

  61. MaxSan

    Yeah xmpp super light in comparison

  62. erebion

    We chose Matrix over Rocket.Chat because it has more choices for clients.

  63. MaxSan

    In trying to encourage people to package something for start9

  64. MaxSan

    Will help a lot I think.

  65. erebion

    And sadly I've started something which gets more an more national amateur radio societies into it

  66. erebion

    The Belgian and Austrian societies now use it as well

  67. erebion

    Wish it was XMPP

  68. MaxSan

    > And sadly I've started something which gets more an more national amateur radio societies into it What's that?

  69. erebion

    Well, the Matrix server. Others want to join... -_-

  70. erebion

    I know other amateur radio societies are now considering that as well

  71. erebion

    I got >5000 people into Matrix and I regret it

  72. erebion

    All that because I had forgotten XMPP existed

  73. erebion

    But two years ago I said: If anyone ever asks me again for an XMPP address, I'll set up a server again, after ~10 years.

  74. erebion

    And now I AM BACK (lol)

  75. erebion

    > Ejabberd does have some plans to add Matrix c2s support at well apparently Oh, that's interesting. Got a link? Details?

  76. erebion

    > yeah. Honestly a while ago I thought the Matrix apps were better, but right now not really They were, for a while. In ~2018 Element, back then Riot, seemed revolutionary. But XMPP improved slowly but steadily while Matrix just become more shinry and bloated.

  77. Zash

    millions in venture capital is a heck of a drug

  78. erebion

    > Of course, I understand xmpp has its share of omemo synching issues also when participating with mutliple devices in encrypted group chats. But not constantly. Also, haven't noticed a stuck unread status for chats that I just couldn't get rid of (other than logging out everywhere, deleting everything and signing back in) or chats that I couldn't join because joining failed and the remote server said "You're already in here, go away". I had quite a few such bugs Synapse devs looked at and just shrugged, as they had no idea.

  79. erebion

    > Matrix have methods to grant new devices access to those messages, but obviously that's quite dangerous, and those methods have had security issues which let unauthorized entities read the past messages I don't want that exactly, but I like cross signing. That is the only thing I miss in XMPP that would make a huge difference for me personally.

  80. erebion

    But yesterday I spoke to someone who's waiting for funding from Prav and then wants to add that to Dino.

  81. erebion

    (Automatic Trust Management, not the Matrix feature, obviously)

  82. erebion

    > millions in venture capital is a heck of a drug We should have an XMPP crowd funding website where devs can say "I would do this if I got 500 EUR" and then people can just throw money at them :D

  83. erebion

    Having a clear idea of what money does makes people far more likely to donate

  84. erebion

    Cause then it feels more like buying rather than throwing money in a void, lol

  85. Zash

    tho if you want to solve problems with money, you need a lot more money, those millions run out pretty quickly if you're paying full time developer salaries

  86. Kris

    > We should have an XMPP crowd funding website where devs can say "I would do this if I got 500 EUR" and then people can just throw money at them :D There is an XSF open-collective page where you could add a project. but so far the response has been very little

  87. Kris

    > Oh, that's interesting. Got a link? Details? they mentioned it as an aspirational goal in one of their blog posts.

  88. MattJ

    https://xmpp.org/community/fiscalhost/

    👍 1
  89. erebion

    Btw, I just had a phone call with my mother and she agreed US-based services are not the best right now, so...

  90. erebion

    I just got a new domain.... :D

  91. erebion

    Next XMPP server will soon exist. :D

  92. erebion

    MattJ will be happy to know that I'll try out Snicket :)

    ❤ 1
  93. erebion

    (Does that require manual updates or can I do "set and forget"?)

  94. erebion

    *Snikket

  95. erebion

    Pls forgive me, as someone who also speaks Swedish, "Snicket" seems to make more sense than "Snikket", lol

  96. MattJ

    In English too, don't worry :) (snicket is an English word, snikket is not)

  97. erebion

    I've never come across that one

  98. MattJ

    Snikket is set-and-forget but does not auto-update itself. It sends you a message with instructions when an update is available, it's just a couple of commands

  99. Kris

    if you run it with Podman you can configure it to auto-update the container

  100. Kris

    via Systemd

  101. luna

    hiiii chat!! i've joined here because I'm wondering which XMPP clients support registrations per account invite

  102. luna

    so which would they be, really?

  103. luna

    since I want to help my friends out without resorting to a registration page

  104. Kris

    The easiest is probably with Snikket

  105. Kris

    https://snikket.org

  106. Kris

    but that is a server + client solution

  107. Kris

    you could probably set up something similar on a Prosody server though

  108. Kris

    not sure how up to date this still is: https://blog.prosody.im/great-invitations/

  109. luna

    dam but yeah

  110. jjj333

    > hiiii chat!! i've joined here because I'm wondering which XMPP clients support registrations per account invite why not use the http page module for prosody?

  111. luna

    wdym exactly?

  112. jjj333

    luna, https://modules.prosody.im/mod_invites_page https/html page to register on using invites

  113. jjj333

    its a collection of modules

  114. jjj333

    as i said in prosody chat i havent gottten it working but may be a me issue

  115. luna

    I mean... i did say "without resorting to a registration page"

  116. jjj333

    oh, i mustve missed that

  117. luna

    would be very much nice if many clients supported that out of box, and also both nice for sysadmins so you don't have to like host an entire page dedicated for it

  118. jjj333

    yeah thats kinda widely accepted as just not an option, at least its somewhat in band

  119. jjj333

    > you don't have to like host an entire page dedicated for it i mean prosody does manage it for you, not that hard

  120. luna

    yaiii, fair!!

  121. jjj333

    i mean i dont even think ejabberd has invites, thats just a prosody feature anyways

    👍 1
  122. luna

    wait really?

  123. jjj333

    thats what im told

  124. luna

    like the account invite bit?

  125. luna

    dam, yeah

  126. luna

    I feel like being able to interpret account invite codes should be a nice-have in XMPP desktop clients but yeah!! would def encourage more people to join :3c

  127. Kris

    > i mean i dont even think ejabberd has invites, thats just a prosody feature anyways the xmpp: registration link to prefil the IBR should be independent of the server, but the invite token stuff if afaik not implemented in Ejabberd

  128. jjj333

    > the xmpp: registration link to prefil the IBR should be independent of the server, but the invite token stuff if afaik not implemented in Ejabberd yeah i meant the invite token bit

  129. jjj333

    the other is just a uri to tell the client what to do

  130. Kris

    > I feel like being able to interpret account invite codes should be a nice-have in XMPP desktop clients but yeah!! would def encourage more people to join :3c indeed and apparently it works nicely with Snikket, but it is just not really there yet in the wider Jabber ecosystem sadly

  131. jjj333

    i think the actual token bit is a mainline prosody package now, just the http page is community

  132. Kris

    https://invite.joinjabber.org also supports the IBR registration stuff in theory

  133. Kris

    but you need to craft the url parameters yourself

  134. Kris

    the easy wizard only supports user and channel invites

  135. Kris

    MattJ, have you though about adding that to the wizard?

  136. luna

    > indeed and apparently it works nicely with Snikket, but it is just not really there yet in the wider Jabber ecosystem sadly yeah, mhm

  137. luna

    but yeah, the premise of well, account invites is for a more fine grained control :3c especially not letting malicious people take advantage of lack of detailed control over registration

  138. luna

    I prefer keeping my XMPP server private, so I closed the registration to public BUT I will invite people personally, however I found out that it's not simple

  139. luna

    exactly that the mentioned blog above was about aa

  140. Kris

    and you are not using Prosody?

  141. luna

    I mean, I do use Prosody, heh!!

  142. luna

    currently trying to help out a friend with registering on my server

  143. luna

    does anyone happen to know how would you use xmpp: URI to register account with Conversations (the XMPP mobile client)?

  144. luna

    apprently there's no way on mobile at least

  145. Kris

    I think that should work

  146. luna

    and, what, Siskin is only on Apple devices

  147. Kris

    in prosody you can use ad-hoc commands to create a invite token

  148. Kris

    siskin is not snikket

  149. luna

    i mean... that's why I was asking, I already have invite URIs but yeah

  150. luna

    > siskin is not snikket i wasn't saying it was? it's an Apple XMPP client c:

  151. Kris

    ah ok

  152. Kris

    Monal is better

  153. luna

    Monal is well, limited to Apple devices, again

  154. luna

    at least on first glance

  155. Kris

    ah I didn't get your question. on Android there are many good apps

  156. Kris

    https://joinjabber.org/docs/apps/android/

  157. luna

    the question is which clients just straight up understand XMPP uri for being invited to create an account and participate

  158. Kris

    Conversation and forks should be able to do that

  159. luna

    then how do you do that in Conversation?

  160. luna

    also _forks?_

  161. Kris

    you send and xmpp: link via email etc and the person clicks on it

  162. luna

    not directly in app?

  163. Kris

    see link above, Cheogram and Monocles are nicer forks of Conversations

  164. Kris

    > not directly in app? how would that work?

  165. luna

    by pasting the link...? what else would you do?

  166. luna

    it should be as simple as when getting the XMPP URI, just paste it and bam, now you're registering

  167. Kris

    if you have the link already you can click on it, no?

  168. Kris

    the invite page also used to have a QR code for scanning

  169. luna

    i don't think we're on the same line, what I mean is that when you execute a command with, for example Gajim, for creating account invite, you get invite URI that you can share with someone

  170. Kris

    I think Snikket still uses that

  171. luna

    and I was asking basically which clients understand invite URI

  172. Kris

    Conversation and forks do

  173. Kris

    afaik

  174. luna

    are there even guides exactly for that?

  175. luna

    like, visually?

  176. Kris

    for Snikket maybe

  177. Kris

    otherwise it is a bit complicated to craft that invite URI

  178. luna

    but Snikket is both a server and a client

  179. luna

    I just want clients only...?

  180. Kris

    if you know the righ URI syntax you can use https://invite.joinjabber.org

  181. luna

    that one is about creating XMPP links...?

  182. Kris

    https://github.com/modernxmpp/easy-xmpp-invitation

  183. Kris

    it's just a nice landing page for sharing xmpp uris

  184. Kris

    of course you can also just manually type the right URI

  185. luna

    yeah but I don't understand where we're going

  186. Kris

    or manually create a QR code with it

  187. luna

    I already have invite URI...

  188. luna

    What I want to know is how you can use them in clients

  189. luna

    Like, step by step

  190. luna

    such as for Conversations

  191. Kris

    if you have such a link you just click on it and it will open the client

  192. luna

    like, the ones that start with `xmpp:...`

  193. Kris

    yes

  194. luna

    alright, but why can't you basically do that inside the client though?

  195. luna

    if one also does it by clicking on it, why not even type it inside the client?

  196. Kris

    there is no input field in the client and that would be way more complicated than just clicking, no?

  197. luna

    ...users should be able to have multiple ways, plus clients have like already implemented input

  198. luna

    "why should we do that, one is enough" is not always a good rationale

  199. luna

    plus clicking on it would still mean it would need to be interpreted

  200. Kris

    I don't get what the advantage would be. if the user requires to type the full address of the server they can also do it in the normal registration field, no?

  201. luna

    why should it be any different from say, pasting the invite to a group chat, and joining immediately?

  202. luna

    why should it be any different from say, pasting the invite to a group chat to a field, and joining immediately?

  203. Kris

    yes that is what it does, when clicking on the link

  204. luna

    but in Gajim you can also copy and paste that in a field, and it works also

  205. Kris

    no idea, maybe

  206. luna

    https://upload.i.love.possums.lgbt:5281/file_share/06801936-caf3-7230-b826-b11a86469571/669928df-4421-4a9a-9a31-ffcaef08196d.png

  207. luna

    "You also can enter an XMPP address."

  208. luna

    my point is that users also should be able to enter XMPP URIs, even for account invites

  209. luna

    for the registration page, you could also do "Got an account invite? Type the XMPP URI here." and it wouldn't be any different from the fields for registering for public server

  210. luna

    except it's just one field and when it succeeds, it leads you further to creating your own account

  211. Kris

    but the XMPP uri for the invite includes all the details you need for normal registration. so there is no difference to typing that

  212. Kris

    and why type if you can just share the link to click or scan a qr code with it?

  213. luna

    > and why type if you can just share the link to click or scan a qr code with it? that's just straight up dismissive

  214. Kris

    I just don't understand, sorry

  215. luna

    > but the XMPP uri for the invite includes all the details you need for normal registration. so there is no difference to typing that ah okay, but all one has to do then is to remove the xmpp: and replace it with username instead?

  216. luna

    how would you do that in practice?

  217. Kris

    just a normal in app registration

  218. Kris

    you type the server and it asks for a user name

  219. luna

    what if the server is closed for registration?

  220. luna

    except if invited with account invite?

  221. Kris

    ah, ok. well for that it only works with a link you click or scan via an qr code

  222. luna

    welp, yeah

  223. Kris

    you would need to ask the Conversation dev if they can add an extra field in the registration form to type a invite code, but I suspect they will be equally perplexed why that would be needed

  224. luna

    wouldn't that same logic apply to XMPP URIs for joining group chats?

  225. Kris

    you don't need invite codes for that

  226. hau

    i mean some apps don't make xmpp uri clickable so having an easy way to paste it in somewhere makes sense

  227. hau

    discord let's you paste in invite links too

  228. luna

    > discord let's you paste in invite links too that was the point as well

  229. luna

    it should be more accessible but yeah

  230. Kris

    > discord let's you paste in invite links too because discord doesn't use xmpp: or similar links, so they have no choice

  231. luna

    also, a lot of other places do deal with invite codes though

  232. hau

    i mean they just use regular urls for invites which is more supported than xmpp uris