Live testing of remote categories
-
Happy Tuesday!
Today we've updated the NodeBB community forum onto the
remote-categories
testing branch, which means that users on the open social web that identify themselves as "Groups" will be rendered in NodeBB as categories. Prior to this, they looked like users.Here are some examples of remote categories:
- Comic Strips (on lemmy.ml)
- Star Trek Social Club (on startrek.website)
- Social Web Foundation (a WordPress blog)
ActivityPub "groups" and forum categories have quite a few things in common β they don't usually post topic themselves, they "contain" topics, and they are usually administered by a separate group of users (moderators!) In many ways, these groups lend themselves to categories much more easily than they do as users.
Notes:
- We will likely be releasing this as v4.3.0-alpha this Wednesday. Probably this means you don't want this on a live forum just yet.
- A lot of the backend logic is complete, but a lot of the frontend UX will be worked on.
- You can "search" for categories (via "in categories" in the search page), paste the full handle in order to instruct NodeBB to pull a new category in.
- You can now no longer mention a remote category. Instead, create your topic right in that category itself. As it should be
.
- Remote content coming in that is slotted into a remote category will still show up in your "world" feed. That is still intended to be where discovery of content outside the local NodeBB instance will take place.
- Report any bugs or confusing behaviours (and there will be some) here.
Screenshots
wrote 14 days ago last edited byNice, but does this mean accounts on NodeBB can no longer mention categories at all?
Perhaps this was not its intended purpose, but being able to link to a category in a post by a handle is much more convenient than typing its entire URL - and that goes for both remote and local categories.
So I am not talking about creating a topic on remote categories by mentioning them, but rather trying to bring attention to their existence to a person that might not know about them.
E.g.
> @test1 Hey, you might want to check out @testing-ground; there's lots of awesome content there.> @test1 If you want to make a report, consider posting this to @bug-reports instead.
N.B. In my examples, I'm actually still able to mention local categories via a handle - so I did not type
[[@testing-ground](https://community.nodebb.org/category/4/testing-ground)](https://community.nodebb.org/category/4/testing-ground)
, simply[@testing-ground](https://community.nodebb.org/category/4/testing-ground)
. -
wrote 14 days ago last edited by
@AltCode I think being able to mention categories is handy. It was removed as a byproduct of the category no longer being a user, but it's not gone by design, no. It can come back.
-
@Kichae at some point, but that's a bit more niche of a use case. Doesn't mean there isn't use for it though. The underlying structure of NodeBB ties a topic to a single category, but supporting cross posting could be something we add on top of that.
wrote 14 days ago last edited by@julian The way cross-posting works on Lemmy and Reddit is basically to copy the post, so there's not necessarily a reason to break the one-to-one mapping of posts-to-categories. (Though, actually, looking at Reddit, I think it's actually a new post with an internal link preview, rather than a wholesale copy of content as it is on Lemmy). But more advanced frameworks could be interesting
-
@julian can you be specific in how to track it?
Although Ive found it I cant seem to follow / track that community.
What do I do? Apologies if Im being stupid, but Ive triedwrote 14 days ago last edited by@eeeee no problem, what seems straightforward for me isn't always the case for others!
Below the category description, there is a bar that contains buttons for sorting the topic list. The first of those buttons controls whether you are watching or tracking the category. It usually corresponds to whether you see topics from that category in your unread and recent pages.
For remote categories, this controls whether or not you are following the category. If you are following the category, then topics posted in that category will show up in your unread page.
-
@julian example using foaf and sioc...
```
id = f1
type = [as:Service, sioc:Forum]
as:summary = "Forum TF category"id = g1
type = [as:Group, foaf:Group, foaf:Agent, sioc:User]
as:name = "AP Forum Task Force"
foaf:member = [Julian, a]id = t1
type = [as:Collection, sioc:Thread]
as:summary = "Some thread"
sioc:has_container = f1id = p1
type = [as:Event, sioc:Post]
as:name = "Meeting on April 2025"
sioc:has_container = t1
sioc:has_creator = g1
as:attributedTo = g1
```wrote 14 days ago last edited by@trwnh@mastodon.social in general, if NodeBB discovers a group, it will create an (initially) empty category in order to house topics.
If in the course of that category's life, no topics actually make it in (i.e. if nobody addresses anything to it, nobody follows it, etc.) then it'll be pruned out as normal.
So if an as:Group contains users, and doesn't share or send creates, then it'll just be a little stub that goes nowhere, that's all.
-
wrote 14 days ago last edited by
I would be remiss if I didn't also mention that while this theoretically works with software like PieFed and Mbin, it has only really been tested against NodeBB (of course) and Lemmy.
@andrew_s@piefed.social @rimu@mastodon.nzoss.nz @melroy@kbin.melroy.org
-
wrote 14 days ago last edited by
Some interesting bugs atm
All the ActivityPub groups I was following prior to this update were successfully migrated to become remote categories (good!), but now that they are no longer treated as remote users, this has left behind a bunch of "guest" users in my
/following
page.
Also due to the migration, a bunch of topics that used to be categorised under @activitypub, were automatically moved to [[@activitypub](https://community.nodebb.org/category/30/activitypub)@forum.wedistribute.org](https://community.nodebb.org/category/activitypub@forum.wedistribute.org)!
I presume this happened because [[@activitypub](https://community.nodebb.org/category/30/activitypub)@forum.wedistribute.org](https://community.nodebb.org/category/activitypub@forum.wedistribute.org) is set to mirror @activitypub. I'm guessing that since the group actor was sharing all these posts, once NodeBB recognised it as a remote category instead, it began to treating those share activities as move actions.
Seeing how NodeBB does not have a notion of topics belonging to multiple categories, you might want to revisit how you handle remote categories that follow and mirror local categories.
-
Some interesting bugs atm
All the ActivityPub groups I was following prior to this update were successfully migrated to become remote categories (good!), but now that they are no longer treated as remote users, this has left behind a bunch of "guest" users in my
/following
page.
Also due to the migration, a bunch of topics that used to be categorised under @activitypub, were automatically moved to [[@activitypub](https://community.nodebb.org/category/30/activitypub)@forum.wedistribute.org](https://community.nodebb.org/category/activitypub@forum.wedistribute.org)!
I presume this happened because [[@activitypub](https://community.nodebb.org/category/30/activitypub)@forum.wedistribute.org](https://community.nodebb.org/category/activitypub@forum.wedistribute.org) is set to mirror @activitypub. I'm guessing that since the group actor was sharing all these posts, once NodeBB recognised it as a remote category instead, it began to treating those share activities as move actions.
Seeing how NodeBB does not have a notion of topics belonging to multiple categories, you might want to revisit how you handle remote categories that follow and mirror local categories.
wrote 14 days ago last edited by@AltCode thanks for reporting! I'll take a look at those tomorrow.
The topics being moved out is a byproduct of the migration. Looks like some tweaking is in order! Perhaps I'll only move topics whose main post is on the same domain.
-
@AltCode thanks for reporting! I'll take a look at those tomorrow.
The topics being moved out is a byproduct of the migration. Looks like some tweaking is in order! Perhaps I'll only move topics whose main post is on the same domain.
wrote 14 days ago last edited by@AltCode I've moved those topics back to the proper category
-
wrote 14 days ago last edited by
Edit: updated as had to click into category to follow
-
I would be remiss if I didn't also mention that while this theoretically works with software like PieFed and Mbin, it has only really been tested against NodeBB (of course) and Lemmy.
@andrew_s@piefed.social @rimu@mastodon.nzoss.nz @melroy@kbin.melroy.org
wrote 14 days ago last edited byI can confirm it works with Mbin, look at my instance: https://kbin.melroy.org/m/activitypub@community.nodebb.org/p/286459/Happy-Tuesday-Today-we-ve-updated-the-NodeBB-community-forum-onto#post-comment-413326
-
wrote 14 days ago last edited by
@julian @activitypub Makes sense. Were NodeBB's own federated categories represented as users prior to this change? Do you assume that all groups are FEP-1b12 groups?
There was an interesting discussion on SocialHub on identifying FEP-1b12 groups and nutomic made a compelling argument that we should just assume thatGroup
supports FEP-1b12 if there is no other indicator:https://socialhub.activitypub.rocks/t/fep-1b12-group-federation/2724/96
-
@julian @activitypub Makes sense. Were NodeBB's own federated categories represented as users prior to this change? Do you assume that all groups are FEP-1b12 groups?
There was an interesting discussion on SocialHub on identifying FEP-1b12 groups and nutomic made a compelling argument that we should just assume thatGroup
supports FEP-1b12 if there is no other indicator:https://socialhub.activitypub.rocks/t/fep-1b12-group-federation/2724/96
wrote 13 days ago last edited by@silverpill@mitra.social good questions!
Local NodeBB categories are still federated out as ActivityPub actors, with
as:type
Group
, they follow 1b12 as they always have.I do assume that group actors adhere to 1b12, but that doesn't stop others from creating topics by mentioning them directly. If a NodeBB instance happens to hear about that, we'll add it to the remote category.
-
@AltCode thanks for reporting! I'll take a look at those tomorrow.
The topics being moved out is a byproduct of the migration. Looks like some tweaking is in order! Perhaps I'll only move topics whose main post is on the same domain.
wrote 13 days ago last edited by@AltCode the two bugs you identified have been resolved, can you confirm the latter? The former I manually moved them back already to the right category.
-
I would be remiss if I didn't also mention that while this theoretically works with software like PieFed and Mbin, it has only really been tested against NodeBB (of course) and Lemmy.
@andrew_s@piefed.social @rimu@mastodon.nzoss.nz @melroy@kbin.melroy.org
wrote 13 days ago last edited byConfirmed working with:
- PieFed Communities: PieFed Meta
- Flipboard Magazines: [Gear by @engadget@flipboard.com](https://community.nodebb.org/category/gear-engadget@flipboard.com)
However, while Flipboard magazines send Announces as per 1b12, and the items are added to the outbox, the objects themselves do not address the magazine at all, and so a backreference is missing. When they come into NodeBB, there's no pointer back to the group, and so it is slotted into the "uncategorized" bucket.
tl;dr β can this object
https://flipboard.com/users/Engadget/statuses/uva9misBSrqjCSR6mtzV6g:a:3199686
please includehttps://flipboard.com/@engadget/gear-nv6v86arz
in itsto
orcc
property? -
@AltCode the two bugs you identified have been resolved, can you confirm the latter? The former I manually moved them back already to the right category.
-
Confirmed working with:
- PieFed Communities: PieFed Meta
- Flipboard Magazines: [Gear by @engadget@flipboard.com](https://community.nodebb.org/category/gear-engadget@flipboard.com)
However, while Flipboard magazines send Announces as per 1b12, and the items are added to the outbox, the objects themselves do not address the magazine at all, and so a backreference is missing. When they come into NodeBB, there's no pointer back to the group, and so it is slotted into the "uncategorized" bucket.
tl;dr β can this object
https://flipboard.com/users/Engadget/statuses/uva9misBSrqjCSR6mtzV6g:a:3199686
please includehttps://flipboard.com/@engadget/gear-nv6v86arz
in itsto
orcc
property? -
@julian @activitypub Makes sense. Were NodeBB's own federated categories represented as users prior to this change? Do you assume that all groups are FEP-1b12 groups?
There was an interesting discussion on SocialHub on identifying FEP-1b12 groups and nutomic made a compelling argument that we should just assume thatGroup
supports FEP-1b12 if there is no other indicator:https://socialhub.activitypub.rocks/t/fep-1b12-group-federation/2724/96
wrote 10 days ago last edited by@silverpill@mitra.social I read back a bit to get a fuller context (not all the way, though, there's a damn lot of bikeshedding in that topic.)
Basically Nutomic is advocating against multi typing because it is poorly supported (true), and because Lemmy has first-mover advantage (also true.)
Requiring a multitype or boolean flag for 1b12 would be quite difficult to do because you'll never have 100% adoption and end up needing backwards compatibility with 1b12-classic anyway β cat's already out of the bag.
-
wrote 10 days ago last edited by@julian How do you deal with situations where the group actor also sends posts?
For example, on Hubzilla, (streams), and Forte, the top level post of a forum thread is from the forum, not the user. This was originally done for Mastodon compatibility since it did not understand threaded conversations and groups. They could follow the forum as if it were a user, and receive all of the forum posts. They could send a DM to the forum to create a new post.
NodeBB took a different approach, using boosts to distribute user posts to people who follow the forum. And I think you said you use mentions within a post to create a new top level post.
How are we handling the differences in approaches? -
@julian How do you deal with situations where the group actor also sends posts?
For example, on Hubzilla, (streams), and Forte, the top level post of a forum thread is from the forum, not the user. This was originally done for Mastodon compatibility since it did not understand threaded conversations and groups. They could follow the forum as if it were a user, and receive all of the forum posts. They could send a DM to the forum to create a new post.
NodeBB took a different approach, using boosts to distribute user posts to people who follow the forum. And I think you said you use mentions within a post to create a new top level post.
How are we handling the differences in approaches?wrote 9 days ago last edited by@scott@loves.tech can you share an example of a group actor from Hubzilla? Would be interesting to see how that's handled. Likely it wouldn't work properly because categories in NodeBB don't author posts.
Do your group actors send creates on behalf of regular users? That might work ok.
Lastly, there's no requirement that a NodeBB category be mentioned. It only needs to be addressed. A mention is the easiest way to do that because you addressing is abstracted out of the Mastodon UI.
But for things like PieFed, Lemmy, Mbin, and likely Hubzilla, you're able to change addressing based on where you create the post.