Keine Angst, es geht nicht um Avatare ohne Beine!

Threads has entered the fediverse!!!

TL;DR: Ich freue mich, dass Meta diesen Schritt geht und ich zukünftig vielleicht all meine Freunde im Fediverse Social Web treffen kann, ohne dafür einen Threads, Facebook oder Instagram Account zu benötigen, ich respektiere aber auch jeden, der anderer Meinung ist und das Netzwerk (aus guten und nachvollziehbaren Gründen) blockiert.

Meta experimentiert ja schon eine ganze Weile mit ActivityPub, aber jetzt können wirklich alle, die:

das Teilen im Fediverse auf Threads aktivieren!

If they do, they’ll be able to publish posts on Threads that will be viewable on other ActivityPub-compliant servers. Threads users will also be able to see aggregated like counts on their posts from other fediverse servers directly from the Threads app. If people on other fediverse servers follow federated Threads profiles they’ll be able to see, reply to, and repost Threads posts (if their server allows it).

Das ist sicherlich noch alles sehr limitiert und klingt auch immer noch experimentell, aber es ist raus aus der „beta“ Phase und ein erstes Zeichen, dass Meta es mit ActivityPub doch ernst meinen könnte.

Ich bin wirklich kein großer Fan von Meta/Facebook und habe den „Verein“ in der Vergangenheit heftig kritisiert, aber ich glaube diese Entwicklung ist wichtig und ich freue mich dass Meta sie (bisher noch) weiter verfolgt!

Die Entwicklung ist wichtig, da ohne Meta das Fediverse einfach nur das Fediverse bleibt und wir uns die Diskussion, ob „Social Web“ nicht passender wäre, sparen können. Ohne Facebook (et al.) ist das Fediverse nur eine Nische, zwar eine offene und dezentrale Nische, aber eben nur eine Nische.

Ich weine immer noch den Anfängen der Web 2.0 Zeit nach, in der Blogs und soziale Netzwerke sich ergänzt und nicht untereinander konkurriert haben. Das bezieht sich aber nicht ausschließlich auf Walled Gardens wie Facebook und Twitter, auch Netzwerke wie Diaspora, die im Grunde zwar dezentral aufgebaut sind, aber nie den Anspruch erhoben auch mit anderen Netzwerken zu „föderieren“, waren bzw. sind das Problem.

Was ich vor 12 Jahren über Diaspora geschrieben habe, passt (glaube ich) immer noch sehr gut:

Wenn die großen Netzwerke wie Facebook, Twitter und Google+ sich nicht auf ein einheitliches Protokoll einigen, wird es wohl nichts mit der „dezentralen“ Idee! Ich möchte mich in Zukunft für eine Community entscheiden die meinen Interessen und Wertvorstellungen entspricht und nicht von der Mehrheit meiner Freunde abhängig sein. Wenn alle meine Freunde aber bei Facebook sind, bleib ich auch auf einem offenen und dezentralen Diaspora alleine!

Dezentrale „Walled Gardens“

Beide Seiten müssen kooperieren, deshalb finde ich es wichtig, dass sich das Fediverse auch für Threads öffnet!

Da aber genau diese Haltung die Fediverse-Community spaltet, möchte ich das nicht so stehen lassen.

Evan Prodromou, benennt die zwei entstandenen Lager in einem Blog-Post „Big Fedi versus Small Fedi“ und ich würde mich (aus den oben genannten Gründen und auch wenn ich den Namen unpassend finde) eher dem „Big Fedi“ Lager zuordnen, schon alleine wegen dem ersten Punkt:

The fediverse should be big. Real big. Like, everyone on the planet should have an account on the fediverse. It will make the internet better and the world better.

Das heißt aber weder, dass ich allen Punkten von „Big Fedi“ zustimme, noch dass ich alle Argumente aus dem „Small Fedi“ Abschnitt ablehne… im Gegenteil!

Gleich den ersten Punkt der „Small Fedi“ Liste, sehe ich als essentiell wichtig für das weitere Bestehen und die Zukunft des Fediverse und bin der Meinung, dass er beiden Lagern zugeordnet werden sollte muss:

The fediverse should be safe. Safe from harassment, safe from privacy violations.

Für viele ist Threads per se eine Verletzung dieser Aussage und die fedipact Seite empfiehlt, das Meta-Netzwerk aus genau diesen Gründen zu blocken:

tl;dr

  1. they won’t moderate effectively, there is precedent with facebook being a toxic cesspit of hate
  2. they have a long track record of pure evil and we have no reason to give them the benefit of the doubt
  3. to protect the existing communities of marginalized people on the fediverse, many of whom rely on it to survive
https://fedipact.online/why

Das sind alles valide Argumente, die Schlussfolgerung ist in meinen Augen aber die Falsche. Mit Spam und Abuse hat das Fediverse auch jetzt schon und gänzlich ohne das zutun von Threads zu kämpfen. Wie toxisch das Fediverse sein kann, zeigt der Fall von „Content Nation“ vom März diesen Jahres mehr als deutlich.

Aside from simply blocking the domain and moving on, community members decided to have a little bit of extra fun, attempting to “make the crawler crash“, send angry emails to the service operator, and more. After some study of how the site worked, one person had the malicious idea to send a remote post containing child pornography to the site, before getting someone else to report Content Nation for Child Sexual Abuse Material.

Content Nation Backlash Highlights Mastodon’s Toxicity

Threads zu blocken, ist nicht die alleinige Lösung für das stetig wachsende „Trust & Safety“ Problem. Neben simplen Block-Listen, brauchen wir zukünftig bessere Strategien um diesem Problemen Herr zu werden. Wir brauchen mehr Initiativen wie IFTAS und Services, die sich ähnlich wie mit E-Mail- oder Kommentar-Spam, zukünftig auch mit Social Media „Spam“ befassen.

Andernfalls betreiben wir einfach nur „Security by obscurity„.


Aber eine Sache noch zum Schluss: In dem Abschnitt in dem Meta ActivityPub und das Fediverse erklärt, wird ausgerechnet WordPress als das einzige Beispiel neben Mastodon erwähnt.

The protocol plays a key role in allowing Threads to be interoperable with other servers that also use it. Eventually, people on Threads will be able to interact with people on platforms like Mastodon and WordPress without having to sign up for accounts on those apps.

What is ActivityPub?

… 😍

Ich war am Wochenende auf dem CloudFest Hackathon und hatte zum zweiten Mal die Change ein Projekt zu betreuen. Die Idee zu „Enable Mastodon Apps“ stammt von @alex und ich freue mich sehr, dass er mir sein „Baby“ für den Hackathon anvertraut hat!

Hier ist unser Pitch:

Hier klicken, um den Inhalt von YouTube anzuzeigen.
Erfahre mehr in der Datenschutzerklärung von YouTube.

Ich bin begeistert von der Idee!

Das Nachbauen der Mastodon-API stellt eine relativ einfache Lösung für das aktuelle ‚App-Problem‘ von WordPress dar. Die gängigen Apps zielen darauf ab, den Nutzern das traditionelle Bloggen zu ermöglichen. Allerdings haben soziale Medien im Allgemeinen und Twitter im Speziellen, die Art und Weise wie wir im Internet kommunizieren, maßgeblich verändert. Es geht nicht mehr um lange Artikel, sondern um kurze Nachrichten ohne Titel mit dem Fokus auf Bilder oder Videos.

Ein weiterer Nebeneffekt sind die sozialen Interaktionen wie Kommentieren (die WordPress über die letzten Jahre spärlich vernachlässigt hat), Liken, Boosten und Bookmarken (die WordPress nativ gar nicht unterstützt), welche die Mastodon Apps von Haus aus schon mit bringen.

„Enable Mastodon Apps“ stellt aber nur die Endpunkte für diese Interaktionen bereit, um sie nutzen zu können, braucht es weitere Plugins, wie z.B. Friends und/oder ActivityPub. Mehr dazu hier: Friends with ActivityPub – Deine nachhaltige Identität im Web.

Das Projekt hat mich sehr an die frühen Twitter-Jahre erinnert. Die Twitter-API galt lange als der de-facto Standard für Micro-blogging und Automattic/@photomatt hat damals schon die Vorteile für sich erkannt und die API für WordPress.com nach gebaut:

Of course one of the coolest things about Twitter right now is the client applications, particularly the mobile/iPhone ones. I use Tweetie 2 on my iPhone every day. Wouldn’t it be cool if you could get all your blog subscriptions and post to your WordPress.com blog from apps like Tweetie? Well here’s an early Christmas present…

We’ve enabled posting to and reading of WordPress.com blogs via the Twitter API. Any app that allows you to set a custom API URL will work.

Post and Read via Twitter API

Hackathon

Wir waren zwar nur 4 Personen, aber ich sag nur „Qualität statt Quantität“!

Vielen Dank @Drivingralle, @matze und @obenland, es war super produktiv und hat großen Spaß gemacht 🙂

Von links nach rechts: Ralf Wiechers, ich, Matthias Kittsteiner und Konstantin Obenland

Was wir erreicht haben:

  • Die meisten Mastodon-API-Endpunkte wurden implementiert.
  • „Hooks“ und „Actions“ für den internen Gebrauch.
  • Dokumentation aller Hooks.
  • Grundlegende Beispielimplementierungen in ActivityPub und im Friends Plugin.
  • Testen von zusätzlichen Clients.

Und hier ein paar Statistiken von den zweieinhalb Tagen:

  • 3 new contributors to the plugin
  • 4,101 lines added
  • 911 lines removed
  • 213 commits
  • 34 files changed
  • 25 PRs merged
  • 7 PRs almost merged
  • 0 Social Media posts

Und hier der Pull Request in seiner ganzen Pracht: Collection of changes from the CloudFest Hackathon

Vielen Dank auch an @bart und das Team von Mammoth, die uns im Vorfeld unterstützt haben. Mammoth funktioniert jetzt wunderbar mit WordPress und Alex und ich hatten einen Einblick in die App-Entwicklung und deren Eigenheiten 🙂

Hier ein paar Bilder:

Seit letzter Woche braucht man keinen Invite-Code mehr um sich bei Bluesky anzumelden, die wesentlich spannendere Info steht aber, wie beiläufig erwähnt, im letzten Abschnitt:

This month, we’ll be rolling out an experimental early version of “federation,” or the feature that makes the network so open and customizable. On Bluesky, you’ll have the freedom to choose (and the right to leave) instead of being held to the whims of private companies or black box algorithms. And wherever you go, your friends and relationships can go with you.

https://bsky.social/about/blog/02-06-2024-join-bluesky

Ich bin gespannt wie Bluesky federation umsetzen wird. Auf mich wirkt das ATProtocol immer noch viel zu kompliziert und „overengineered“, aber vielleicht ist das ja auch gerade der Vorteil gegenüber ActivityPub.

Ich hatte vorgestern einen kleinen Plausch mit @deadsuperhero für den Decentered Podcast, in wir unter anderem auch über die Schwierigkeiten bei der Implementierung von ActivityPub sprachen. Da WordPress in vielen verschiedenen Umgebungen laufen muss und sich die Konfiguration des Webservers, die PHP Version, das Caching, die Interferenz mit anderen Plugins und andere spezial Fälle nicht seht gut abschätzen lassen, ist es sehr schwer komplexere Funktionalitäten umzusetzen.

Ein Beispiel: Im Gegensatz zu OStatus, wo die Distribution von neuen Inhalten über PubSubHubbub (jetzt WebSub) geregelt wurde, ist bei ActivityPub der Service selbst dafür verantwortlich. Ein direktes Verteilen der Inhalte, direkt nach dem Veröffentlichen, würde bei großen Follower zahlen, den Prozess unnötig in die Länge ziehen, oder könnte sogar zu einem Fehler oder einem kompletten Abbruch führen. Um dem (so gut es geht) entgegen zu wirken, wird der Prozess asynchron über WP_Cron abgearbeitet. Leider ist aber auch das keine Garantie für einen fehlerfreien Ablauf (Siehe Ende des vorherigen Absatzes).

Lange Rede kurzer Sinn: Abhängig davon wie simpel ein Personal Data Server kurz PDS aufgebaut ist, könnte Bluesky vielleicht doch interessanter sein als ich ursprünglich angenommen habe.

Ich muss mich wohl mal mit @snarfed.org über seine Bluesky Implementierung unterhalten.

Ich bin gespannt!

Das Logo und der Wapuu von dem 20 Jahre WordPress Projekt

WordPress wurde 20 Jahre alt! 20 Jahre!

Vor etwas mehr als 20 Jahren bin ich über Brett Taylors wunderbar nerdiges Blog gestolpert: webfroot.co.nz

Am 04. April 2002 schreibt Brett: „News script is powered by b2, allowing for an RSS XML, better archive system, and improved comments system too.“

Das war Inspiration genug um einen Monat später mit meinem eigenen kleinen b2 Blog an den Start zu gehen.

Mittlerweile begleitet mich das kleine stückchen PHP-Code fast mein halbes Leben und ich hätte nie daran gedacht, dass ich mit meinem Hobby-Projekt irgendwann mein Geld verdienen würde!

Happy Birthday WordPress!

„The early years“

Zum 15. Jubiläum habe ich angefangen meine „WordPress Origin Story“ zu dokumentieren. Der Vollständigkeit halber hier also die folgenden 5 Jahre 😉

2019

2019 stand im Zeichen des ActivityPub Plugins. Hätte ich damals gewusst… 😉

2020

Während meinen 7++ Jahren bei IONOS hatte ich nebenher immer mal wieder mit WordPress zu tun. 2020 bekam ich aber die Möglichkeit, mit einem kleinen Team zusammen, das WordPress Hosting neu/mit zu gestalten. Aus diesem kleinen dreiköpfigen WordPress-Team wurde in den folgenden drei Jahren ein großartiges Haufen von 15+ Personen (inklusive Support, PO, PM, …).

Neben dem daily business haben wir IONOS in dieser Zeit ein kleines bisschen näher an die Community „geschubst“ (zumindest rede ich mir das ein 😉 ). Wir haben einen GitHub Account gestartet, den Entwicklern Zeit für die Five for the Future Initiative frei geräumt und IONOS wurde Teil der (Make) Hosting Community.

In diesem Zuge habe ich mich auch persönlich engagiert und dafür im Juni das Hosting Team Badge „verliehen“ bekommen.

2021

Mein aktivstes Jahr beim Pluginkollektiv. Ich mag die Idee und schätze die Plugins sehr! Ich hoffe ich finde in Zukunft wieder etwas mehr Zeit für das Kollektiv, immerhin arbeite ich ja jetzt hauptberuflich an ActivityPub & Co. und brauche deshalb wieder ein neues Hobbie/Freizeitprojekt 😉

2022

Im März fand der CloudFest Hackathon im Europa-Park statt und ich hatte die Chance, ein Thema zu betreuen. Drei Tage WordPress, IndieWeb und Webmentions <3

2023

…und meine große Klappe auf Twitter, hat dafür gesorgt, dass ich seit diesem Jahr einen neuen Job habe.

Seit April darf ich mich from 9 to 5 mit dem „Open Web“ beschäftigen und bekomme dafür auch noch Geld!

Vielen Dank Matt und vielen Dank Automattic!

…dazu aber später nochmal mehr 🙂

Ich bin gespannt was dieses Jahr noch mit sich bringt und wie die Zukunft von WordPress aussieht.

Wenn es nach mir ginge, dann würde daraus ein „open, portable, interoperable, small, social, synaptic, semantic, structured, distributed, (re-)decentralized, independent, microformatted and federated social“ WordPress 😉

Ein Screenshot von meinem identi.ca Account von 2009

Gestern vor 15 Jahren hat Evan seinen ersten Post ins Fediverse gesendet:

Fifteen years ago tomorrow I published the first post on the fediverse.

https://web.archive.org/web/20080618164355/http://identi.ca/notice/1

It’s still visible on Identi.ca today, although the URL format changed a few years ago, and the redirect plugin stopped working a few years after that.

https://identi.ca/evan/note/Y0QwGyc1QYilqqawkDrQlg

Thanks to everyone who made identi.ca a great place to be, and thanks to everyone who’s expanded the fediverse since then.

Someday soon-ish I’d like to have identi.ca working with ActivityPub. When I get the time for it!

https://cosocial.ca/@evan/110385636249899888

Vor 15 Jahren!!!

Erst laconi.ca/identi.ca dann status.net und jetzt gnu.social.

Von OpenMicroBlogging über OStatus zu ActivityPub.

Es ist faszinierend wie lange sich die Idee gehalten hat und das unabhängig von der Platform und dem Protocol!

Laut dem Screenshot von meinem Profil, bin ich auch schon seit Juli 2008 dabei.

Happy Birthday und mal schauen wie das Fediverse in 15 Jahren aussieht 😉 !

2022 war ein extrem spannendes Jahr! Ein Rückblick!

CloudFest Hackathon

Im März hatte ich die Chance ein Thema für den CloudFest Hackathon zu leiten/betreuen (Danke an Carole und Alain). Auch wenn das Projekt anders lief als ich das insgeheim geplant hatte, hab ich sehr viel über UX gelernt und großartigen Input bekommen, den ich leider noch nicht komplett umsetzen konnte.

WP Sofa

Robert Windisch hat, im Rahmen des Hackathon, Lucas Radke und mich auf das WP Sofa eingeladen und wir haben ein bisschen über die „WordPress Hosting Communtiy“ gesprochen.

In der gleichen Folge erklärt Robert übrigens auch noch das „Hippie Zeug“ an dem wir an den drei Tagen gearbeitet haben 😉

20 Jahre bloggen

Letztes Jahr, vor 20 Jahren, habe ich mit dem Bloggen angefangen! Das heißt ich schreibe jetzt fast mein halbes Leben lang Dinge in’s Internet!

neunetzcast

2022 kamen leider nur drei neunetzcast Folgen zustande, dafür haben wir (aus meiner Sicht) zwei extrem spannende Ausgaben zu Mastodon, ActivityPub und dem Fediverse gemacht.

Eine der Zentralen Fragen des Podcasts: Warum Walled Gardens wie Facebook, Twitter oder TikTok immer noch den Markt der sozialen Netzwerke dominieren, während z.B. im IOT Bereich massiv am Thema Standards und Interoperabilität gearbeitet wird.

These: Der Schmerz ist einfach noch nicht groß genug!

…und als hätte Elon Musk unseren Podcast gehört, hat er promt für den nötigen Schmerz gesorg und viele Twitter-User in die Arme von Mastodon getrieben, was vielleicht der letzte Tropfen war, den das Fediverse Fass gebraucht hat!

Außerdem hat sich ein alter Podcast-Freund zu uns gesellt, mit dem ich seit Jahren nicht mehr gesprochen hatte! Es hat großen Spaß gemacht, Carsten und Marcel und ich freue mich auf nächstes Jahr!

ActivityPub für WordPress

Dank Elon Musk haben sich aber auch die Download-Zahlen von meinem ActivityPub (WordPress) Plugin und meine Follower auf Mastodon mindestens verzehnfacht! Das hat mich beflügelt wieder aktiver am Plugin zu arbeiten und es kamen ein paar großartige Änderungen dabei rum. Alex Kirk hat beispielsweise sein friends Plugin so angepasst, dass man auch Freunde über ActivityPub abonnieren kann.

Um Menschen auf Mastodon oder ähnlichen Plattformen über dein eigenes WordPress zu folgen, kannst du das Friends-Plugin für WordPress benutzen, das über das Plugin Beiträge abruft, in deinem eigenen WordPress anzeigt und es so zu einer eigenen Fediverse-Instanz macht.

Außerdem hat Alex mich (auch durch sein friends Plugin) zu einem neuen Onboarding Screen inspiriert.

Es stehen aber noch weitere großartige Features in den Startlöchern (wie z.B. DjangosFederated Comments“ Vorschlag) die aber noch etwas angepasst werden müssen.

Danke an Elon, Django und Alex!

WWSIV

Ich war im November (2022) zu Gast beim „Wo wir sind ist vorne„-Podcast und durfte über alles reden, worüber ich hier auch schreibe 🙂

Indie Web, Open Web, Websemantics, Microformats, Open Graph, Schema.org!“

Mit unserem Gast Matthias Pfefferle verschaffen wir uns einen Überblick über den aktuellen Stand der Websemantics und wie sie dazu beitragen das Web besser zu strukturieren und durchsuchbar zu machen. Dazu lernen wir, warum die eigene Website immer noch der beste Weg ist im Web zu publizieren, sprechen über den Twitter-Meltdown + Fediverse und zum Abschluss gibt es noch Blasmusik. Wir hatten Spaß. Und ihr?

https://wowirsindistvorne.show/open-web-mit-matthias-pfefferle/

Ich kenne Moritz ( @MoritzGiessmann ) ein bisschen und habe den Podcast auch schon seit einer Weile abonniert… zu meiner Schande muss ich aber gestehen, dass ich bisher nur die Live-Steams geschaut („geschaut“ ist vielleicht auch übertrieben… ich habe ein bisschen rein ge-zappt…), aber noch nie eine Audio-Folge gehört habe…

DIE MEISTEN BEITRÄGE SIND ÜBER 2 STUNDEN LANG!

Aus perspektive des Gastes, verstehe ich jetzt aber warum die Folgen so lange sind! Die beiden haben einfach ’ne menge Spaß an dem was sie tun und eine Aufnahme ist viel mehr als „nur“ das Fachsimpeln zu einem Nerd-Thema. Von den 3 Stunden, die ich mit Moritz und Constantin geredet habe, geht es wahrscheinlich „nur“ 60 min um die oben genannten Themen… in der restlichen Zeit haben wir uns über Bier, Spam, Solar-Panele, Blasmusik und Terence Hill unterhalten (und ich hatte mich anfangs noch gewundert warum sie mich gefragt haben ob ich die ganze Folge dabei sein will).

Es war auf alle Fälle sehr lustig und kurzweilig… Ich hoffe die Beiden laden mich irgendwan nochmal ein und kann jedem nur wärmstens empfehlen den Podcast zu abonnieren!!

„Torque Social Hour“ und „Post Status Draft“

Dann war ich im November außerdem mit Tim Nolte zu Gast bei Doctor Popular und wir haben über „WordPress and the Fediverse“ gesprochen…

Hier klicken, um den Inhalt von YouTube anzuzeigen.
Erfahre mehr in der Datenschutzerklärung von YouTube.

…und im Dezember hatte ich noch einen gemütlichen Plausch mit Cory Miller „On The Fediverse, WordPress, and Activity Pub“.

Hier klicken, um den Inhalt von YouTube anzuzeigen.
Erfahre mehr in der Datenschutzerklärung von YouTube.

2023

Dieses Jahr wird mindestens genau so aufregend, wenn nicht noch aufregender…

Mehr dazu gibt es aber ein anderes Mal 🙂

The Logo of the AT Protocol

Vor zwei Jahren wollte Twitter in das „Dezentrale Netzwerke“-Business einsteigen und gründete eigens dafür das Projekt Bluesky. In den folgenden zwei Jahren wurde viel evaluiert und diskutiert, was wohl die beste Lösung für Twitter sei und wir alle fieberten mit ob es nun ActivityPub oder doch Matrix werden würde…

Aber das Warten hat ein Ende! Bluesky hat verkündet wie es weiter geht!

Sie entwickeln ein neues Protokoll!

Das AT Protocol, kurz für Authenticated Transfer Protocol!

Ich hab mir die FAQ mal angeschaut und dort steht warum Bluesky sich gegen ActivityPub entschieden hat:

Account portability is the major reason why we chose to build a separate protocol. We consider portability to be crucial because it protects users from sudden bans, server shutdowns, and policy disagreements. Our solution for portability requires both signed data repositories and DIDs, neither of which are easy to retrofit into ActivityPub. The migration tools for ActivityPub are comparatively limited; they require the original server to provide a redirect and cannot migrate the user’s previous data.

Das erinnert mich ein bisschen an die Subline von meinem OpenWeb-Icons Font:

Why OpenWeb Icons? Because Font Awesome had no RSS-icon […]

Weil ActivityPub keine perfekte Lösung für „Account portability“ hat, bauen sie ein komplett neues Protokoll?

ActivityPub ist sicherlich nicht „feature complete“, aber ein guter erster Wurf, was das Fediverse erfolgreich bewiesen hat! Warum arbeitet Twitter also lieber an einem eigen Format anstatt mit dem W3C zusammen an ActivityPub v2?

Warum macht sich das W3C überhaupt noch die Mühe „Standards“ zu definieren?

Wegen der Interoperabilität!

Würde Twitter mit HTTP(S), HTML oder CSS ähnlich umgehen, würde der Browser einfach leer bleiben, weil das &$%§& Internet nur mit einheitlichen Standards funktioniert!

Und das gleiche gilt auch für dezentralte Netze, zumindest wenn sie erfolgreich sein wollen! Darüber hab ich tragischerweise schon vor 10 Jahren geschrieben!

Diaspora* wurde kaum für „tot“ erklärt und schon steht das nächste Projekt in den Startlöchern! Tent.io soll ein protocol for distributed social networking and personal data storage werden. Alles neu, alles anders, alles besser als OStatus, DiSo oder Diaspora*. Aber mal ganz ehrlich… was haben die Diasporas & Co. bisher geschaffen? Ziel war es Facebooks „Walled Gardens“ aufzubrechen und was kam wirklich dabei rum? Eine ganze Reihe an dezentralen „Walled Gardens“. Na danke!

Dezentrale „Walled Gardens“

Das fediverse hat (wie schon erwähnt) bisher einen großartigen Job gemacht und verschiedenste Netzwerke mit den verschiedensten Ausprägungen vernetzt! Ich glaube bin der festen Überzeugung, dass sich diesmal wirklich das offene Format (ActivityPub) durchsetzen wird und Blueskys Authenticated Transfer Protocol auch in ein paar Monaten oder Jahren keine Rolle spielen wird!

Ben Werdmuller hat eine gesunde Einstellung zu dem Thema:

I’m so burned out by open source social, but I’m glad to see people throw energy at the problem, even if it’s not how I would have gone about it.

Twitter

Mehr hab ich dazu eigentlich nicht zu sagen, außer dass wir in der aktuellen Folge des neunetzcasts sehr ausgiebig über genau dieses Problem gesprochen haben!

Ein Code-Beispiel wie Kommentare als Custom Post Type registriert werden können.

Eine Leseempfehlung vorweg: „Yes, Comments Are Still Relevant, But We Need a Better System“ von Justin Tadlock auf WPTavern!

Soziale Netzwerke haben die Art wie wir kommunizieren drastisch verändert. Wir reagieren selten mit Text, statt dessen liken, re-tweeten, sharen und faven wir was das Zeug hält. Und wenn wir mit Text reagieren, hat dieser spätestens seit Twitter, einen anderen Stellenwert. Ein Kommentar ist nicht länger ein Stück Text unter einem Artikel, ein Kommentar steht für sich alleine und wird durch die Plattform in den richtigen Kontext gesetzt, abhängig vom Einstiegspunkt des lesenden.

Mein Tweet, über meine Timeline, mit Depones Antwort
Daniels Antwort über seine Timeline, mit meinem Tweet als „Reply-Context“.

Die IndieWeb Community nennt das einen Reply-Context.

Diese Art der Darstellung und Handhabung von Reaktionen ist auch in dezentralen Netzwerken sehr populär. Mastodon ähnelt sehr, dem von Twitter gekauften Tweetdeck und imitiert auch dessen Darstellung. Die IndieWeb Bewegung geht sogar noch einen Schritt weiter und schafft mit Webmentions eine Möglichkeit über Blog-Posts dezentral zu kommentieren.

Die Kommentar-Funktion von WordPress ist dagegen bald 20 Jahre alt und dementsprechend antiquiert.

Zeit das zu ändern!?!

Custom Post Type

Ich arbeite seit knapp 15 Jahren daran, WordPress im IndieWeb und Fediverse zu verankern. Das große Problem ist dabei immer wieder die Persistenz und die Darstellung von Reaktionen. Ich habe mir viele Gedanken gemacht, wie man das Problem beheben und WordPress‘ Kommentar System modernisieren könnte, und ende immer an dem Punkt, wo ich versuche die Custom Post Type – Funktionalität für Kommentare nachzubauen.

Aber warum? Wenn ich eh alles nachbauen müsste, wäre es doch viel sinnvoller direkt Post-Types zu benutzen.

register_post_type( 'comment' );Code-Sprache: JavaScript (javascript)

Aktuell bildet WordPress Posts, Pages, Attachments, Revisions, Navigation Menus, Custom CSS und Changesets über Custom Post Types ab… Warum also nicht auch Kommentare und andere Reaktionen?

Durch die Gleichsetzung der Datenstruktur von Posts und Comments, lassen sich diese einheitlich und dadurch einfacher verarbeiten und über z.B. APIs ausgeben. Gerade ActivityPub macht, wie Twitter, keinen Unterschied zwischen Kommentar, Antwort, Like, Boost oder initialem Text.

Die (Custom-)Post Tabelle bietet über post_parent schon jetzt die Möglichkeit komplexe Zusammenhänge wie z.B. auch Threaded-Comments abzubilden. Über den post_status ließen sich außerdem Kommentar-Status sowie eine Spam-Behandlung realisieren und commentmeta kann komplett in postmeta aufgehen.

Neben den klassichen Kommentaren lassen sich aber auch andere Reaktionen umsetzen.

Like, Share, …

Mit Post-Formats hat WordPress ein interessantes Konstrukt um Posts (über eine Taxonomy) weiter zu klassifizieren. Was für Posts das aside, gallery, link oder video Format ist, könnte für Comments das Like, Share oder Bookmark Format sein.

Themes könnten ihren Support wie folgt definieren:

add_theme_support( 'comment-formats', array( 'like', 'share', 'bookmark' ) );Code-Sprache: PHP (php)

Und Plugins, wie Webmention oder ActicityPub, könnten neue Formate wie folgt registrieren:

register_comment_format( string $comment_format, array|string $args = array() )Code-Sprache: PHP (php)

Fazit

Technisch spricht also nichts dagegen, Custom Post Types auch für Kommentare zu benutzen, man muss eigentlich nur noch alle Kommentar-Funktionen und -Klassen anpassen und fertig!

…und direkt über wpdb wird sicherlich eh niemand auf die Kommentar-Tabelle zugreifen! 😉

Spaß beiseite… Ich mag die Idee wirklich, hab aber bisher noch keinen ähnlichen Vorschlag im Trac gefunden… Ob das ein Zeichen ist?