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 „Gefällt mir“

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 „Gefällt mir“

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 hat Neuigkeiten vom NGI-Zuschuss zur Unterstützung dieser Feature-Entwicklung erhalten, und das Angebot wurde abgelehnt. Wir werden nächstes Jahr versuchen, einen anderen Zuschuss zu beantragen.

2 „Gefällt mir“

Das wäre ziemlich großartig.

2 „Gefällt mir“

Könnte jemand den aktuellen Stand (Stand 22.11.) der Überlegungen zur Implementierung von ActivityPub für Discourse zusammenfassen? Nachdem ich eine Reihe von verwandten Threads durchgegangen bin, sieht mein aktuelles Bild wie folgt aus:

  • Es gab 2019 einen Versuch, EU-Fördermittel für Implementierungsarbeiten zu erhalten, aber der Antrag wurde aus bestimmten Gründen zurückgezogen
  • Bis jetzt gibt es keinen Code (Plugin), der zum Testen verwendet werden könnte
  • Die Mitarbeiter/das Kernteam von Discourse.org haben keine gemeinsame Position zur Notwendigkeit eines „fediversed discourse“

Ist dieses Bild korrekt? Ich arbeite mit einer größeren politischen Partei in Deutschland zusammen und wir könnten wirklich eine Art dezentralen Diskurs gebrauchen, bei dem Aktivitätsbenachrichtigungen zwischen Instanzen ausgetauscht werden. Daher bin ich an dem aktuellen Stand dieser Ideen interessiert …

5 „Gefällt mir“

Ja.

Wir verwenden mehrere Discourse-Instanzen, um an Discourse zu arbeiten, und Benutzer erhalten zentralisierte Benachrichtigungen über:

  • Web-Push-Benachrichtigungen (verfügbar unter Android, Windows, Linux, MacOS)
  • DiscourseHub (verfügbar unter iOS und Android für Websites in unserem Hosting)
  • E-Mail (überall verfügbar)

Ganz zu schweigen von der Möglichkeit, RSS-Feeds zu abonnieren, Lesezeichen über .ics-Endpunkte mit Ihrem Kalender zu synchronisieren usw.

Warum würden Sie dafür ActivityPub benötigen?

5 „Gefällt mir“

Ja, basierend auf dem OP sind RSS-Feeds wahrscheinlich die beste Lösung für einen universell aggregierten Feed des Internets. Und mit Seiten wie rss.app und Bewegungen wie openrss.org kann man heutzutage so ziemlich für jede Seite, der man folgen möchte, einen RSS-Feed bekommen.

3 „Gefällt mir“

Wir sind hier gerade mitten in der Diskussion und vielleicht habe ich noch nicht alle Aspekte der vorherigen Diskussion hier erfasst.

Wenn wir von einer zentralisierten zu einer dezentralisierten Einrichtung mit mehreren Discourse-Instanzen wechseln (diese müssen On-Premise in Europa gehostet werden, AWS ist keine Option), würde eine Art von Aktivitätsnachrichten “Server-zu-Server” es Benutzern ermöglichen, sich nur auf einem System anzumelden und trotzdem Informationen über interessante Aktivitäten von einem anderen System zu erhalten.

E-Mail ist “überfüllt” und wir sehen einen Rückgang der Abdeckung für Informationen, die über “Standard-Newsletter” fließen. ActivityPub (über die Server-zu-Server-API) würde es ermöglichen, Informationen aus verschiedenen Quellen auf einem “bevorzugten Server” zu sammeln.

RSS-Feeds sind in der Tat eine mögliche Lösung, aber dies erfordert Registrierung/Authentifizierung auf verschiedenen Servern. Und manuelle Arbeit mit einer anderen Technologie, mit der die meisten “Nicht-Techniker” nicht vertraut sind.

2 „Gefällt mir“

Ich würde gerne Leute aus dem Fediverse einladen, an meinem Discourse-Server teilzunehmen, und zwar auf eine reichhaltigere Weise als durch manuelles Oneboxing.

Obwohl ich einen RSS-Feed verwende (und ihn tatsächlich zur Verfolgung neuer Inhalte auf mehreren Discourse-Instanzen nutze), würde ein reines ActivityPub / ActivityStream-Plugin die Leute dort treffen, wo sie in Scharen hingehen, und dazu beitragen, die Zugänglichkeit von Informationen in Discourse-Foren zu erhöhen.

Ich erkenne an, dass das Discourse-Team dem grundsätzlich widerspricht, und das ist ihr gutes Recht. Eine der großen Stärken von Discourse ist, dass wir uns als echte Open-Source-Software, die tatsächlich öffentlich entwickelt wird und nicht über den Zaun geworfen wird, nicht alle einig sein müssen. :smiling_face:

3 „Gefällt mir“

Vielleicht müssen die Gedanken rund um ActivityPub in Discourse noch etwas reifen, sowohl technisch als auch strategisch.

Ich hoffe, dass die aktuelle „Twitter-Katastrophe“ mehr Menschen (insbesondere auf politischer Ebene) dazu zwingt, darüber nachzudenken, was mit ihrer eigenen „digitalen Souveränität“ falsch läuft. Und vielleicht beinhaltet dies auch neue Chancen für echte Open-Source-Lösungen im Bereich der öffentlichen und gemeinschaftsbasierten digitalen Diskussionen …

3 „Gefällt mir“

Bisher haben wir uns für ActivityPub in Discourse eingesetzt und viele Stimmen gehört, die versuchten zu erklären, warum sie ActivityPub brauchen… Aber wir haben nichts vom @Discourse-Team gehört, warum sie es nicht implementieren wollen. Jeden vorgebrachten Argument habe ich mit einem plausiblen Ansatz zu adressieren versucht, aber am Ende gibt es keine Klarheit darüber, warum sich Remote-Identifikatoren auf die Vertrauensstufen auswirken würden, da Remote-Konten lokal immer noch als gestaged betrachtet und wie gestaged Benutzer eingeschränkt werden können.

Es gibt mehrere zusammenhängende Threads. Ich wollte hervorheben, dass @sam klargestellt hat, dass meine Charakterisierung hier, dass „das Diskurs-Team dem grundsätzlich widerspricht“, falsch oder veraltet war:

Ich würde erwarten, dass der Grund, warum CDCK seine Ressourcen nicht für diese Arbeit einsetzt, darin liegt, dass sich nur wenige oder gar keine ihrer zahlenden Kunden darum kümmern oder es zumindest gegenüber anderen Funktionsarbeiten priorisieren. Ich vermute, dass es zu diesem Zeitpunkt und auf absehbare Zeit ein weitaus größeres Interesse der Community als des Unternehmens an dieser Arbeit gibt. Wenn CDCK diese Arbeit übernimmt, könnten die Opportunitätskosten für die Nichtentwicklung anderer Funktionen, nach denen ihre Kunden fragen, erheblich sein. (Ich habe hier keine Insiderkenntnisse.)

Angesichts von Sams Kommentar, der oben verlinkt ist, würde ich erwarten, dass CDCK in die Zusammenarbeit mit diesen Entwicklern investiert, um alle erforderlichen Kernänderungen zu überprüfen und zusammenzuführen, damit dieses Plugin effektiv ist, wenn eine Gruppe von Discourse-Community-Entwicklern sich genug darum kümmert, ein Plugin zu entwickeln. Meine Erfahrung mit den kleinen Beiträgen, die ich zu Discourse geleistet habe, ist, dass sie sich bemüht haben, Arbeiten zu überprüfen und zu unterstützen, die sie selbst nicht priorisiert hätten. :heart:

7 „Gefällt mir“

Als einfacher Discourse-Benutzer (der eine kleine Instanz hostet) und noch dazu als neuer Benutzer habe ich nichts Konkretes anzubieten, wie man dies technisch angehen könnte. Aber ich habe bemerkt, dass WordPress über sein Plugin eine bedeutende Präsenz im Fediverse aufbaut. Im Februar 2023 gibt es bereits über 750 Websites, die föderieren, was mehr ist als bei vielen dedizierten Föderationsplattformen. Das Potenzial ist also vorhanden, um alle Discourse-Communities (die dies wünschen) “magisch” zu einem stärker integrierten Ganzen zu machen. Die Hauptnebenbedingung ist, dass sich die Föderationsprotokolle (höchstwahrscheinlich) mit zunehmender Akzeptanz weiterentwickeln werden, sodass dies wirklich eine Verpflichtung wäre, damit die zugehörige Funktionalität Schritt hält.

2 „Gefällt mir“

@SeriousFun01 liesen Sie Federation support for Discourse - #87 by angus und die folgenden Beiträge für ein Update hier. :tada:

3 „Gefällt mir“