@infinite love ⴳ Sounds reasonable to me. I'm not sure how that's related to quoted posts (the topic of this thread), but I support the idea.
scott@authorship.studio
@scott@authorship.studio
Posts
-
Quoted posts -
Quoted posts@infinite love ⴳ If it's a post, I'll use ActivityPub or Nomad Protocol. For everything else, I'll just use an API or something like that. -
Quoted posts@infinite love ⴳ That can be anything you want to. -
Quoted posts@infinite love ⴳ We already have different types of messages. Notes, articles, likes, etc. ActivityPub can handle those and more. How it typically works is that platforms ignore types they don't understand, which is expected behavior.
For example, Hubzilla has events and RSVPs. Other platforms don't. So only Hubzilla displays the post as an event. Everyone else displays it as a note.
Or a project management system might manage tasks over ActivityPub, but that doesn't mean other platforms will support it.
Platforms that understand posts and followers will interoperate. Project management systems will interoperate. But you have to get creative to get both of those to work together. -
A core pillar was data sovereignty (you as a fediverse user can delete your post, the forum respects that).@Kichae Ideally, people should be notified that they are posting to a forum and not replying to a post on an individual channel, that way we can set some expectations in advance.
I am not sure how ActivityPub handles it, but Hubzilla somehow communicates with other Hubzilla instances that a particular channel is a forum. It's probably communicated in webfinger, or something like that.
Just having an icon, tag, or Bootstrap-style badge next to a channel saying "forum" would be helpful. -
Chats are now federating as limited-visibility posts on the fediverseIt would be nice if Direct Messages (DMs) or Private Messages (PMs) were treated like email and only sent to the people you are sending it to.
But generally, on most platforms, if you mention someone in the top level post, they are assumed to be on the recipient list. (Note, some platforms, like Mastodon, treat every post as if it were a top level post.)
Hubzilla has more privacy features, which prevents your messages from leaking to others, but part of that is because we use the Zot protocol between Hubzilla instances, and can set privacy at the thread level (i.e. the permissions of the top level post is the permissions for the entire thread).
When the same conversation is sent via ActivityPub, we lose a lot of control over the privacy of that post. We can and do address it to specific recipients, but other platforms don't have the same types of access controls, which means we can't enforce the access control list for that conversation on those platforms. -
Quoted postsFor reference, Hubzilla renders both the same way.
If you "share" someone's post (what Mastodon users call a "quote post") is basically just:@channel@example.com
[quote]Whatever they said.[/quote]
which gets translated to:@channel@example.com
<blockquote>Whatever they said.</blockquote>
If someone quotes someone's post in a forum, it is the same exact thing.
And users can also add their own blockquotes to posts by using the BBCode[quote]
tags too.
It's all blockquotes.
Note: This posts uses<code>
blocks. This may not render properly on all platforms. -
NodeBB v4.0.0 BetaI totally understand the issue with the number of hours in the day. I have a lot of projects going too.
I am working on creating an ecosystem of websites that all use Magic Signon (OpenWebAuth). Social media websites, forum communities, productivity apps, online courses, etc. You can use the same social identity to log into all of them.
The more projects that support it, the more people will use it.
A forum project like yours would make a great addition. -
NodeBB v4.0.0 BetaSounds great. Thank you for your work.
Not sure if you have plans on this, but implementation of FEP 61cf (Federated Single Signon) would be a game changer for forums.
With ActivityPub, people can follow remotely and get notifications. With OpenWebAuth, they can log in and participate with their existing Social Identity. It also lets them interact with posts that didn't show up in their inbox. -
Dynamic generation of category iconsInteresting. I received a repeat notification from @ActivityPub on my last comment. I suppose that is how you are acknowledging that my post was sent to people following that category. I like it. -
Dynamic generation of category iconsThanks for adding these. I was wondering how I could follow your forum and not just specific people. -
Pre-Alpha ActivityPub-related bug reports@crazycells Search engines would not see them. ActivityPub basically serves as a notification mechanism, except it delivers the entire post to the follower's private inbox and they can reply back without visiting the forum. Forum posts and comments do not get republished publicly. -
Pre-Alpha ActivityPub-related bug reports@Emelia@julian
I don't think there really will be a duplicate content issue. Typically, copies of posts are delivered to people's private inbox, not reposted publicly on other websites. Unless someone is operating a relay or reposting other people's posts, all of the copies of the post that are sent over ActivityPub should be private. -
Pre-Alpha ActivityPub-related bug reports@julianI often feel like I am pushing against the "ActivityPub zeitgeist" of sorts, because I am plainly advocating for a thoughtfully designed pull-based mechanism for backfill purposes, but at least among those I've talked to, I'm not hearing any pushback.
Hubzilla and Friendica were one of the first platforms to implement forums (or more accurately "discussion groups" although the only difference is the UI). The biggest challenge at the time was that other platforms didn't (and most still don't) understand groups and group discussions.
When developing, they basically used the following tactics:
1. Implement full discussion group features within Hubzilla, and Friendica, respectively. People who use those platforms get the full experience and full feature set.
2. For platforms that don't have the same features, they implemented what they could. If other platforms don't support certain things, that is not our fault. But we still designed it so that it works with their platforms, mostly using workarounds. They could at least participate, even if they didn't get the full experience.
I think we need to take the same approach. We design it so that thread-based platforms (forums, discussion groups, Facebook-style social media, etc.) all can interact with a full set of features. For social media platforms that don't support threaded conversations, we just do "best effort" accepting the fact that their users will have a degraded experience because their software doesn't support the same features.
So, I would recommend that we create some method of backfilling a thread from the authoritative source (using a pull mechanism), and we advertise that this functionality is available via webfinger and as part of the meta data of the posts themselves. Platforms that don't know what that is will ignore it. Platforms that know what that is will use it.
ActivityPub seems to be a push only protocol, so we may need to make our own mini-pull protocol for this purpose. You can look at the Zot protocol that is part of Hubzilla as an example. I think the Nomad protocol that is part of Streams also does the same thing. Not sure about Friendica. But there is working code that already pulls the entire thread. -
Pre-Alpha ActivityPub-related bug reports@julian Another thing that Hubzilla does, mostly to remain compatible with platforms that don't understand forums, is have the forum redistribute all of the posts in the thread.
So, when you comment on a post, your app only sends it to the Hubzilla forum, and then the forum looks and sees who is following that thread or who is a member of the forum, and redistributes a copy of the post to everyone who is supposed to get it.
So as long as you are following that thread or are a member of that forum, you get a copy of all of the new messages. (And if you are using Zot protocol, it fetches all of the recent posts when you first follow the forum, which gives you complete threads for recent conversations.)
And one reason why I may be missing some of the posts in this thread is that I am following you (and some others) and not the forum itself.
How do I follow this forum or thread specifically? -
Pre-Alpha ActivityPub-related bug reports@julian Mastodon and other platforms don't understand the concept of threaded conversations, which is why they haven't implemented something like that.
I am not sure how to implement this in ActivityPub, but in the Zot protocol, Hubzilla actually fetches the entire thread from the authoritative source.
So we don't depend on the entire thread being sent to us. We ask for a copy of all of the posts in the thread from the server with the top level post, which arguably is the authoritative version of the thread.
Other servers pushing messages to us is a great way to get notified of new posts, but pulling messages would yield the full conversation.
I am not sure if there is a way to pull in ActivityPub. -
Slightly better titles from fediverse topics@julian...not all fediverse content contains titles. Specifically, Mastodon posts do not require or even have a space to put a title in.
Hubzilla dealt with that issue by putting the title of the post in the post itself, so people on Mastodon and other platforms could see the title. So the title is transmitted in both thetitle
field, and in thebody
field. It looks redundant, but I see what they did it that way, especially since Mastodon is so dominant in the space. -
Signalling "open in app" behaviour for AP content@julianFor example, let's say I link out to Evan's profile here. If NodeBB knew that this link had an alternative AP endpoint, then we could redirect the user instead to the local representation of his profile
Wouldn't Evan's AP endpoint be the same as his HTML endpoint?
Most platforms are going to send you to the authoritative profile, which is the one at the user's server.
And if you wanted to redirect a link to a local profile instead of his official profile, you don't need an endpoint to do that. You could simply parse the post and swap out the URL, since you should have data about the user in your database anyway from when you first detected the user.
Maybe I am misunderstanding the use case here, but I am not sure why a platform would not direct you to its own platform for content and profiles. -
Signalling "open in app" behaviour for AP contentWhen you work on this, consider that there are some situations where the user may want or need to go to the official profile and channel. Older content does not get distributed via ActivityPub, so you have to go to the source (originating website) to see everything.
And I have rarely seen an entire conversation be delivered via ActivityPub. The Zot protocol downloads the whole conversation, but not ActivityPub. With ActivityPub, there are always holes and you have to go to the original thread on the original website to see the whole thing. Maybe we can fix that by adding the ability to download entire threads, not just new posts, but right now seeing the whole conversation over ActivityPub is hit or miss.
Also, many platforms have profile information that is not transmitted over ActivityPub and you would need to visit their real profile to get all of the details.
Plus, in my opinion, it is poor form to create a local profile for someone on another platform and fail to acknowledge that the user is using another platform. At the very least, there should be a link back to their official profile and/or channel (i.e. their posts).
Until ActivityPub can reliably transmit the entire thread, you will need to link back to the original website. -
Pre-Alpha ActivityPub-related bug reportsFor a threaded conversation, if I am following someone who created a top level post, the expected behavior is that you get to see the whole thread. For some reason, I am not getting all of the replies to the thread. I have to go to the forum to view all of them, and since they never reached my app, I can't reply to them via ActivityPub.