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. 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.

  3. erebion

    (Not insinuating this would be a weekend project)

  4. pep.

    It's happening the other way around..

  5. L29Ah

    erebion: i afraid matrix includes things like html5 and javascript

  6. erebion

    Nope, it does not

  7. erebion

    My client does not show any websites

  8. L29Ah

    see Matrix Widget API

  9. erebion

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

  10. erebion

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

  11. L29Ah

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

  12. erebion

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

  13. erebion

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

  14. erebion

    Not the right thing to start with

  15. L29Ah

    it was the only way to do calls until recently

  16. erebion

    It's all more broken than I thought

  17. erebion

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

  18. 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)

  19. erebion

    They will accept it once a lot of requests are made

  20. erebion

    Those will come once other servers have it

  21. erebion

    Smaller projects are more likely to accept that

  22. L29Ah

    other servers are effectively dead

  23. erebion

    I know quite a few people hosting dead servers then

  24. L29Ah

    yeah there are some jabberd2 instances too

    👍 1
  25. epi

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

  26. epi

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

  27. epi

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

  28. 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.

  29. epi

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

  30. Zash

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

  31. Kris

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

  32. MattJ

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

    💪 1🤣 2
  33. 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

  34. MattJ

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

  35. MattJ

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

  36. Kris

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

  37. 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.

  38. 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.

  39. 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
  40. epi

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

  41. epi

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

  42. 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.

  43. MattJ

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

  44. Zash

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

  45. 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

  46. 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

  47. Zash

    People want cat pictures, not security!

  48. 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

  49. MattJ

    :)

  50. erebion

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

  51. erebion

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

  52. erebion

    I don't even know what it's doing

  53. erebion

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

  54. 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.

  55. erebion

    Three years ago we were considering some options...

  56. erebion

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

  57. erebion

    Unfortunately I did not think of XMPP back then

  58. erebion

    Had I thought of that...

  59. erebion

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

  60. MaxSan

    Yeah xmpp super light in comparison

  61. erebion

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

  62. MaxSan

    In trying to encourage people to package something for start9

  63. MaxSan

    Will help a lot I think.

  64. erebion

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

  65. erebion

    The Belgian and Austrian societies now use it as well

  66. erebion

    Wish it was XMPP

  67. MaxSan

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

  68. erebion

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

  69. erebion

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

  70. erebion

    I got >5000 people into Matrix and I regret it

  71. erebion

    All that because I had forgotten XMPP existed

  72. 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.

  73. erebion

    And now I AM BACK (lol)

  74. erebion

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

  75. 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.

  76. Zash

    millions in venture capital is a heck of a drug

  77. 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.

  78. 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.

  79. erebion

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

  80. erebion

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

  81. 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

  82. erebion

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

  83. erebion

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

  84. 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

  85. 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

  86. Kris

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

  87. MattJ

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

    👍 1
  88. erebion

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

  89. erebion

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

  90. erebion

    Next XMPP server will soon exist. :D

  91. erebion

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

    ❤ 1
  92. erebion

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

  93. erebion

    *Snikket

  94. erebion

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

  95. MattJ

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

  96. erebion

    I've never come across that one

  97. 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

  98. Kris

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

  99. Kris

    via Systemd

  100. luna

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

  101. luna

    so which would they be, really?

  102. luna

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

  103. Kris

    The easiest is probably with Snikket

  104. Kris

    https://snikket.org

  105. Kris

    but that is a server + client solution

  106. Kris

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

  107. Kris

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

  108. luna

    dam but yeah

  109. 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?

  110. luna

    wdym exactly?

  111. jjj333

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

  112. jjj333

    its a collection of modules

  113. jjj333

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

  114. luna

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

  115. jjj333

    oh, i mustve missed that

  116. 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

  117. jjj333

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

  118. 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

  119. luna

    yaiii, fair!!

  120. jjj333

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

    👍 1
  121. luna

    wait really?

  122. jjj333

    thats what im told

  123. luna

    like the account invite bit?

  124. luna

    dam, yeah

  125. 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

  126. 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

  127. 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

  128. jjj333

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

  129. 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

  130. jjj333

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

  131. Kris

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

  132. Kris

    but you need to craft the url parameters yourself

  133. Kris

    the easy wizard only supports user and channel invites

  134. Kris

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

  135. 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

  136. 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

  137. 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

  138. luna

    exactly that the mentioned blog above was about aa

  139. Kris

    and you are not using Prosody?

  140. luna

    I mean, I do use Prosody, heh!!

  141. luna

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

  142. luna

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

  143. luna

    apprently there's no way on mobile at least

  144. Kris

    I think that should work

  145. luna

    and, what, Siskin is only on Apple devices

  146. Kris

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

  147. Kris

    siskin is not snikket

  148. luna

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

  149. luna

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

  150. Kris

    ah ok

  151. Kris

    Monal is better

  152. luna

    Monal is well, limited to Apple devices, again

  153. luna

    at least on first glance

  154. Kris

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

  155. Kris

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

  156. luna

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

  157. Kris

    Conversation and forks should be able to do that

  158. luna

    then how do you do that in Conversation?

  159. luna

    also _forks?_

  160. Kris

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

  161. luna

    not directly in app?

  162. Kris

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

  163. Kris

    > not directly in app? how would that work?

  164. luna

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

  165. luna

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

  166. Kris

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

  167. Kris

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

  168. 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

  169. Kris

    I think Snikket still uses that

  170. luna

    and I was asking basically which clients understand invite URI

  171. Kris

    Conversation and forks do

  172. Kris

    afaik

  173. luna

    are there even guides exactly for that?

  174. luna

    like, visually?

  175. Kris

    for Snikket maybe

  176. Kris

    otherwise it is a bit complicated to craft that invite URI

  177. luna

    but Snikket is both a server and a client

  178. luna

    I just want clients only...?

  179. Kris

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

  180. luna

    that one is about creating XMPP links...?

  181. Kris

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

  182. Kris

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

  183. Kris

    of course you can also just manually type the right URI

  184. luna

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

  185. Kris

    or manually create a QR code with it

  186. luna

    I already have invite URI...

  187. luna

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

  188. luna

    Like, step by step

  189. luna

    such as for Conversations

  190. Kris

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

  191. luna

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

  192. Kris

    yes

  193. luna

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

  194. luna

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

  195. Kris

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

  196. luna

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

  197. luna

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

  198. luna

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

  199. 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?

  200. luna

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

  201. luna

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

  202. Kris

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

  203. luna

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

  204. Kris

    no idea, maybe

  205. luna

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

  206. luna

    "You also can enter an XMPP address."

  207. luna

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

  208. 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

  209. luna

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

  210. 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

  211. Kris

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

  212. 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

  213. Kris

    I just don't understand, sorry

  214. 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?

  215. luna

    how would you do that in practice?

  216. Kris

    just a normal in app registration

  217. Kris

    you type the server and it asks for a user name

  218. luna

    what if the server is closed for registration?

  219. luna

    except if invited with account invite?

  220. Kris

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

  221. luna

    welp, yeah

  222. 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

  223. luna

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

  224. Kris

    you don't need invite codes for that

  225. hau

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

  226. hau

    discord let's you paste in invite links too

  227. luna

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

  228. luna

    it should be more accessible but yeah

  229. Kris

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

  230. luna

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

  231. hau

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