ActivityPub Support: Phase 1 RFC

There are many instances of Discourse. I don’t know exactly but I have accounts on a few dozens. It’s impossible to keep track of everything and many times I come across topics in distinct but no so different communities discussing similar issues, that could well be shared across instances since some of the participants are repeating themselves across discussions. It would really help to be able to share such topics across instances without having to login several times, cross-reference topics and not have a fluid discussion with interested parties.

Having ActivityPub users treated as staged users the same way emails users foreign to a Discourse instance are treated seems to be a good compromise to start with.

An RSS feed would certainly help you track ongoing topics at a single place but would not bring anything different from the Discourse Hub app, nor would it allow you to participate.

@hellekin I don’t know about this. Maybe you’re right, maybe you aren’t.
There are lots of nightclubs, restaurants, supermarkets, softwares, etc. Some are even pretty close. Geographically and/or in term of what they offer. Should one have the view that it’s “stupid” different places offering the same thing are separated? And these places should be merged to only have a centralized one?

Now, here, it’s a bit more evolved as the communities would stay kind of separated, but they are linked. Remains the question if all communities are the “same”: It is the same rules, the same atmosphere, the same kind of people, etc? This may be what makes a community a “special place” worth (actively) participating on: The fact that it’s unique. It has a unique vibe, a unique kind of humor going on, etc. A unique IDENTITY. People being a huge aspect of this: Who goes here or there. What kind of person.

Maybe this is a view on DIVERSITY: Mixing up everything, and ending up with something the “same” everywhere, because it’s so mixed up.

On the other hand, we have LINKS and QUOTES. Nothing prevents anyone from linking, quoting and summarizing what happens somewhere else. And here, you can keep the identity of each place, and not render everything the “same”.

Anyway, this may be the core questions behind the ActivityPub principle itself, and the willingness to implement it with Discourse. Of course, if it’s only optional, anyone can do as he wishes. and options are generally a good thing, IMHO (I’m not really sure why a successful community would want its content to be shared outside, and people to be able to interact with it from the outside).

[That’s a little some “Demolition man” thing where there are only Taco Bell restaurants left, isn’t it?]

1 Like

I’m not sure how your view relates to my previous post. I did not say anything about merging communities, simply some common topics. And even then I only suggested user accounts could be the proxy…

And isn’t this, “merging” the offerings of different communities? You still “merge” some content, even if, as said in the previous message:

There seem to be a unwillingness to do it from the Discourse team, and an unclear advantages/use case on top of this. If you don’t see how my previous post relates to the subject, then ok. My apologies. forget about it.

Absolutely not. But I would like to read about them in my local newspaper, or - in a more specialized case - an Italian gastronomy guide for connaisseurs. The fact that things are not all the same, are what makes it worth subscribing to them. Back to the web and communities, linking an quoting are valuable of course. But they are another use case, different than sharing a topic between forums and viewing the thread in context, maybe participate directly.

You are right that in some cases you don’t want to mix identities and certainly not completely merge dispersed communities altogether. But you may selectively merge only those parts where it makes sense. Be it on a topic-by-topic basis, certain (sub)categories, tags or specific groups of people sharing content.

It is not really about ActivityPub either. The protocol is quite low-level, building on top of HTTP. You can build anything with it. Very often when mentioning ActivityPub, people automatically tend to think of microblogging (Mastodon) as that is the most popular application until now. If you consider this domain, everyone is sort of creating their own ‘unique community’ with it, defined by who they follow. This creates their personal timeline. Other than that they may have chosen to create their account on e.g. mastodon.technology and their server timeline loosely has the theme “technology” to it. But this domain does not really fit Discourse, of course. It is microblogging, not community forums after all.

Currently some microblogging applications are extending their domain with the concept of Groups. You might see this as a community concept that extends across the server boundary. So while I’m on mastodon.technology I might subscribe to the “spaghetti” group, and “climate change”. But it is still just microblogging → everything is compressed and flattened into my timelines.

What is a succesful community? What are its bounderies, what is inside and outside? These may be very clearly defined, and relate to identity and diversity. One thing they do not relate to per se, are specific server boundaries!

Though I went very broad in Community has no boundary, it is thinking without these artificial server boundaries I addressed (and how that may increase quality, quantity and activity of the community. I did not go into identity, which is a good point to also address). Thanks for responding there @Mevo, I’ll reply in due time.

5 Likes

Thanks @aschrijver , this is very helpful.
I take from the first paragraph the idea to “use it wisely”.
About the second paragraph, I was referring more to the idea of what it enables/does, than the protocol itself, when talking about “ActivityPub”. The “sharing/linking content” idea, or “freeing the content from servers boundaries”, like you talk about it.

The idea of some kind of shift of control/power is interesting: It would not really be the community owners who control anymore “their” users, “their” content (what they host, at least), what people have access to when coming to their place, how information is organized and grouped, etc. The users would be more in control and more free to pick what they want, from where they want, and make their “own menu”.

I can see how this may be appealing from the user’s POV, and how it may be a little scary/worrying from a community owner POV.

Taking a restaurant analogy, I agree I was probably getting a little too far with my point of merging several places, but I think your analogies are too soft: It’s more than what you describe, IMHO. It’s going to one restaurant and being able to order a dish from another place, made by the chef of that place. It may raise questions (which was a big part of my point) as to why the restaurant owner who pays well that chef, and maybe had troubles to attract him and retain him, would want to NOT have a clear reason for customers to come to HIS restaurant anymore. Your answer is kind of: It’s great from a customer POV. Yes, sure, I agree.

But anyway, you may be right on this, and the point I’m making looks quite like the fears of companies with open source in the past.

@angus got news from the NGI grant to support this feature development and the offer was rejected. We’ll try applying to another grant next year.

2 Likes

That would be pretty great.

2 Likes

Can someone summarize the current status (as of 11/22) of the thoughts around ActivityPub implementation for Discourse? After going through a number of related threads, my current picture is like this:

  • there was an attempt to get EU funding in 2019 for implementation work, but the application was withdrawn for some reasons
  • up to now, there is no code (plugin) which could be used for testing
  • Discourse.org staff/core team has no common position about the need for a “fediversed discourse”

Is this picture correct? I work with a larger political party in Germany and we could really need some kind of decentralized discourse where activity notifications are shared between instances. Therefore I am interested about the current status of these ideas …

5 Likes

Yes.

We use multiple Discourse instances to work on Discourse and users get centralized notifications via:

  • Web Push Notification (available on Android, Windows, Linux, MacOS)

  • DiscourseHub (available on iOS and Android for sites in our hosting)

  • Email (available everywhere)

Not to mention being able to subscribe to RSS feeds, get bookmarks synced to your calendar via .ics endpoints, etc.

Why would you need ActivityPub for that?

5 Likes

Yeah based on the OP, RSS feeds are the probably the best solution to having a universally-aggreggated feed of the internet. And with sites like rss.app and movements like openrss.org, you can pretty much get an RSS feed for any site you want to follow these days.

3 Likes

We are just in the middle of the discussion here and maybe I did not yet get all aspects of the previous discussion here.

If we switch from a centralized to a de-centralized setup with multiple Discourse instances (they must be hosted on premise in Europe, AWS is not an option), a “server to server” kind of activity messaging would allow users to log in only on one system and still get information about interesting activity from another one.

e-mail is “overcrowded” and we see a decline in coverage for information flowing through “standard newsletters”. ActivityPub (using the server-to-server API) would allow to collect info from different sources on one “preferred server”.

RSS feeds are indeed a possible solution, but this requires registration/authentication at different servers. And manual work with a different technology, most “non-tech” users are not familiar with that.

2 Likes

I would love to invite people in the fediverse to participate in my Discourse server in a way that is richer than manual oneboxing.

While I use an RSS feed (and, indeed, use it to track new content on multiple Discourse instances), an ActivityPub / ActivityStream outgoing-only plugin would meet people where they have been going in droves, and help increase the accessibility of information in Discourse forums.

I recognize that the discourse team fundamentally disagree with this, and that’s their prerogative. One of the huge strengths of Discourse is that, as real open source that’s actually built in public and not thrown over the wall, we don’t all have to agree. :relaxed:

3 Likes

Maybe the thoughts around ActivityPub in Discourse need a bit more maturing, both technical and strategically.

I hope that the current “Twitter diseaster” will force more people (especially those on the political level) to re-think about whats wrong with their own “digital sovereignity”. And, maybe, this also includes new chances for real open-source solutions in the area of public and community-based digital discussions …

4 Likes

So far we’ve been pushing for ActivityPub in Discourse and heard many voices trying to explain why they need ActivityPub… But we did not hear about the @Discourse team why they do not want to implement it. Each argument that was put forward I tried addressing with some plausible approach, but in the end there’s no clarity about why remote identifiers would change anything to the trust levels, given that remote accounts can still be considered staged locally, and limited as staged users are now.

There are multiple related threads. I wanted to highlight that @sam made clear that my characterization here that “the discourse team fundamentally disagree with this” was either wrong or outdated:

I would expect that the reason that CDCK aren’t applying their resources to doing this work is that few if any of their paying customers care about this, or at least prioritize it over other feature work. I suspect that there’s a lot more community interest than corporate interest in this work at this time and for the foreseeable future. If CDCK take on this work, the opportunity costs in not building other features that their customers are asking for could be significant. (I have no insider knowledge here.)

Given Sam’s comment linked to above, if a group of Discourse community developers care enough to build a plugin, I would expect CDCK to invest in cooperation with those developers to review and merge any core changes required to make that plugin effective. My experience with the small contributions I have made to Discourse is that they have prioritized effort to review and help with work that they would not have prioritized doing themselves. :heart:

7 Likes

Being simply a discourse user (hosting a minor instance) and a recent one at that, I don’t have anything concrete to offer in terms of how to approach this technically. But I noticed that wordpress via its plugin is becoming a major presence in the fediverse. As of Feb 2023 there are 750+ websites federating which is already higher than many dedicated federation platforms. So the potential is there to “magically” make all discourse communities (that desire so) part of something more integrated. The main caveat is that (most likely) federation protocols will evolve with more adoption, so this would be really a commitment for the related functionality to evolve along.

2 Likes

@SeriousFun01 read Federation support for Discourse - #87 by angus and following posts for an update here. :tada:

3 Likes