<p><strong>tl;dr</strong> — cross-posting is coming to NodeBB in v4.9.0. It will be internal-only for now, as we work through social issues with federated cross-posting. Existing category sync and auto-categorization logic in NodeBB now utilises cross-posts instead of moving or ignoring categorized topics, respectively.</p> <h3>Some history</h3> <p>For the past couple months, I've been mulling over the idea of cross-posting, and how this would work in a federated forum context.</p>
tl;dr — cross-posting is coming to NodeBB in v4.9.0. It will be internal-only for now, as we work through social issues with federated cross-posting. Existing category sync and auto-categorization logic in NodeBB now utilises cross-posts instead of moving or ignoring categorized topics, respectively.
Some history
For the past couple months, I've been mulling over the idea of cross-posting, and how this would work in a federated forum context. Specifically, I had begun to think more critically about how NodeBB presented itself in the threadiverse (threaded fediverse), and whether what we were doing currently was the right approach.
Somewhere in the v4.1.x releases, NodeBB began supporting a new feature called "category synchronization". It allowed categories to follow other categories, and would move topics from those other categories into a local category. If done in reverse, the both categories could be considered "synchronized", meaning that users on both instances could see, like, and comment on the same topics.
As of v4.3.x, NodeBB gained the ability to actually "see" remote categories. You'd be able to browse to a local representation of something like @fediverse or @comicstrips@lemmy.world and see the posts in those categories as though you were on that site itself. It was a huge jump in how NodeBB treated threadiverse content.
After that point, it became a little weird that category sychronization would move topics from one category to another, because the topic really didn't lose its existing categorization, we simply stole it! When I introduced auto-categorization rules in v4.5.0, I was cognizant of this discrepancy, and avoided complication by ignoring already-categorized topics.
What is cross-posting?
In a nutshell, cross-posting is the ability for a single topic/reply-tree to exist in multiple places simultaneously. Comment trees are shared and accessible from both of those places, and this avoids unnecessary duplication of content across multiple communities.
We see manual cross-posting happening often on the fediverse already, and collapsing these identical items into a single entity would be a boost to discussion as it eliminates the artificial fracturing of comments across multiple disparate posts.
Importantly, v4.9.0 will introduce cross-posting locally only. It means that topics from outside the forum can be cross-posted to an local category, but local topics cannot be cross-posted to remote categories. This is the eventual plan, but we are not there yet! See below ("Why don't cross-posts federate?") for more details.
Cross-posting essentials
Topics will have a new button in the sidebar (or top bar, in the Persona theme) that allows you to cross-post topics to another category. In this dialog, you will be able to choose one or more categories to cross-post the topic to.
Admittedly, there's not a whole lot of utility in cross-posting local topics to another local category, but it really shines when you crosspost remote topics to a local category.
When a cross-post appears in a local category, a link back to the original category is shown.
Anyone can cross-post a topic to a local category, but only mods and administrators can remove others' cross-posts.
What of category synchronization and auto-categorization?
The existing features will be updated as follows:
Category synchronization logic will no longer move topics from one category to another, they will now be cross-posted and visible in both categories.
Auto-categorization rules now apply to categorized content. When a new topic is discovered matching an existing rule, it will be cross-posted to the target category.
Why don't cross-posts federate?
I want to roll out a first-pass at cross-posting as there are immediate benefits for forums and their local categories. Being able to pull in content from other remote categories while respecting their categorization will allow for more increased cross-community engagement and expose remote communities to people who would have otherwise not discovered them.
At the same time, we want to move slowly because there are wide-ranging effects that federated cross-posting could bring about. Namely, if anybody is able to cross-post anything anywhere, then it would enable brigading because different communities with (sometimes very) different values would suddenly co-exist in the same space, leading to some very negative interactions.
Additional questions exist, such as:
Who gets to moderate the discussion?
How are reports handled in cross-posted topics?
Does a cross-post need to be approved?
How do we express these using ActivityStreams vocabulary?
I certainly don't have all the answers as to how to best approach it, but it is something we at the @forum-wg would love to tackle at some point.
What's next?
Other threadiverse software (Lemmy, Piefed, mbin) don't handle cross-posting, and there are no immediate plans to support it. Piefed does have something similar (called "Topics", akin to Reddit multi-reddits) which can contain posts from multiple communities. Both Lemmy and Piefed attempt to automatically collapse comment trees when identical links are discovered. Moving forward we may want to coalesce toward a single desired behaviour, but whether cross-posting is it, is to be determined.
Additionally, NodeBB doesn't have the concept of "boosting" (also known as resharing, reblogging, etc.) It does do something similar when topics are moved between categories, and so it would make sense that a cross-post would be the forum equivalent of a reshare.
Cross-posting is currently being tested on activitypub.space, and should be generally available as of NodeBB v4.9.0.
Takahe has limited support for this type: See Original Article