Et desentralisert alternativ til Facebook-grupper
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
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:
- Gå til
togferiegruppen.no
i en nettleser - Trykk på en “Bli medlem av denne gruppen”-knapp (som åpner gruppen i Miniprat-appen)
- I Miniprat-appen får brukeren mulighet til å bekrefte eller avbryte innmelding i gruppen
Alternativ 2:
- Søk opp
togferiegruppen.no
i søkefeltet i Miniprat-appen på mobilen - Brukeren får mulighet til å bekrefte eller avbryte innmelding i gruppen
Hva skjer når en bruker velger å bli medlem av en gruppe?
Når en bruker velger å bli med i en gruppe, skjer følgende:
- Brukerens Miniprat-app sender profilinformasjonen (bilde, navn, osv) og forespørsel om å bli medlem til gruppeserveren
- 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
- 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
- Generell informasjon om gruppen (gruppenavn, profilbilde, gruppebeskrivelse)
- Poster og aktivitet i gruppen for en gitt periode (gruppeserveren vil kanskje begrense hvor ofte en app kan sende slike forespørseler, siden dette kan være ressurskrevende å hente ut)
- Gruppemedlemmer (de som har godtatt å være synlige i listen over medlemmer, i alle fall)
- Relaterte grupper, eller andre anbefalte grupper
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
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
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
- Grupper får bestemme over seg selv.
- Ingen lock-in-effekt.
- Ingen kan bestemme at en enkeltperson skal stenges ute fra ALLE grupper. På Facebook er det alltid en risiko for at kontoen din blir stengt, som vil hindre deg i å delta i alle grupper.
- Datasuverenitet. Hvis både en bruker og gruppe er i samme land, er det ikke nødvendig for noe informasjon å forlate landet.
- God offline-støtte. Nye oppdateringer fra grupper hentes når klienten har internettilkopling, og blir liggende lokalt på klienten (som for eksempel er en mobiltelefon) så lenge brukeren ønsker det - selv om vedkommende ikke har dekning.
Ulemper med Miniprat i forhold til Facebook
- Krever litt teknisk kompetanse for å opprette grupper. Til gjengjeld tror jeg de fleste sosiale grupper har minst én person med nok teknisk innsikt og motivasjon til å gjøre den jobben.
- Identitet. Det kan være vanskelig å lage et brukervennlig system for å verifisere brukere.
- Fare for å miste kontoen sin hvis all data ligger på én klient uten backup.
- Legger mer av ressurs-byrden på brukerklienten. En eventuell mobilklient vil kreve mer lagringsplass enn hvis all gruppedata kun var lagret på en server.
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.