Plebbit is a selfhosted, opensource, nonprofit social media protocol, this project was created due to wanting to give control of communication and data back to the people.
Plebbit only hosts text. Images from google and other sites can be linked/embedded in posts. This fixes the issue of hosting any nefarious content.
ENS domain are used to name communities.
Plebbit currently offers different UIs. Old reddit and new reddit, 4chanw, andhave a Blog. Plebbit intend to have an app, internet archive, wiki and twitter and Lemmy. Choice is important. The backend/communities are shared across clients.
If it is selfhosted, and text only, why use IPFS?
Because this way it has no central server, database, HTTP endpoint or DNS - it is pure peer to peer. Unlike federated instances, which are regular websites that can get deplatformed at any time, plebbit full nodes are customized IPFS Kubo nodes, and running one is as simple as downloading the Seedit client desktop app (available on github) and keeping it open. It runs the node automatically, and seeds content automatically as you browse it. It runs on a raspberry pi, so we expect to see a lot of plebbit users running their own full node.
How do you share data between nodes in a decentralised manner? IPFS is just a DHT so you can’t communicate solely using it?
we use IPNS for mutable data (like upvote counts, reply counts, etc) https://specs.ipfs.tech/ipns/ipns-record/ and gossipsub for an author node to communicate their publication to a community node https://docs.libp2p.io/concepts/pubsub/overview/
So you use IPDS for mutable data, and need to tell people (well software) where you stored it.
Can you tell how this author node works? Is it like that IPFS “CID” (IIRC) ?
“no no, you download this black box binary and run it all day. Trust me brah”
There’s just so much to unpack
All the code is fully open source on github.com/plebbit