February Update on ActivityPub Development
-
Hello everybody!
It's dark and miserable outside, on account of it being rainy in my little corner of Canada, but in this little corner of the fediverse, there are some definitely exciting things happening!
Wait, what's the fediverse?
Last month I provided an update on the work I've been doing in 2024, which is a long-running project to bring ActivityPub integration into NodeBB. A more thorough overview of ActivityPub can be found in the first announcement announcing the green-light from the NLNet Foundation.
Today marks the day that our community forum connects to the fediverse. We've updated the code and switched over to the
activitypub
branch, and enabled federation on two categories, the NodeBB Development category (which is read-only for everybody but NodeBB staff), and the Testing Ground, which is meant for content of no consequence.It also means that henceforth any bugs discovered are public and I'd be on the hook to fix them post-haste
We're doing this gradual rollout not only because I'm quite excited to share what I've achieved so far, but also because I'm developing in public and it's important to gather feedback as early on as feasible.
It also means that β barring some crazy regression causing me to roll everything back β I'll be providing development updates on this account instead of my personal (@[email protected]).
So, what works, and what doesn't?
- User-specific topic lists and the global topic list
- If you navigate to /world, you'll be brought to your custom topic list of remote content, of which there won't be any unless you start following some users
- Bi-directional user follows
- You are able to follow a remote user from within NodeBB by navigating to their profile. Doing so at this time is rather difficult, see below.
- Likewise, people outside of NodeBB can follow you from sites like Mastodon, Pixelfed, kbin, etc. simply by searching for your username.
- Your "handle" is your username followed by
@community.nodebb.org
.
- Bi-directional federation of content
- Topic and replies posted to this category and the testing ground will be automatically propagated out to your followers (if any), and responses to that content from outside of NodeBB will show up here.
- Propagation of likes to the local NodeBB
- Likewise, if your post is liked by someone outside of NodeBB, it will be reflected in the topic
- Announces (aka "Boosts")
- If your post is "boosted" or shared by someone outside of NodeBB, there will be a notification within the topic.
No update would be complete without a list of what doesn't work, so here goes...
- Finding remote content and users
- Discoverability of remote content is currently quite limited. You are not able to search for content outside of the local NodeBB, but this will be worked on in due course.
- You are currently able to navigate to remote profiles by manipulating the URL (e.g. NodeBB's fosstodon profile: https://community.nodebb.org/user/[email protected]
- Emoji
- If you're reading this from outside of the NodeBB community forum, you won't see the emoji I put in the post... yet
- Mentions
- @oplik0 is planning to work on integrating mentions, but that is currently at the to-do stage
- Notifications
- When a remote user interacts with you (e.g. upvotes, replies, and follows), you currently aren't notified
- ... plus about a thousand other things.
There's a huge amount of work to do still, but we'll be seeing a more featureful integration in the coming weeks/months.
Also, there is a non-zero probability that when I hit post, this will cause the NodeBB community to crash.
So... here goes... 3... 2... 1...
- User-specific topic lists and the global topic list
-
@news @fediversereport Thought you may be interested.
-
@[email protected] great job Julian! @julian
-
@alicihan @[email protected] @julian Think you mustβve tagged me by mistake, but this is still cool! Great work fellow Julian!
-
@julian @[email protected] yeap My apologies for any confusion or inconvenience caused. I was just testing tagging in the @nodebb forum, and I made a mistake. Thank you for your understanding! But I'm glad you found it cool!
-
@julian said in February Update on ActivityPub Development:
Your "handle" is your username followed by @community.nodebb.org.
how will it work for nodebb forums that are subfolder installation?
-
@crazycells all very important questions that I do not have the answers to
-
@julian if it is customizable, [email protected] would be simpler and cooler
-
@crazycells I am not actually certain how it would work with a subfolder install. The way it currently works, a profile is found by querying the "webfinger" URL for that user. For example, for my account here, my user slug is
julian
and the domain portion iscommunity.nodebb.org
, and so when query that domain's webfinger endpoint it will show a link to my user profile.That's how the handle is "proven" to exist. So if you wanted to support your site (which is on a subfolder), you'd have to add an nginx or apache rule to route the
.well-known/webfinger
requests to NodeBB.I'm sure it's been done too actually, I am not sure if the Vivaldi or Opera guys were the ones.
-
@julian If you need ideas, you can look at what Mastodon, Pleroma, and GoToSocial do:
https://docs-p.joinmastodon.org/admin/config/#federation
https://docs.pleroma.social/backend/configuration/how_to_serve_another_domain_for_webfinger/
https://docs.gotosocial.org/en/latest/getting_started/#domain-nameMy Mastodon instance, for example, has the local domain set to vivaldi.net, but the web domain is set to social.vivaldi.net, so my handle looks like @\[email protected] (or at least it does when viewed from remote servers that respect this configuration).
-
hi @julian , I think the first post is broken... I see the last and first post being the same... and I cannot see vivaldi_blue's response on the forum...
-
@crazycells yes, I noticed that this morning too, but can't take a look at it until later today
I think it's an easy fix.
-
@crazycells said in February Update on ActivityPub Development:
@julian no problem , I just wanted to bring it to your attention...
Okay, I think it is resolved now.
I wonder how quoted posts in NodeBB look in Mastodon
-
@AltCode my main concern would be people potentially thinking users on that domain represent the brand. Suppose it depends on a case by case basis!