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.
The moment I read “no transaction fees”, I immediately wondered why that would be listed as a feature. Turns out it’s because it uses crypto, though I don’t understand why. Free domain names?
It doesn’t need crypto, it only needs IPFS (but we could change underlying protocol in the future, if someone creates a better alternative to IPFS).
“no transaction fees” is listed as a feature because blockchain-based social media exists, and unlike them a plebbit full node doesn’t have to sync (because it’s a IPFS node), it just runs immediately like a BitTorrent node would, and it runs on 4GB of RAM even on a raspberry pi, on consumer internet (consumes less bandwidth than YouTube) and it only uses a few GBs of storage. Blockchain social media fundamentally cannot scale because of node requirements, that is if you want the platform to be “decentralized” (enough full nodes).
We do have crypto features, as an addendum. Mainly, we use crypto domains such as .eth (ens.domains) end .sol (sns.id) to resolve plebbit author/community addresses to readable names, because they are IPNS public keys (very long and impossible to memorize, e.g.
12D3KooWMLCgrZT8Ucaw2DWnv1HsQianf9tVi8sK6JCbCod3XK8T
). Unlike DNS, crypto domains are censorship resistant. They are cryptographic property, you hold them in your wallet, which means if you change the address of your plebbit community to one such domain, you are tokenizing your community. In theory, the more users your community has, the more people have saved your domain, the higher its value. Compare that to Reddit for example, where all subreddits are owned by Reddit, they can ban your community with millions of subs, because it’s not your property, it’s theirs.
From the FAQ linked on the site:
Q: Is this running on ETH? A: the token is on ETH, the plebbit protocol itself it not a blockchain, but the app will use several blockchains, tokens and NFTs to recreate all the features from reddit, like usernames, subplebbit names will be crypto domains like ENS (and other chains), awards will be NFTs, tips and upvotes will earn tokens (can set them to your own token or any coin of your choice in your subplebbit)
[…]
Q: What role does the PLEB token play? A: The base protocol doesn’t use tokens, which lets people who don’t have interest in cryptocurrency (yet) use it for free, but optionally you can use any tokens to do many things, for example you can use names.eth (ENS, which are non fungible tokens) to represent a username or subplebbit name. You can use NFT images as avatars. You can use fungible tokens and NFTs (any token or cryptocurreny of the subplebbit owner’s choice) to vote, curate, reward, tip, incentivize and/or as spam protection (instead of using captchas, require users of your subplebbit to own, stake, burn or pay a certain amount of a token/NFT of your choice to post/upvote). A subplebbit’s name like memes.eth (becomes /p/memes.eth) could be owned by a DAO, and owners of the DAO’s tokens could vote on chain for who gets to be admin and moderator of the subplebbit, i.e. a smart contract/DAO can be owner of a subplebbit.This sounds fucking awful. You want a peer-to-peer network, but decided to tie critical features to the blockchain, something arguably less decentralised than APub software.
Leave it to cryptos to make simple things stupidly difficult. This whole piece you quoted was hilarious, but this part especially stuck out for me:
The base protocol doesn’t use tokens, which lets people who don’t have interest in cryptocurrency (yet) use it for free
“You don’t know it yet, but deep inside you’re already a cryptobro like us.”
Ah ah they wish.
As the FAQ says, the base protocol doesn’t use tokens. Meaning, there are no critical features tied to any blockchain.
The crypto features we implemented in our clients are not required by the protocol. The protocol works perfectly fine without them. We implemented them in our clients because they are nice, and they are:
- readable names using crypto names, instead of having to see long alphanumeric IPNS public keys as addresses
- NFT profile pics tied to a user’s plebbit account, because we whitelist the specific NFT collections to prevent NSFW profile pics
- tipping, which is an upcoming feature, to provide a fully decentralized alternative to Reddit awards/gold (plebbit users will actually make money, so will the community owners and admins since they’ll be able to tax tips in their community; and there’s no corporation/global admin that gets a cut)
As the FAQ says, the base protocol doesn’t use tokens.
I don’t care what the protocol technically makes feasible, people don’t use protocols they use software that interprets protocols. ActivityPub doesn’t actually require DNS, but you (correctly) say it does because there’s no software out there people will use that doesn’t require DNS. The point is you still tied human readable names to the blockchain, something absolutely not optional for social media software. No one is going to be like “you should sub to p/nrlaoii2nsl2, the memes are 🔥”.
NFT profile pics tied to a user’s plebbit account, because we whitelist the specific NFT collections to prevent NSFW profile pics
Who is “we” here and why do they get to decide what’s acceptable in my community (‘subpleb’ if you will)?
You can create a plebbit client that uses DNS instead of crypto domains to resolve the addresses, but it won’t be compatible with our clients because we think that’s a terrible idea. The whole DNS system is a complete scam, it’s controlled by very few people, all in the same jurisdiction. There is absolutely no point to plebbit if most people will use .lol or .fun names that the US government can seize with no effort.
DNS is not the future, crypto is the future.
Who is “we” here and why do they get to decide what’s acceptable in my community (‘subpleb’ if you will)?
For our clients, “we” means us devs, the devs of Seedit and Plebchan. You can create your own client where you have NSFW profile pics, maybe resolved with regular centralized image hosting websites instead of NFTs like we did. Our NFT whitelist is only temporarily centralized, same as our default list of subplebbit addresses to show in the homepage of the client (before the user is subscribed to any sub). Both lists are here: github.com/plebbit/temporary-default-subplebbits In our clients, we will decentralize this curation via gasless pubsub voting by token holders. There’s no other way to decentralize it, so this is another thing that crypto excels at (DAOs).
I have just timed and 60 seconds wait time is atrocious for 8 text posts.
IPFS is nice but it doesn’t make sense for things that are under few of mb
IPFS has been breaking for a few years, it’s just slowly degrading, trying to staple something like this on top of it will just drag the DHT to a standstill.
From what I’ve gathered, this appears to be an unusably slow 4chan for crypto bros.
I didn’t see the word “blockchain” anywhere.
Because they didn’t want to turn off everybody immediately
Can we get a link ?
https://seedit.app/ is a fully decentralized client for the Plebbit protocol, using a old.reddit UI.
You can also try a demo of a much faster version of Seedit, it works via public RPC: https://plebbit.mooo.com/seedit/#/hot (warning: you’re using someone else’s full node to browse fully P2P, so if you create a community it’s in their node, it’s not yours). This version showcases how you can create a community even on mobile device, running a full node remotely. But we have to build user auth for this, it’s in our roadmap.
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.
“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
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/
Text only?
Wait till people start making browser plugins for base64 images.
Links have a character count limit, you can’t link to a base64 image on plebbit.
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.
Somewhere, a black hat master of ASCII art is cracking his hands.
It’s still misleading though, it takes away control from instance controllers, which in today’s world, also makes it so that it is easier to swamp it with bot accounts, misinformation, and even be an unwilling decentralization participant. Looking behind the curtains, it’s basically built by and around NFT (even the user avatars have to be NFT for no good reason), and already has a market for it, so don’t be surprised if there is a blockchain rugpull behind this. And it also doesn’t fix the inherent problem, rather, because of its design, it makes communities all the more authoritarian because whoever controls the NFT controls the moderation.
If you use it, you will no longer have the recourse of admins when its the moderators messing up and acting in bad faith. That problem isn’t due to instances, it’s due to the more generalized problem of people in position of authorities more interested in representing themselves than a community or their obligations, this does nothing to, say, provide for alternative moderation groups if you are unhappy with how the current one is moderating it. It does protect your account to some degree, but it also protect the accounts of the terrorists running around spreading hate speech, and you will feed a small part of it due to its decentralized nature.
Personally, the whole platform, https://plebbit.com/introduction , just seems a monetization strategy to monetize reddit-like communities into the NFT market. Expect the inevitable drama and subsequent crashes. But also, don’t expect it, it will depend wholly on the NFT holder, which means the community will go to sh-t if it gets lost or the administrative moderators of that community become out of reach, presumably because they sold it for millions to the nearest troll farm while they went off to the Bahamas. But hey, maybe it will pull the dumb and those just interested in monetization into their eco-system.
Nice essay, strong fud but we have safe guards against this. Users can back up or copy any subs they want, so if a sub owner goes insane, users can simply restore it, to exactly how it was. Sure the name will be slightly different since the previous owner owns the name, so p/games might now be p/videogames. But that’s a minor inconvenience. In fact multiple users can own a community which further safe guards it.
We will also remove communities that are toxic from our recommended subs list and replace it with the non toxic one. Alternatively users can create their on recommended subs list and share it round. Plebbit is open source so if we act nefariously, people can just fork it
I think you missed a lot of my points. What’s fud, the monetization of your platform? Went to give it a look, that’s what a lot of those “recommended” topics are showing users are looking forward to on some of the clients. You explained something I wasn’t complaining about, but now that you have, that opens up so many attack vectors as well. People can try to copy popular communities to set up fake “grassroots” communities, and it sounds like they can copy and simulate user participation along with it.
And no, how a community identifies itself is not a minor inconvenience, it has literally fueled the domain name market, it is what people linked to, what people see in archives, and where people will go. The elephant in the room you are forgetting to mention is how the whole community will suddenly coordinate so well and won’t just split itself off into several.
Communities can defend against bots using captchas, minimum karma limits and whatever else they can think of. We’re constantly improving this aspect.
People can make up Communities and purposely fill them with bots and astroturfing, however they can already do this on your typical social media. Its upto the user to spot this and move to a better community. We of course will do what we can to discourage astroturfing.
In terms of monetisation and building it around NFTS. All of that is optional. Communties can choose to only allow users to have NFT profiles or allow them to have whatever image they want. The tipping is optional. The domain name is a valid point, however its the most decentralised, non censorable option. We intend to allow domain names from different blockchains so if games.eth is taken people can use games.Sol.
About your point concerning community splits, this sort of thing happens in reddit all the time. A few communties get created in the splinter but eventually everyone moves to the one with the most activity and decent mods. And as we said we will facilitate the best ran subs gaining prominence from our side by adding it to the recommended list.
In terms of monetisation, the dev has spent $600k of his own money on this and is still spending. He doesn’t care to make any of it back. Plebbit is a non profit company. Any money made from plebbit via pleb domains or donations or plebbit gold will go to funding devs or other aspects of plebbit, but profit isn’t the goal.
The internet sorely needs a fully decentralised social media. Most of the social media has been taken kver by corporations, speech is stifled, what you see is controlled by shady algorithms. Plebbit gives all that control back to the community. Lemmy is a good stepping stone, but Plebbit is the end all be all. Improvements are always happening but a P2P social media is such a simple yet novel idea its surprising its not been done before.
Great work! I’ve always considered lemmy to be an interim solution as it doesn’t resolve the core issue of mod centralization. How does your solution
differcompare to something like nostr, which is more decentralized than ActivityPub, and not P2P, but also seems to eliminate the mod issue and enable “direct” subscribing to users.Would your goal be to shard/raid data across IPFS nodes at scale? If not, what would the local nodes size be with millions of users and years of history (e.g. Reddit’s scale)?
My next hope is a fully decentralized and distributed internet archive + piratebay using IPFS over I2P.
Plebbit differs from Nostr in that Nostr is federated (using instances), whereas Plebbit is P2P (fully decentralized). Plebbit uses IPFS, which is more similar to BitTorrent, which is pure P2P as well.
The issue with federations is that their instances are not easy to set up, most users don’t have an incentive to do so, and even if they did, they are not censorship resistant at all, because they work like regularly centralized websites. Your Nostr/Lemmy/Mastodon instance can get DDOS’d, deplatformed by the SSL certificate provider, deplatformed by the datacenter, deplatformed by the domain name registrar. The instance admin can get personally doxxed and harassed, they can get personally sued for hosting something a user posted, etc. And instances can block each other.
Whereas running a node on Plebbit is as easy as opening up one of its desktop clients, which automatically run the custom IPFS node in the background, and seed all the protocol data automatically (similarly to how a BitTorrent client seeds torrents). It runs on a raspberry pi, on 4GB of RAM and consumer internet. It scales like torrents, i.e. the more users connect p2p, the faster the network gets. And most importantly, nobody can stop you or block you from connecting to another user, because there’s nobody in between. This means nobody can stop you from connecting to a subplebbit (subreddit clone). If you run your own community, you’re always reachable by any user on plebbit.
There’s an XKCD for that, although i do think ActivityPub could be improved.
It’s not a competing standard, it’s a whole new approach to decentralize forum-based social media.
ActivityPub is not fully decentralized, it’s a federated design, meaning it’s a network of instances, and each instance is just a regular website with servers. Anyone can run an instance, but it’s expensive, tiresome and you’ll get banned for it; they are regular websites.
whereas Plebbit is fully decentralized, it’s purely peer to peer, meaning it’s a network of peers where every peer can potentially be a full node by simply using the desktop app (or in the future, a non custodial public rpc on mobile), and you don’t have to run any site/domain for it, it’s censorship resistant just like running a torrent with a BitTorrent client.
Also to be clear: like ActivityPub is a protocol with clients, such as Mastodon and Lemmy, Plebbit is a protocol with clients, such as Seedit and Plebchan.
So technically Plebbit is distributed then ?
Yes. Reddit is A, ActivityPub (Lemmy, Mastodon) is B, Plebbit (Seedit, Plebchan) is C:
How does it compare against let’s say Steemit ?
Steemit is A, it’s a regularly centralized website with global admins, claiming to be “decentralized” simply because it’s built on a blockchain. Whenever you are asking yourself whether something is “decentralized” or not, ask “how can I run a full node”? “What are the hardware requirements”? Steemit admins won’t answer those questions. Whereas you can easily spin up your own ActivityPub (Mastodon or Lemmy) instance (even though those instances work like regularly centralized websites, at least you have the option to run your own).
On Plebbit, just using the desktop app of a client (like Seedit’s desktop app you can download here means you are running a full node already. The app runs an IPFS node in the background, seeding all content you browse automatically, thereby improving the speed of the network for everybody else. The more nodes there are, the more decentralized the network is, so if all users can easily run a node and are incentivized to do so, then the network is properly decentralized/distributed. On Seedit, you can’t run a community if you don’t run a full node (the community is the node, acting like a server, and users connect to it P2P). There are no global admins.
Lol to the cookie notice on plebbit.com
Sounds interesting
plebbit.com is just a landing page made by a member of the community, to explain the project. To use plebbit, you can check out its clients, like Seedit.