ActivityPub

0 readers
1 users here now

Focused discussion related to ActivityPub integration in NodeBB


This is a forum category containing topical discussion. You can start new discussions by mentioning this category.

founded 2 months ago
1
 
 

tl;dr — how do PieFed/Lemmy/Mbin handle cross-posting?

Currently, when a NodeBB admin moves a topic from the uncategorized pseudo-category into a local category, we federate out an as:Announce, people typically think of that as a "boost" or "share".

That worked fine when the entirety of the category list was your local categories plus the "uncategorized" pseudo-category. However, now that NodeBB is moving towards supporting remote categories (via group actors), this UX makes less sense. We wouldn't want to "move" a topic out of the category it is supposed to be in, just for visibility to other local users. Additionally, topic moving was limited to administrators, and from the get-go we knew it would eventually cause issues because people other than admins would want to share topics to other local users.

This is where the "cross-post" functionality comes in, which is entirely new to NodeBB. I don't think this is new to other AP-enabled threaded discussion software. The idea would be that if a new topic comes in, whether it's uncategorized or not, any user could "cross-post" that topic to a local category, where it would be visible to other users on that instance. On the ActivityPub side, we would then federate out an as:Announce as we already do.

Is this what PieFed/Lemmy/Mbin already do, if they support cross-posting? What other alternative solutions would there be to this problem?

cc @[email protected] @[email protected] @[email protected] @[email protected]

2
1
Hastags (community.nodebb.org)
submitted 1 week ago by [email protected] to c/[email protected]
 
 

As far as ActivityPub posts are concerned, how are Hashtags handled?

Is it just like normal and we add them in the posts?

3
 
 

Hey @[email protected], are Flipboard collections (or are they magazines? I forget the term!) federating out as as:Group? I'm wondering whether it would be possible for NodeBB to load them in as categories, and be able to browse them natively...

I'm just not able to easily find them in the Flipboard UI right now, but I'm relatively new at using the app :)

4
 
 

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:

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 :smirk_cat: .
  • 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

4872fc8c-a679-4968-9daf-84bedb8bf237-image.png

08c3972a-6c7e-4cef-937c-0c4830770a8a-image.png

5
 
 

The upcoming possibility of browsing to remote federated categories/communities has me thinking about interesting use cases for it.

Note that Lemmy, PieFed, mBin, and other "community-centric" software already do support this, so it's nothing new, I'm actually playing catch-up.

One interesting use case centers around NodeBB's /unread route, which tracks new topics since your last visit. Since ever, and even now in v4, this is only for local categories, but if you're able to "subscribe" to a remote category, then we could enable use of this page for that content too.

Think about waking up and seeing a self-curated feed of new content from your subscribed communities! There are some interesting parallels to RSS here, too.

What other forum-centric use cases do you think would be enhanced by the ability to browse remote categories?

6
 
 

Hi @[email protected]/@freamon and @[email protected] —I'm working (not-so-secretly) on refactoring NodeBB so that it is able to "browse" remote audiences/group actors, and that would include things like PieFed and Lemmy communities.

N.B. Given varied nomenclature (group/category/community/subforum), the ForumWG calls this structure an "audience".

Where I am at now is working through the logic for slotting an object into a category.

The most obvious choice here would be to look at as:audience. It's even specified in 1b12, and the majority of threaded implementations follow 1b12.

I am making this post because nutomic explicitly removed the audience from being served in Lemmy (as of January this year), so I don't think relying on that property would be wise.

I asked in that issue whether Lemmy finds community via to/cc (it does). Does PieFed do the same?

Would this also open up the possibility of a topic/context being part of multiple audiences/communities? Interesting...

7
1
submitted 3 weeks ago* (last edited 3 weeks ago) by [email protected] to c/[email protected]
 
 

I followed [email protected] from my account on this instance, and another nodebb instance. This one shows Following, the other shows pending! Follows dont need acceptance do they, why the difference? 1000042774.jpg 1000042776.jpg

Also, why a settings icon only on my nodebb instance?!

8
 
 

@[email protected] recently made a statement that got me thinking about our place in the open social web, and the direction it's going.

He says to @[email protected] and @[email protected] re: SXSW

> #FediverseHouse this feels like an irrelevant echo chamber, I really miss the grassroots #DIY that built this space in the first place. This #maistreaming is too much noise vs signal... currently the grassroots #DIY space is a hollow shell

(two posts combined)

That immediately got me on edge as someone new to ActivityPub in 2024. Does this mean I'm "mainstream", and somehow "bad"?

Mainstream adoption is good and a step in the right direction. I personally think ActivityPub isn't ready for general mainstream consumption, but we as a group are rapidly closing the gap and I'd much rather continue building momentum instead of waiting for the opportune moment.

Here's the hot take that I was going to originally write, but thought came off as too combative:

> It sounds like you feel like ActivityPub development only counts when you're toiling away in obscurity.

As someone who's hacking away on a platform that hasn't been "mainstream" for over a decade (forum/BBS software), I bristle at the notion that what I do doesn't count as grassroots or DIY. You don't have to be the perpetual underdog to do good in the world.

I might be wrong, but it sounds like Hamish feels like big players are coming in and taking the ball away... that big players' clout and presence takes away from the attention that smaller DIY projects receive.

Maybe... but if the fediverse is 100x larger with a big player, and they take 99% of the eyeballs, have they really taken anything away from you?

9
 
 

So I was wondering if there was a way for me to have a Category follow a federated account.

I can't seem to find the way to do it if that's possible.

But optimally the category would post a topic related to the new posts the followed account would post. Or something like that.

10
 
 

Wanted to start a convo with @[email protected] from Ghost and @[email protected] from Discourse about AP resource discovery.

A common use case from fediverse users is to be linked out to a site, and attempt to "bring it in" to their local instance/app of choice. This is done by taking the browser URL and pasting it into their site/app's search bar, or equivalent.

For example:

For context, last night I discovered that Ghost's latest blog post didn't make it into NodeBB, due to a bug on my end. I attempted to resolve it via URL but there was no AP resource at that URL. I ended up having to query the instance actor (which I happened to already know), and looking at the outbox.

To my knowledge there is no way to find a Discourse post or topic's AP resource ID without having a local Discourse account.

Would it be possible for you to send back an HTTP 301 Moved Permanently (or similar) if the Accepts header contains one of the AP-related types?

N.B. This probably has some overlap with @[email protected]'s HTTP Discovery Task Force, a 308 is recommended there.

11
 
 

Very complicated all this Fediverse stuff! Far from the dream of having one account for everything, I seemed to need an account on every service to get the whole picture. I have now Nodebb, Mastodon, Lemmy, PixelFed and Peertube! I dont know if Im just not using it properly, or if seeing everything from any one of these site is even possible? @julian how far off is the prospect of using my nodebb account for all Federated chat, is that even achievable in long term?

12
1
NodeBB on FediDB (community.nodebb.org)
submitted 1 month ago by [email protected] to c/[email protected]
 
 

Hey @[email protected], can I poke you about getting NodeBB on FediDB?

It automatically picked up a couple NodeBB sites, so I think the nodeinfo stuff is working, just not sure if it required some manual intervention on your end to get the software link working — it currently 404s.

Cheers :flag-ca:

13
 
 

For awhile now we've hosted https://try.nodebb.org as our demo instance for people to see a plain NodeBB instance.

I have added a federated category on that instance now. You can of course still make test posts to this instance, but you can also feel free to fill @[email protected] with garbage instead :laughing:

Please note that the "try" instance of NodeBB is reset every 24 hours, which means all follow relationships, content, etc. will only last at most that long. If you follow the category or an account on that instance, those categories/users will "forget" you followed them.

14
 
 

The logs from this are already cleared on my server, but when I sent a private message (standard Create/Note with a single recipient who also has a Mention in the tag property) from my custom software to my account here, I received a 500 error saying something like "cc is not iterable" (though I don't know the exact phrasing). When I included cc as an empty array, it started working. Not sure whether it was missing on Create or Note, maybe it was both.

15
1
1b12 vs Guppe groups (community.nodebb.org)
submitted 1 month ago by [email protected] to c/[email protected]
 
 

@panos brought up something interesting recently, which is that Lemmy communities don't boost everything (at least when viewed from Mastodon), but just the original post.

I wasn't sure whether this was intentional (because 1b12 definitely specifies that everything is boosted, replies and all). The only explanation I can think of is that 1b12 boosts activities, and Mastodon doesn't understand that, so it's actually an implementation quirk that causes Mastodon to not actually see the entire conversation.

NodeBB used to Announce(Note) and Announce(Create(Note)), and it meant that Mastodon was seeing everything. This was desirable from a synchronization standpoint, but it meant everything was going into Mastodon user feeds, which was @panos' concern.

I think Guppe (which is kind of like 1b12? Not sure) boosts everything, but again, am not 100% sure.

16
 
 

I was looking at this post from my own forum (nBB 4.0.3) via various vectors, and trying to pull it in from here resulted in a couple of hiccups.

  1. Searching the posts community.nodebb.org URL did not pull the post and its comments. Naturally, searching the original URL works fine (though does not fetch the comments, naturally)
  2. Fetching my comment from that post does fetch the post and full comment chain, but your comment, @julian, is surprisingly empty (link)

6b4f9509-8c7a-4705-9a27-40476dccfebb-image.png

Just thought you'd like to know.

17
 
 

PieFed is very similar to Lemmy, but with a couple small differences that a couple people prefer. It seems to be retrieving the community okay, we'll see if this post goes through.

18
1
World Boost (community.nodebb.org)
submitted 1 month ago by [email protected] to c/[email protected]
 
 

Previously discussed, it takes a while to follow a set of people who might post on the topic of your forum. Having done that, and got an interesting World feed, its a shame that isnt available to new users

Suggestion, World category has MyWorld, and World tabs Where World follows Admins followings, and MyWorld shows post from the users followings

Hence new users get access to a World feed which is already populated. It would make the most of this feature, that is completely empty for new users, who probably wont have any idea how to start getting posts in there

19
 
 

@activitypub Hey, thanks for the awesome ActivityPub support!

It has been working great so far on our forum at fbrc.nodebb.com, with two exceptions. I don't know if these are bugs or if they fall in NodeBB scope or not, figured I'd report them here:

  1. Alt text not transferring to Mastodon. This post has alt text in NodeBB (I think), it's not showing up when viewed via Mastodon web UI: https://community.nodebb.org/category/30/activitypub
20
 
 

Among the fediverse there are microblogs (your Mastodons, Misskeys(+forks), etc.

Then there are the long form peeps. We managed to all find each other at FOSDEM 2025.

Pictured is @[email protected] (Write freely), @[email protected] (WordPress), and yours truly (NodeBB). We also had some good conversations with @[email protected] (Ghost), but I wasn't quick enough with my camera 😩

Let's move the state of long-form text on the open social web, forward!

1000007220.jpg

21
1
See you at FOSDEM! (community.nodebb.org)
submitted 2 months ago by [email protected] to c/[email protected]
 
 

NodeBB will be making an appearance at this year's FOSDEM!

I'll like be present at the Social Web dev room during FOSDEM itself, and will be presenting a talk at the Social Web After Hours event alongside @[email protected], @[email protected], and @[email protected] at Hackerspace Brussels (HSBXL), on Sunday evening.

I'll be talking up the SWICG Forum and Threaded Discussions Task Force, and what we're working on to solve one of fedi's hard problems: combating the notion that "the fediverse is quiet". Come and listen!

Thank you to the great folks at @[email protected], who have kindly funded my way there this year.

22
 
 

767e2ed4-8089-40ab-92a8-7fb2204b20bd-image.png

I thought that if I entered a Fediverse address here, like '@[email protected],' it would follow that user, and their posts would then appear in the corresponding category.

But that's not happening. There's also no meaningful error message. The actor you see in the image probably appears because I entered an incorrect address.

Does this feature need to be enabled on the Fediverse instance 'nrw.social'?

Who can help?

23
 
 

For some reason, I'm unable to view the profile page of certain remote accounts here at community.nodebb.org.

So far, I've only noticed it with some accounts from my Mastodon instance - particularly, my own account, @[email protected], and the @[email protected] account, which should be viewable at https://community.nodebb.org/user/[email protected] and https://community.nodebb.org/user/[email protected] respectively. Instead, trying to go to either of those profile pages produces a 404 error; it's weird though, because these accounts used to work fine before.

Sorry if this is the wrong place to report this. I considered creating an issue on the GitHub repo, but at the moment I have no idea if it can affect accounts from other instances (let alone, other activitypub software), or only those from social.vivaldi.net.

24
 
 

I subscribed to [email protected] earlier, and got my first post. The activity looked like:

{
  "@context": "https://www.w3.org/ns/activitystreams",
  "actor": "https://community.nodebb.org/category/30",
  "cc": [
    "https://community.nodebb.org/category/30/followers"
  ],
  "id": "https://community.nodebb.org/post/https%3A%2F%2Fcommunity.nodebb.org%2Fpost%2F102768#activity/announce/1737427447686",
  "object": {
    "cc": [
      "https://community.nodebb.org/uid/24276/followers"
    ],
    "id": "https://community.nodebb.org/post/102768#activity/create/1737427442685",
    "object": {
      "@context": [
        "https://www.w3.org/ns/activitystreams",
        {
          "Emoji": "toot:Emoji",
          "toot": "http://joinmastodon.org/ns#"
        }
      ],
      "attachment": [],
      "attributedTo": "https://community.nodebb.org/uid/24276",
      "audience": "https://community.nodebb.org/category/30",
      "cc": [
        "https://community.nodebb.org/uid/24276/followers"
      ],
      "content": "<p>Looking through my logs (snip).</p>\n",
      "context": "https://community.nodebb.org/topic/18546",
      "id": "https://community.nodebb.org/post/102768",
      "inReplyTo": null,
      "name": "User Agent Used for Federation?",
      "published": "2025-01-21T02:43:57.558Z",
      "replies": "https://community.nodebb.org/post/102768/replies",
      "source": {
        "content": "Looking through my logs (snip)",
        "mediaType": "text/markdown"
      },
      "summary": null,
      "tag": [],
      "to": [
        "https://www.w3.org/ns/activitystreams#Public"
      ],
      "type": "Note",
      "updated": null,
      "url": "https://community.nodebb.org/post/102768"
    },
    "to": [
      "https://www.w3.org/ns/activitystreams#Public"
    ],
    "type": "Create"
  },
  "to": [
    "https://www.w3.org/ns/activitystreams#Public"
  ],
  "type": "Announce"
}

As you can see, there's an 'actor' in the Announce (for the community), and 'attributedTo' in the Note (for the user), but no 'actor' in the Create part. I've not seen this behaviour on any other platforms - there's always an 'actor', with the same value as the 'attributedTo' field in the Note.

I tried to reply to my account on another platform on post , but it didn't federate out (I don't know if having to wait for moderator approval affects this). Given that Announce normally just wraps the original object, it suggests that there'll also be no 'actor' in 'Create' when it's just 'Create/Note' being sent out, but I haven't been able to check. This is a bit inconvenient (for me at least), because I'm used to using that field to get the details of the user who signed the request, and it'll be a pain to have to dig into the Note's 'attributedTo' field to find it.

25
 
 

Looking through my logs it seems that NodeBB doesn't have any defined User Agent for it's ActivityPub requests.

Mastodon has Mastodon/<version> (athing; +https://<websitehere>) Friendica has Friendica/<version> +https://<website>

And many more other federated software have similar things. But when looking through my web request logs I'm not seeing any specific User Agent for NodeBB forums. The only one in fact that I've found which might be NodeBB is node-fetch.

I'm asking simply because I have a tool that monitors specifically for ActivityPub requests from various clients. And I'd like to be able to track NodeBB ActivityPub requests as well, but I'm not seeing how at the moment.

view more: next ›