Modern XMPP project discussion - 2025-09-01


  1. coopr8

    Total XMPP noob here, but I'm wondering if anyone has been working on a client / functionality which gives sub-channel functionality to XMPP chats? By that I mean something similar to Discord/Slack/Element where there is a topline room/server/group which holds roles/privileges and then below that are topical chats/channels. I have a very simple conceptual hack to make this work client side with no change to XMPP itself, but it would involve making those rooms less convenient to use via other clients. [Essentially all messages go in one standard xmpp channel and the client appends a string to the end of each message, and the client filters the messages into different threads]. That said I have no coding ability and am a noob so I figure maybe someone has worked out a better way?

  2. L29Ah

    coopr8: could work with XEP-0201 or XEP-0461 perhaps?

  3. coopr8

    > coopr8: could work with XEP-0201 or XEP-0461 perhaps? Im just learning, those are means of reducing message size by not using Markup for all message content right?

  4. Zash

    https://blog.jmp.chat/b/january-newsletter-2023 > One of the big ones is an interface for having threaded conversations with other Jabber users (watch the demo video <https://kumi.tube/w/1LQQp5Uia4u8Pdojxen1y8>).

  5. Kris

    coopr8, https://xmpp.org/extensions/xep-0503.html

    ❤️ 1
  6. coopr8

    > https://blog.jmp.chat/b/january-newsletter-2023 >> One of the big ones is an interface for having threaded conversations with other Jabber users (watch the demo video <https://kumi.tube/w/1LQQp5Uia4u8Pdojxen1y8>). Video won't load for me for some reason

  7. Kris

    but not implemented anywhere afaik

  8. Masked Witch

    I think they were looking for something more like Discord's threads

  9. coopr8

    > coopr8, https://xmpp.org/extensions/xep-0503.html ❤️

  10. coopr8

    Yes thats right, seems like maybe the system Kris posted could be used to implement that in a client

  11. Kris

    related idea. some chat systems treat "threads" as sub-channels

  12. Kris

    the original implementation of threads in Discord was like that too, but they changed it again I think

  13. coopr8

    Yeah, you could probably cludge it so that the admin of the channel can create persistent threads labeled by topic, and suppress it for other users

  14. Kris

    (not a big Discord user here)

  15. Zash

    > related idea. some chat systems treat "threads" as sub-channels This is what's in Cheogram, as shown in that video IIRC

  16. Zash

    https://www.youtube.com/watch?v=apazJINa1UI maybe this is the same video?

  17. Masked Witch

    Yeah, though that's more integrated into a single channel instead of subchannels like what discord has

  18. Kris

    no? Cheogram does the opposite

  19. coopr8

    "This clustering is already possible in practice by using a dedicated MUC Service (Multi-User Chat (XEP-0045) [1]) to group several rooms, but this limits its spaces creation to administrator of servers." ... "this specification voluntarily does not cover access control, permissions, membership inside a space and its children rooms."

  20. Zash

    Oh I read threads

  21. Zash

    Good thing we don't have a million things that use the same word here.

  22. MattJ

    Cheogram's threads are definitely mixed into the main channel, but IIRC you can choose to just view a single thread

  23. Kris

    yes, but "threads" are not clearly defined. in some chat systems they are treated as sub-channel rather.

  24. Kris

    in Zulip they also function more like seperate channels

  25. coopr8

    Hmmmm... so maybe XEP-0045 is almost it, but would just require a sub-admin role on the server so that users can create spaces and manage rooms in those spaces without top level admin privilages

  26. coopr8

    Yeah, sorry for imprecise language. On XMPP is "Modern XMPP protocol" a "room" or a "channel"?

  27. coopr8

    I have trid several chat services recently so my lingo is jumbled

  28. Zash

    This place we're chatting in right now? Let's consult https://docs.modernxmpp.org/terminology/

    ❤️ 1
  29. coopr8

    > This place we're chatting in right now? Let's consult https://docs.modernxmpp.org/terminology/ ❤️

  30. coopr8

    Awesome, thanks, I came to the right channel!

  31. coopr8

    > in Zulip they also function more like seperate channels Is Zulip built on XMPP?

  32. coopr8

    > yes, but "threads" are not clearly defined. in some chat systems they are treated as sub-channel rather. In current client side implementations Threads are more like a set of replies to an initiating post within a main Channel, so they can be filtered to display only those replying messages, is that right?

  33. coopr8

    It basically just enables the reply feature within Cheogram (which I am currently using) it appears. I definitely wouldnt want to sacrifice reply functionality in order to enable sub-channels. Seems like a both-and scenario is necessary, as that is the current baseline of the competing platforms.

  34. Kris

    coopr8, no, just another example of a chat system with threads as subchannels (kinda)

  35. Kris

    > In current client side implementations Threads are more like a set of replies to an initiating post within a main Channel, so they can be filtered to display only those replying messages, is that right? that is how Cheogram does it afaik

  36. Kris

    replies still work, but they kinda automatically asssume you want to start a thread

  37. coopr8

    Yeah, that mirrors Discord and Slack in which a Thread is a special kind of Reply that creates an ephemeral sub-channel that goes away after a certain amount of time without a new post.

  38. coopr8

    Hmmm, I mean if this has to be done server side the other way to do it would be to create a directory server side that specifies what Spaces exist and which Channels are assigned to each Space, the the client just pulls that information and displays the channels grouped by Space.

  39. coopr8

    I see that is the proposal for XEP-0503 , I will have to read the document further. Shame no one has implemented it, there was a wave of exiles away from Matrix with the last security flaw reveal

  40. Kris

    if you know Rust you could contribute the the Muchrooms project that aims to modernize the group chats as a seperate component

  41. Kris

    xmpp:muchrooms@xmpp.rs?join

    ❤️ 1
  42. Kris

    that way it isn't server software specific and would work with most servers

  43. Kris

    I think they would be open for a 0503 implementation in it

  44. Kris

    ofc. Prosody would probably also be a good test bed

  45. coopr8

    Sadly I'm a code illiterate end user, though I keep thinking I'll take some courseware one of these days. I dont think I'd start with Rust though

  46. coopr8

    > xmpp:muchrooms@xmpp.rs?join ❤️

  47. coopr8

    Side note, are reacts native to all clients, or do they come out as annoying plaintext comments in some clients?

  48. MattJ

    "It depends" 🙂

  49. MattJ

    Reactions are certainly not supported by all clients (e.g. the terminal client I'm using)

  50. MattJ

    The sending client determines how it will display to non-supporting clients

  51. Zash

    The popular options are "quoted reply" and "not".

  52. coopr8

    Ok, so is it considered best manners to avoid using reacts?

    🪇 1
  53. menel

    No, fire away coopr8

    🎆 1
  54. menel

    (like: most popular clients have them now, and only cheogram adds quotes with an emoji for non supporting I think, the rest will just be invisible for non supporting clients)

  55. coopr8

    > No, fire away coopr8 🎆

  56. coopr8

    Any advice in why I would prefer to use a windows XMPP client vs a browser based one? Gajim vs Movim? I have found in the past some chat apps (discord) perform better in-browser so I save a browser instance/"app" rather than use the client. Also eliminates software updates, which is nice.

  57. L29Ah

    local software works better on bad connections

  58. L29Ah

    and in general more capable and less resource-intensive

  59. Kris

    Gajim allows you to connect to multiple accounts simultaneously, and a native app has some advantages for the security of your e2ee messages, but for most people I would recommend Movim.

  60. Kris

    L29Ah, not really true for Movim, since it has a server component

  61. Kris

    it smoothes out most of the connection issues, basically it is better than a local app in that regard.

  62. Kris

    the only advantage a fully local app has is that you can read and write messages while offline, but I find that a bit pointless for a messenger

  63. Kris

    the only advantage a fully local app has is that you can read and pre-compose messages while offline, but I find that a bit pointless for a messenger

  64. L29Ah

    personally i grep my logs a lot

  65. menel

    And the omemo key mess and security as you said.

  66. Kris

    sure

  67. coopr8

    > the only advantage a fully local app has is that you can read and write messages while offline, but I find that a bit pointless for a messenger For PC use in particular I don't need to view messages offline for the most part. I see the advantage on mobile, which is one reason I'll stick to Cheogram for now on that

  68. coopr8

    OMEMO doesn't work well on Movim in-browser?

  69. Kris

    Omemo works in Movim (and was very recently improved a lot), but by the principle of loading the software from the server you can never be quite sure if your webapp is still encrypting the messages correctly

  70. Kris

    it is a possible attact vector that is much harder with native apps

  71. Kris

    it is a possible attack vector that is much harder with native apps

  72. coopr8

    ah, I see