Matrix now has two flavours of threading defined and implemented as we experiment with the different approaches: label-based threading in MSC2326[1] (i.e. "filter this room to only show msgs tagged #foo"), and full-blown free-form HN/Reddit/NNTP/SMTP/Twitter style threading in MSC2836[2]. The former is closer to Zulip, and is implemented in Synapse. The latter is closer to HN, and is implemented in Dendrite[3][4].
Clientwise, Element supports neither so far, but we're experimenting with the HN-style threading in a dedicated playground called Cerulean[5]. The idea is to get it working well there, and then figure out how to merge it most effectively into Element. So: it's not ready yet, but it's getting tantalisingly close. We'll probably start hosting a demo version of Cerulean next week so folks can play along and see how it feels :)
Does Matrix support linearly directed imageboards (e.g.:4chan) style threading?
In 4chan threading is done by linking the between posts using the post id permalink (1). This is aided by the UI which allows you to hover over the listed ID and see parents or children. This results in being able to respond to multiple posts in a single post. This means that instead of tree structured threading, DAG style threading is possible. The second consequence is that by default posts are displayed linearly, like an IRC discussion. This linear display results in unlimited nesting depth. Nesting is not dependent on indentation.
So...could I write a gateway that provides functionality for threads to be pulled in from HN/Reddit/NNTP/SMTP/Twitter (MSC2836)? Think Epiverse [1] within Matrix and its clients.
Wow, it would be really, really interesting for a blog to offer a Matrix room as a "comment section". If you didn't care about threading, you could probably do something like that even today.
We've been working on some Web Components that use the js sdk to talk with matrix but have been wondering if we should spend time looking at how the react sdk could be implemented in this use case assuming it would better handle encryption etc... although I think I read recently that the js sdk also handles encryption - but we'd need to add UI for verification to access encrypted rooms which seems likely to be a pain across browser sessions... there's also an issue as to which websites you might trust to share your matrix user token with to post on your behalf (but will check out Hydrogen to see how it handles this).
So thinking out loud, for a disqus clone - sticking to unencrypted rooms and web components could be the way to go! Thanks for the GSOC and Hydrogen links - will check them out!
That can definitely be done today: just point a link to a public matrix room...well, the participants would need an account associated to a homeserver first in order to interact...but that's no different - conceptually - than needing to have a disqus account. The benefit of course is that their account can be associated to their __own__ homeserver! In fact, i do this already on my website; though for general contact (like a poorman's contact form), rather than a comment section for blog posts - but the approach works for either perspective.
I wonder how that would work performance wise since I assume comments sections on blogs are loaded many many more times than they are edited so you would want some super fast caching on it.
I guess anything is possible with custom code though.
You know what would be a great goodwill-building move from Github and Microsoft? Them running a Matrix server instance and provide a chat room for each Github repo. This is what Gitter used to offer. Federation allows even competitors to interoperate.
We haven't got as far as figuring out how to advertise/negotiate the threading flavour of a given room. It'd suck if half the people in the room are trying to use it like IRC and the other half are trying to use it like HN tho!
Clientwise, Element supports neither so far, but we're experimenting with the HN-style threading in a dedicated playground called Cerulean[5]. The idea is to get it working well there, and then figure out how to merge it most effectively into Element. So: it's not ready yet, but it's getting tantalisingly close. We'll probably start hosting a demo version of Cerulean next week so folks can play along and see how it feels :)
[1] https://github.com/matrix-org/matrix-doc/blob/matthew/msc232...
[2] https://github.com/matrix-org/matrix-doc/blob/kegan/msc/thre...
[3] https://github.com/matrix-org/dendrite/pull/1589
[4] https://github.com/matrix-org/dendrite/pull/1596
[5] https://github.com/matrix-org/cerulean