Nell’ActivityPub Support: Phase 1 RFC ho delineato un esercizio di ideazione per valutare il caso d’uso aziendale per il supporto di ActivityPub in Discourse, pensando oltre un MVP come se Discourse fosse stato costruito da zero con la federazione in mente:
Quindi, con questo, avvierò l’ideazione con un brainstorming, senza tenere conto delle pratiche tecniche date dall’attuale codebase. Sono consapevole che ci sono molti aspetti e casi limite in tutto questo. Questa è una visione di come potrebbe apparire il supporto nativo alla federazione. Si parte..
La comunità non ha confini
(Foto di Pixabay da Pexels)
Condividiamo tutti un unico pianeta
mescolandoci in strutture sociali complesse. Perché una comunità Discourse è limitata a un singolo forum?
Sono amministratore della Comunità per la Tecnologia Umanistica (HTC) e copriamo un’ampia gamma di argomenti tecnologici, con (sotto)categorie come «Libertà > Privacy», «Allineamento > Etica», «Allineamento > Standard». Forse troppo ampio, e esistono molti altri forum Discourse specializzati in queste categorie, che in quel campo fanno un lavoro migliore del nostro. Ma per le persone interessate a ottenere una panoramica di tutto il campo della tecnologia umanistica, il posizionamento ampio ha senso.
Federare le categorie
E se potessi federare la nostra sottocategoria «Privacy» con, ad esempio, la sottocategoria «Post del Blog» del forum PrivacyTools? Forse solo per sincronizzare gli argomenti in una direzione, dato che la sottocategoria sulla privacy di HTC ha un ambito più ampio: gli argomenti creati su PrivacyTools apparirebbero sul forum HTC, e i nostri membri potrebbero interagire con essi. I post degli argomenti sul forum HTC verrebbero poi trasferiti all’argomento su PrivacyTools e viceversa. Gli argomenti su entrambi i forum vengono mantenuti sincronizzati. Forse voglio anche sincronizzare in una direzione più sottocategorie di PrivacyTools verso «Privacy» su HTC. E perché non sincronizzare con diverse comunità relative alla privacy in modo simile.
Un altro esempio. Sia Feneas che SocialHub condividono una categoria di livello superiore «ActivityPub». C’è sovrapposizione tra queste, duplicazione, membri di una comunità ignari di ciò che sta accadendo nell’altra comunità. Questa è un’opportunità in cui «ActivityPub» è un candidato per la sincronizzazione bidirezionale, dove ogni forum contiene quindi le stesse liste di argomenti.
Federare tag e singoli argomenti
Lo stesso può valere per i tag, dove un tag particolare è configurato per essere federato. Questo potrebbe essere, ad esempio, impostato in modo che qualsiasi argomento con il tag #specification su SocialHub sia federato alla sottocategoria «Allineamento > Standard» su HTC.
Gli argomenti possono anche essere federati su base caso per caso, attivati da un comando della barra degli strumenti, dove si specifica il forum di destinazione a cui federare e, forse, si seleziona anche la categoria remota sotto cui deve apparire l’argomento (cioè l’elenco delle Categorie del forum è anche federato per la navigazione remota).
Menzioni dei membri e visualizzazioni del profilo
Quando un argomento è federato a un altro forum, qualsiasi menzione all’interno deve essere adattata per riflettere dove risiede il membro. Il mio handle @aschrijver su HTC potrebbe apparire come @aschrijver@humanetech sul forum SocialHub dopo la sincronizzazione.
Poiché sono anche un utente su SocialHub, nelle impostazioni del profilo potrei collegare gli account, e dopo una verifica ciò significa che negli argomenti sincronizzati il mio handle dell’account locale può essere mostrato.
Cliccando su un handle remoto o sull’avatar di un membro, viene visualizzata la scheda del profilo del forum remoto. Cliccando di nuovo per vedere il riepilogo del profilo, potrebbe mostrare solo le metriche di attività sul forum locale che derivano dall’interazione con gli argomenti sincronizzati. In alternativa, e più interessante, mostrerebbe riepiloghi da tutti i forum noti che fanno parte della configurazione di federazione. Ad esempio, potrei scoprire che la risposta proviene da un membro molto attivo ed esperto dell’altro forum.
Messaggi diretti e notifiche
I DM sarebbero possibili su tutti i forum federati, non solo localmente, taggando/menzionando il membro remoto nel DM. A parte questo, non ci sarebbe alcuna differenza nel modo in cui avviene la comunicazione DM. Funziona allo stesso modo dei DM locali attuali.
Da tutte le funzionalità di federazione descritte sopra sorge la necessità di federare anche le notifiche. Se rispondo al post di un membro remoto, mi piace il suo post o lo menziono in un thread di argomento sincronizzato, una notifica UI potrebbe apparire sul forum remoto per avvisare il membro. Le notifiche via e-mail sono gestite anche dal forum remoto. Tuttavia, se il membro ha account collegati su entrambi i forum, le notifiche potrebbero provenire dal forum locale dove è avvenuta per prima l’interazione.
Single Sign-On (SSO)
Si noti che in tutte le funzionalità descritte finora, non c’è bisogno di avere SSO. Un membro remoto non ha accesso privilegiato automatico a un altro forum federato. Quindi, cosa succede se viene menzionato in un thread di argomento sincronizzato in una direzione? In tal caso, riceverà una notifica UI e un’e-mail provenienti dalla propria istanza del forum, e cliccandoci sopra verrà reindirizzato all’altro forum (magari in una nuova scheda del browser) dove potrà semplicemente visualizzare l’argomento. Se vuole rispondere, deve prima registrarsi e collegare gli account, per poter rispondere.
Si noti che l’SSO è una cosa complicata sul Fediverse, che non ha ancora una buona soluzione. Ma per la federazione da Discourse a Discourse, la funzionalità SSO potrebbe essere molto più semplice da implementare. Se ci fosse un’integrazione SSO, cliccando sulla notifica si potrebbe aprire l’argomento nel contesto all’interno del forum corrente (come una «vista remota»), permettendo al membro di interagire con esso in modo trasparente.
Gestione della federazione e complessità
Tutto questo caso d’uso è descritto come se Discourse fosse stato costruito da zero con il supporto alla federazione integrato. Se tutto questo viene implementato, tocca quasi tutte le funzionalità del prodotto. A differenza del caso d’uso che ha avviato questo thread - per i feed personalizzati simili a FB - la federazione qui è gestita attentamente dallo staff del forum, non sull’impulso dei singoli membri.
Gran parte della configurazione della federazione è roba riservata solo agli amministratori. Dovrebbe essere fatta strategicamente e con un buon piano, per mantenere l’organizzazione della comunità e i contenuti intuitivi e logici. L’impostazione della federazione è costruita gradualmente nel tempo come parte del flusso di lavoro di costruzione della comunità, non qualcosa che viene aggiunto casualmente.
Interoperabilità
Certo, questa visione del supporto di ActivityPub non deve essere limitata a Discourse. Qualsiasi progetto software compatibile potrebbe diventare parte del tessuto comunitario distribuito. Ad esempio, il software open-source per la costruzione di comunità forem e la piattaforma di decisione collaborativa loomio, entrambi dei quali ho appena indicato nella direzione di questo post. Ma Discourse ha l’opportunità di prendere l’iniziativa in tutto questo.
Integrazione con il Fediverse
Tutto il supporto alla federazione finora era limitato al dominio aziendale del forum/comunità, ma con l’integrazione di ActivityPub l’interoperabilità può ora espandersi per abbracciare il più ampio Fediverse, abilitando numerosi casi d’uso aziendali entusiasmanti. Ne elenco solo alcuni che mi vengono in mente a caso:
- Annunciare i post del forum su tutto il fediverse con toot sulle piattaforme di microblogging Mastodon / Pleroma.
- Le immagini incorporate vengono caricate automaticamente su PixelFed e servite da lì (ottimo per le comunità come Blender).
- La barra degli strumenti data/ora permette di impostare un evento completo Mobilizon rivolto al fediverse, con tutte le funzionalità RSVP.
- L’integrazione è abilitata in due direzioni, dove le Discussioni Mobilizon sull’evento sono in realtà argomenti Discourse.
- Creare argomenti PeerTube con funzionalità video speciali, dove i post sono il thread di commenti su PeerTube.
- Il tuo argomento pubblicato diventa automaticamente un post del blog Writefreely più un thread di commenti.
- Incorpora parti del tuo forum in Nextcloud come app tramite il suo supporto ActivityPub.
- Integra funzionalità podcast tramite Funkwhale (vedi il recente video sul supporto podcast).
- Ottieni informazioni sul profilo da Flockingbird, rete sociale professionale in sviluppo (simile a LinkedIn).
E guarda il numero in costante crescita di app sulla ActivityPub Watchlist e lascia che la tua fantasia ti guidi ![]()
Conseguenze
Dimentica per un momento tutti gli ostacoli e gli ostacoli tecnici e considera cosa significa avere tutto questo per Discourse come prodotto. O meglio, poiché Discourse non è più «solo un prodotto»: Discourse è diventato un tessuto comunitario distribuito.
Lo staff del forum non è più solo questo. Adottano una prospettiva molto più ampia sulla costruzione della comunità. Sia la comunità che i contenuti della comunità esistono in tutto il tessuto di Discourse. Lo staff guarderà attivamente ad altre istanze di Discourse, avvicinando il loro staff per forgiare partnership e creare interessanti design di federazione per tagliare e dividere la propria organizzazione comunitaria e i contenuti per renderli più interessanti per la base di membri della comunità.
Anche i membri della comunità sono molto meglio serviti. Contenuti più interessanti fluiranno verso il loro «portale» del forum e il forum sarà più attivo di quanto non lo sarebbe se fosse solo una cosa locale. I membri della comunità potranno scoprire e interagire con i membri di altre istanze di forum in tutto il tessuto. In realtà, il confine della comunità è stato rimosso: La comunità non ha confini.

