ahaldorsen.no

Et desentralisert alternativ til Facebook-grupper

Tegning av en mobiltelefon som får inn innlegg fra forskjellige retninger.

Jeg tror hovedproblemet med Facebook er nettverkseffekten. Når “alle” er på én spesifikk nettside, så kan den gjøre som den vil og drittifisere seg selv.

Løsningen er kanskje et desentralisert system. Vi har allerede et desentralisert sosialt nettverket vi kaller allheimen, men i stedet for en slik server til server-arkitektur, tror jeg vi trenger en klient til server-arkitektur. I denne teksten kaller jeg konseptet “Miniprat” (jeg er åpen for andre forslag), og kommer med noen eksempler hvordan det kunne sett ut.

Mobilappen

Jeg ser for meg en mobilapp som kan installeres på for eksempel iOS og Android. Jeg tror de aller fleste foretrekker å bruke mobiltelefonen til gruppekommunikasjon. Jeg tilhører unntaket som foretrekker å lese og skrive på en laptop, men jeg kommer tilbake til særinger som meg senere.

Miniprat-appen holder på en del informasjon, blant annet eierens brukerprofil, hvilke grupper eieren er medlem av og oppdateringer fra disse gruppene.

Ulempen ved å ha denne informasjonen på mobiltelefonen er at dette går tapt hvis eieren mister tilgang til enheten sin. Fordelen er at eieren ikke trenger å forholde seg til noen ekstern nettside og eventuell pålogging på denne.

Jeg tror det er viktig å tilrettelegge for dem som vil ha det enkelt. Dessuten synes jeg det er fint at brukeren selv kan eie og ha kontroll på egne data.

Serverne

Tegning av fiktive togferiegruppen.no.

Bare trykk på en knapp for å bli med i Togferiegruppen.

Hver gruppe i Miniprat-systemet er en nettside på en server, for eksempel togferiegruppen.no. En bruker kan bli medlem av denne gruppen på to måter.

Alternativ 1:

Alternativ 2:

Hva skjer når en bruker velger å bli medlem av en gruppe?

Tegning av informasjon som sendes mellom en server og en mobiltelefon.

Klienten sender brukerinfo og ber om å få bli medlem, og får en nøkkel i retur som den kan bruke til å poste og lese innlegg.

Når en bruker velger å bli med i en gruppe, skjer følgende:

  1. Brukerens Miniprat-app sender profilinformasjonen (bilde, navn, osv) og forespørsel om å bli medlem til gruppeserveren
  2. Om gruppeserveren godtar forespørselen (som kan skje automatisk eller etter godkjenning av en moderator), får Miniprat-appen en token (en hemmelig kode) i retur
  3. Brukerens Miniprat-app kan nå sende forespørseler til gruppeserveren (for eksempel “gi meg alle poster fra de siste 7 dagene”), så lenge den viser at den har riktig token

Informasjon som en gruppeserver kan dele med medlemmer

Tegning som viser hvordan en Miniprat-app kan generere en liste over anbefalte grupper til brukeren.

En kladd på hvordan Miniprat-appen kan generere en liste over anbefalte grupper til brukeren.

Det siste punktet tror jeg er viktig for brukervennligheten. Hvis hver gruppe tilbyr en slik liste, vil brukerens mobilapp kunne foreslå at brukeren melder seg inn i de mest anbefalte gruppene. Mobilappen vil også kunne opparbeide seg en stor liste over kjente grupper, som brukeren da vil kunne søke opp.

Webapp

En webapp kunne blitt laget på samme måte som mobilappen - at den lagrer brukerens informasjon, og spør etter nye innlegg fra gruppeserverne som brukeren følger. Webappen kunne hatt støtte for flere brukere, og måtte hatt innlogging med for eksempel brukernavn og passord.

Det hadde også vært mulig for webappen å fungere som en backupløsning for mobilappen. Mobilappen kunne for eksempel hatt et innstillingsvalg for backup, hvor en skriver inn nettadressen for webappen, og autentiserer brukeren med en token (ikke så ulikt hvordan brukere blir godkjent til grupper). Hvis brukeren for eksempel ødelegger mobiltelefonen sin, vil all nødvendig data kunne hentes ut igjen fra nettsiden.

Vagt relatert, her er en mockup av design på en nettside for desentraliserte grupper som jeg drodlet på for litt siden.

Gruppeservere som drifter flere grupper

Tegning av et skjema der en fyller inn gruppenavn, adresse og åpenhetsnivå.

Tenkt skjema som fylles ut når du skal opprette en ny gruppe på nettbekk.no.

Det er ingenting i veien for at én server kan drifte flere grupper. Se for deg at gruppeserveren nettbekk.no drives av en organisasjon som vil gjøre Miniprat tilgjengelig for alle. De har et skjema for å opprette nye grupper - ganske likt slik en oppretter en ny gruppe på Facebook. Soltveit velforening oppretter en gruppe her. Nå kan andre i nabolaget søke opp nettbekk.no/soltveitvel i Miniprat-appen sin, og bli med i diskusjonen.

Moderering av grupper (godkjenning av brukere, sletting av innlegg, osv) kan sannsynligvis også gjøres fra nettsiden, eller det kan tilrettelegges for slik funksjonalitet i Miniprat-appen.

Mulige utfordringer

Jeg har aldri utviklet mobilapper spesifikt for Android eller iOS, men jeg ser for meg det kunne vært noen utfordringer med å la mobilappen kjøre i bakgrunnen. Dette vil være nødvendig for å gi brukeren varsel når det skjer noe relevant i en gruppe (for eksempel at en blir nevnt i en tråd, eller får svar på en post).

Jeg har også tatt det for gitt at det er mulig å lage en “klikk for å åpne i appen”-lenke, men jeg er usikker på hva det vil kreve. Om dette ikke er mulig å få til, vil det kanskje gjøre det vanskelig for enkelte brukere å melde seg inn i grupper.

Denne desentraliserte strukturen setter også noen begrensninger på mengden data som kan overføres. Veldig store og aktive grupper, eller grupper som deler store bilder og lange videoer, vil kunne være problematisk. Det bør utvikles noen gode strategier for når mediefiler lastes ned til en klient, og når de heller skal ligge urørt på gruppeserveren.

ActivityPub og allheimen

Tegning som viser forskjellen på nettverkstypene ActivityPub (et føderert nettverk) og Miniprat.

Venstre: med ActivityPub-programvarer som Mastodon kommuniserer mange brukere med én server, som igjen kommuniserer (fødererer) med andre servere. Høyre: med Miniprat vil enkeltbrukere kommunisere direkte med alle servere som har grupper de er medlem av. Servere trenger ikke å kommunisere med hverandre.

Jeg er stor fan og aktiv bruker av ActivityPub-protokollen, som ligger bak det desentraliserte sosiale nettverket som har fått kallenavnet allheimen. I allheimen er desentraliserte Facebook-aktige grupper et hett tema, men så langt er det ingen som har kommet opp med et godt alternativ.

Det kan godt hende ActivityPub-protokollen kan brukes til dette formålet. Det beste hadde selvsalgt vært å slippe å introdusere enda en protokoll. Men hvis jeg har forstått protokollen rett legger den mer opp til koordinering mellom servere (føderering). Med Miniprat går all betydelig kommunikasjon direkte mellom en klient-app og flere servere, som jeg tror er mye mer effektivt til akkurat dette formålet.

Fordeler med Miniprat i forhold til Facebook

Ulemper med Miniprat i forhold til Facebook

Innspill og kommentarer

Jeg har en post om denne artikkelen på @ahaldorsen@tutoteket.no i allheimen, om noen skulle være interessert i å legge igjen en kommentar. Jeg leser også eposten min, post@ahaldorsen.no.