Community Engagement Approaches in Seed

    TL;DR

      Use Documents for forum-like discussions. Let's create a new permissions to allow creating and editing documents, but prevent from editing other people's documents.

      1

      Use Comments for light-weight convos, with documents per "channel".

    Intro

      We want people (our Community) to interact with us, using our software. There're several ways this could be done, and we've been recently debating which one should be used to the point of getting each other quite annoyed.

      The two possible approaches that I know of are:

        People should create documents in some designated space for every topic they want to discuss. Something like a forum (the old-school ones, or Reddit, or HackerNews), where each document is a topic.

        Having one Document for all the forum-like things, and people should create Discussions in this document.

      We've tried doing both, and it's unclear which one is the best. It actually could be that both options are valid at the same time, for different purposes. Option 1 is good for more substantial discussions, and Option 2 could be used for more lightweight conversations — something like a chat.

      So, here I want to propose an approach that I think might work well.

    Use Documents as Forum Topics

      I think forum-like workflows are better covered with Documents. So, if we want to let people create forum-like topics, we should give them writing permissions to some directory in our site (we already have /community for that).

      Here, I think it would be great to have a capability role that would let them write documents, but only edit their own documents — we want them to create new documents, but we don't want to let them edit other people's documents.

      But we want to be able to edit their documents, for moderation purposes, or anything else. Just like repository owners can edit other people's issues on GitHub. We can't do that with Comments, but we could do that with Documents.

      One downside of this approach is having to come up with a path for the document. What if several users create a document with the same title? They would clash and overwrite each other, which could be really tricky to resolve especially if we have this new capability role I talked about before. We could probably somehow enforce those paths to have some randomness in them or something like that, such that collisions are less likely to happen.

    Use Comments for Lightweight Conversations

      Another downside of using Documents is having to manually issue Capabilities for users that we want to let in. This could probably be automated with the help of a server, or we could even configure open publishing on certain directories if we can avoid path clashing, but currently the only way to let people create document is giving them the Capability.

      Comments though could be written by anybody. At least for now. We do want to have control over who can comment eventually, and we'll be working on that in the future.

      Aside from that, sometimes you just want to discuss something really quickly — you don't want to come up with a title, and make a big deal out of it — so having to write a document could seem like an overkill.

      For those kinds of discussions using Comments could work well. We could have documents that would basically represent channels (like in Slack or Discord), and anybody could comment in there to ask something quickly. If the discussion becomes more substantial, we could create a document out of it, and cross-link things together.