Discussion Platform for community app development

Continuing the discussion from Boosting community app development:
I want to break this discussion topic out into a dedicated thread since it is important by itself.

I definitely understand what @z4k is asking about.

Example, NextcloudPi group will monitor our specific forum tags and relay them into our community bridged chat in Matrix + Telegram, which is where we have our discussions. We have various chat rooms for our specific purposes and we admin/moderate all of this ourselves.

  • Asking Nextcloud the company to setup and maintain something similar seems both unwieldy and difficult time wise. I know their cloud.* already exists, but I also understand it could prove problematic to scale out because it cannot be community managed.
    • Talk simply does not function in the same way as Discord or Slack, etc. Using it certainly comes with caveats not present in other platforms, plus adds moderation strain to the company…
  • Talk itself is missing a large number of features for webhooks / github / user created bots / rss relay / seamless integration with other chat systems still not working quite right in matterbridge / community moderation, etc.
  • The benefit of Talk here is it being run by the company. Does sound nice, but is that the solution for a community wide discussion platform? It might take many years to get it functioning in the way someone could optimize another of these platform in a matter of days.

Discord is extremely common as a proprietary platform for open source developers because it is very feature-rich and easy to use. There is also rocket.chat, which has deep integration with Nextcloud itself and functions as a drop-in Slack replacement. fwiw, my community group tested it for several years and no one had any trouble using it, but I have yet to find a community group willing to accept less than the full functionality of Discord or Slack in any alternative product.
Hope these thoughts spur more conversation.

1 Like

Thanks @just for this topic :slight_smile:

So, you raise several points and I don’t know where to start ^^’

Here we have a community that does many things :

  • When there is a topic on this forum, they do relay work
  • They do relay on several platforms : Telegram and Matrix. So we have 3 platforms with our forum.

I think it’s very heavy for a community… I think we can keep this forum and replace Matrix and Telegram by Rocket.Chat or Matrix with Elements. It doesn’t matter which the platform as long as we have a Discord-like or Slack-like where we have several channels.

The goal is to work efficiently. Just add the user to the platform, and they can access the channels they are interested in.

Yeah, but it can be done gradually. One more, if Nextcloud and/or community would like to choose Mattermost. I think @wget or someone can help them.

I know that this type of platform will not tomorrow ^^
But, I think it’s cool to talk about it together.

I like its UI but, these types of features are clearly missing :confused:

Rocket.chat it’s a proprietary platform too : Rocket.Chat/LICENSE at develop · RocketChat/Rocket.Chat · GitHub (?) :thinking:
But, yes, for me, it’s logic to choose this platform. Because there is already an integration on Nextcloud.

In any case, I believe that this type of platform can avoid redundancy with the example you gave us and facilitate the add of users to all dev or near dev channels for Nextcloud ^^

(this quote is from the other forum thread, but we branched this topic out here, so I will answer here)

Not necessarily, if there is a convenient way to discover channels, even if they are not grouped inside the Talk Chat List seems fine and I would much rather use Talk, than any proprietary platform.

My thoughts on the current list of applications that could be used instead of Talk:

  • Discord:

    • I would maybe use it, but probably not
    • Pros:
      • Easy and Cheap to run (you don’t pay with money, you pay with data, so not really a pro argument)
    • Cons:
      • Completely proprietary
      • Bad Linux client (bad wayland support)
      • Data sovereignty nightmare
      • Only a matter of time, until they introduce ads
      • Will try to sell you useless junk (Disord Nitro)
      • I already have like 7 million unread messges on discord and will never read them, because communities can get very spammy
  • Slack:

    • Basically the same pros/cons as Discord :slight_smile:
  • Rocket.Chat

    • I would use it, but i don’t think it is ideal
    • I don’t see the integration with nextcloud as a strong pro Argument
    • Pros:
      • Community Edition is open source
    • Cons:
      • I personally don’t run a Rocket.Chat server so this is second hand knowdlege, but the Rocket Chat Server can be pretty unstable and sometimes it will just crash and need a restart. This doesn’t give me much confidence in the maturity of the codebase.
      • I use Rocket.Chat at work and therefore have first had experience as a user: The issues seem to have gotten fixed, but there was a time period of about a year until recently, where Rocket.Chat development moved faster than it should have introducing many bugs into the frontend. Ever other update seemed to break something, very often it was impossible to scroll up to messages more than a few days old, because they would not load. The Rocket.Chat seems to have gotten this under control, but it was VERY annoying.
  • Mattermost

    • It would be my second choice.
    • Pros:
      • Open Source
    • Cons: nothing that I can think of currently
  • Element:

    • This would be my favorite
    • Pros:
      • Open Source
      • Uses the Matrix protocol :+1:
      • Is federated
      • Matrix already has good acceptance in many developer circles
      • Good Bridging support
    • Cons: nothing that I can think of currently

Generally I think a Discord-style chat service for nextcloud developers is a good idea, but is also has downsides:

There is a saying: “Discord is a black hole for information” (see this Hacker News Thread about it) that I agree with.
One a discord discussion thread is finished and the issue is resolved, it is gone forever. Nobody will scroll tenthousands messages up to find an answer to a previously answered question and using the search function for this is miserable, especially if multiple conversations happen in the same channel at the same time.
The same thing applies to IRC chats, Email Lists, Telegram Groups …
These groups have admins often get angry, because the same questions keeps getting asked over and over and people should “search before asking” without realizing this is a systemic problem that they themselfes caused by using Discord in the first place.
A forum does not have this problem, but it has the problem of having much higher response times.

There are 2 solutions:

  • If there is a solution found for a problem, that others might have in the future it needs to get added to the documentation.
    But it is pretty clear that this will not work out: Who will do the work for that ? Who checks if the solution in the docs keeps getting updated, when they become out of date ? Which solutions are worth adding to the docs ?
  • Making the chat history discoverable via a regular search engine, similar to Email List Archives like https://lkml.org/
    But this can to my knowdlege not be achieved using any off-the-shelf (open source) software currently available.

In my opinion Discord (and similar) should be used for casual conversations, discussions around current events (applies for example to most work conversations, which is why slack is popular with businesses), memes and gaming voice chats, but not for things, that keep being relevent for a long time to come.

So a Discord-style chat for nextcloud still makes sense for the aforementioned casual conversations and discussions around current events/announcements, but not for answering questions that stay relevant.
This would in practice mean:
“Help my dev environment broke, does anybody know how to fix this” :white_check_mark:

“Why does API OCP/**** throw this error” :x:

“Nextcloud 25 is looking really nice, great work Nextcloud Team” :white_check_mark:

“I want to implement feature ****, which API is best practice” :x:

“Does the community think implementing feature X to popular app Y is a good idea ? Vote in the poll below.” :white_check_mark:

“New Blog post on nextcloud.com what does the community think ?” :white_check_mark:

My production nextcloud instance has issue X, how do I fix this ?" :x:

Would it not make more sense to use the forum for this, and then relay those topics to whatever chat system of choice. Posts can already be relayed over RSS currently and can look nice if the chat system has a decent bot. Like this:

RSS Example post from forum to Matrix

Or, the forum could add the chat integration plugin

  • You can add any many services as you like.
  • Chat integration can be fully customized and sent to as many services as you care to setup.
Click to see supported providers list

and then you gain advanced functionality such as defining exactly what will/not be relayed.

Example of basic rule creation. It is wonderfully easy to configure and tweak

image

Multiple category and tag filters designed to only send particular forum topics to a particular room called "Public" (bridged between Matrix, Slack and Discord)

This is an excellent reason to use the forum for such posts, which are then relayed to wherever discussion occurs.

All this has required it hosting the bridge bots on a VPS.
The users were already on Telegram (628) and Matrix (~300) rooms for Nextcloud so we simply needed to bridge those chats together.

My question is: Can we leverage the existing community resources?

But that is an open source MIT license, yes?

He is referring to the license of the Enterprise Edition.
So technically it is not 100 % Open Source, only the Community Edition is 100% FOSS.

I personally don’t see this as a big problem, even though Nextcloud is the perfect example that shows, that reserving features for the Enterprise Edition is not necessary to build a profitable Open Source business.

1 Like

Yes, absolutely.

In that case, another thought I have is would it be useful for developers to have a private-ish or public group within the forum? We do this for NextcloudPi in order to discretely draft documentation at #ncpdrafts before it is posted to #ncpdocs. Also, a bug-hunters group was created for volunteers to test and report on bugs to github; they monitor #releases category and related tags quietly.

Interested users [joining NextcloudPi docs group] request membership by answering a question similar to “Are you interested in documentation for helping our project. If so. what kind of documentation would you like to contribute?”

Having a forum group, or even multiple, is interesting because it offers special functionality: being able to internally message or mention itself. Think of how @staff has their own invisible category for occasional communications between admins and moderators.

Dev group(s) can dictate how they interact with the forum. Such groups could be associated with the existing #dev category in some useful manner.

Perhaps this will spur thoughts and possibilities. Thanks for reading. Hope it helps.

1 Like

Just to give my 2¢ to the discussions:

The big advantage of Talk is that it’s already used by many Nextcloud developers for internal Nextcloud GmbH stuff and this allows us to monitor the chat better while not having to look in three different places. So for me, this is the preferred platform. But there is room for improvements, that could improve the situation:

  • Add public documentation about the public channels available, so that people know where to ask questions
  • Add documentation about how to request an account, because otherwise, the guest experience sucks a bit

Of all the other choices, Matrix is probably the only other suitable alternative because it is fully open source, but from my experience (I was involved in KDE matrix deployment and I’m the co-maintainer of the NeoChat desktop client), it is also quite some work to setup and moderate. Our sysadmins are already quite overloaded with work at the moment and they don’t have the bandwidth to maintain a new service.

3 Likes