bonfire-networks / bonfire-app

Bonfire - tend to your digital life in community. Customise and host your own online space and control your experience at the most granular level.
https://bonfirenetworks.org
GNU Affero General Public License v3.0
577 stars 43 forks source link

Feature Proposal: forum extension #452

Open loid345 opened 2 years ago

loid345 commented 2 years ago

Based on the needs of many community owners, when the forum alone is not enough for the community, I suggest adding a forum extension to the Bonfire ecosystem. The forum is interesting both for small communities and for any companies and non-profit organizations. And there are practically no all-in-one open source platforms. There are only paid social networks in php, where there is a forum (phpfox, socialengine, wowonder, sngine), the architecture of which was outdated at least ten years ago. If we consider open source forums (Discourse, Nodebb, Flarum, hereinafter DNF), then this is just a forum and in many years these platforms will remain forum engines. They have no flexibility. Therefore, by implementing the forum module, Bonfire users will receive a powerful communication tool that is closely integrated with other functions. It will be a killer feature of Bonfire. This will attract more developers and donations for the development of the platform.

To implement the forum, I propose to divide the development into several stages:

  1. MVP. Create a forum section in the menu and a forum page, add categories and parent categories. In the categories section, specify the category name, category description and select the parent category. In the categories section, you can create an unlimited number of topics. Integrate with the search and tag system.
  2. Add alerts for actions on the forum. Add topics to the feed. Add a category and theme image. SEO improvement: meta tags, CNC, etc. Add the latest topics, best topics, etc. to the menu on the forum page. Filter topics by date, number of responses, etc.
  3. Add a quote, report a message, voting system, widgets to the forum page.
  4. Add the ability to translate the name and description of the forum into other languages.
  5. Compatible with ActivityPub.
  6. Integration of the forum with other extensions, with a personal page, groups, ValueFlows, etc.
  7. Add tools for migration from DNF and paid forum engines. This is an approximate list of what I can write from memory. In reality, this is an endless scope for creativity. I hope this will attract developers and users to the bonfire ecosystem much more to build a better community platform together.
ivanminutillo commented 2 years ago

hi @loid345 - thanks for taking the time to go through this. We also think integrating forum within a social network is a crucial feature to have - also to deal with content collapse and how it affects users that want to have meaningful discussions on social networks. We are currently experimenting with how a forum would look like already in bonfire, and we have an extension (we called it "topics") which already satisfies several of your bullet points. It's in it early stage, and both features and UXs are in their infancy - but you can have a look at it here https://playground.bonfire.cafe/topics (and you can register to our playground instance to test it out and give feedbacks as well)

loid345 commented 2 years ago

hi @loid345 - thanks for taking the time to go through this. We also think integrating forum within a social network is a crucial feature to have - also to deal with content collapse and how it affects users that want to have meaningful discussions on social networks. We are currently experimenting with how a forum would look like already in bonfire, and we have an extension (we called it "topics") which already satisfies several of your bullet points. It's in it early stage, and both features and UXs are in their infancy - but you can have a look at it here https://playground.bonfire.cafe/topics (and you can register to our playground instance to test it out and give feedbacks as well)

Thanks for the answer. I also think that a forum is more useful for storing and structuring information than an endless stream of idle chatter. I looked at the "Topics" section of the demo site, but I thought it was the initial version of "blog" because blog topics and forum topics are very similar (the blog adds a preview image). IMG_20220928_115603

Maybe the database structure for the forum should be copied from, for example, discourse, so as not to invent a new forum and make it easier to migrate from other forums. Thus, many migration tools can work with both discourse and bonfire forums. This will save a lot of time.

makoConstruct commented 1 year ago

(edit: I'm kind of recapitulating the Spaces feature here) Yeah, topics should be able to mostly encompass this functionality? I guess, how I'd do it, is, simple version: Admins can define a "forum" structure, which is just a listing of some recommended "forum" type topics. Members can tag a post with any of these recommended topics, and then people browsing the "forum" tab will be able to see them in the forum (and then people can reply to the tagged post, and that's essentially a forum thread).

Some kinda neat stuff you get for free with that: Ability to post a thing to more than one forum, ability to make replies to existing threads that are also their own toplevel thread.

A more sophisticated version would allow any user to define a forum structure, and other users on any instance would be able to install those fora to their sidebar. Kind of like joining a discord server, but improved: The "channels" of these servers need not belong to their servers, they can be shared between different servers, they can be defined from topics that weren't even intended to be used as forum tags. This could be really powerful and could replace discord for a lot of uses.

To moderate forums, we'd need the ability to restrict who is able to invoke/apply a tag/topic (but I'm guessing the project was probably already considering implementing that?)