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.

  • I Cast Fist@programming.dev
    link
    fedilink
    English
    arrow-up
    1
    ·
    9 days ago

    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?

    • Plebbitor@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      0
      ·
      9 days ago

      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.

      • not_IO@lemmy.blahaj.zone
        link
        fedilink
        English
        arrow-up
        0
        ·
        9 days ago

        so you host individual communities instead of servers on lemmy?

        In theory, the more users your community has, thw more people have saved your domain, the higher its value

        Why would i want a community to have value? and how would people saving something make it more valuable? What Theory?

  • kittenzrulz123@lemmy.blahaj.zone
    link
    fedilink
    English
    arrow-up
    1
    ·
    9 days ago

    Get out of here with the crypto nonsense, we dont need more tech bro spaces for people to talk about AI automation and why the grind is more important than workers rights.

  • ludrol@bookwormstory.social
    link
    fedilink
    English
    arrow-up
    1
    ·
    8 days ago

    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

    • rumba@lemmy.zip
      link
      fedilink
      English
      arrow-up
      0
      ·
      8 days ago

      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.

    • Plebbitor@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      0
      ·
      9 days ago

      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.

      • oldfart@lemm.ee
        link
        fedilink
        English
        arrow-up
        0
        ·
        9 days ago

        Reading these comments about your work must be so hard. I remember getting this kind of feedback for my projects from know-it-alls who never completed anything themselves. Keep up the good work, decentralize everything!

            • Plebbitor@lemmy.worldOP
              link
              fedilink
              English
              arrow-up
              0
              ·
              9 days ago

              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.

      • 0x0@programming.dev
        link
        fedilink
        English
        arrow-up
        0
        ·
        9 days ago

        Well if you see ActivityPub as the standard way of using decentralized social media…

            • Plebbitor@lemmy.worldOP
              link
              fedilink
              English
              arrow-up
              0
              ·
              9 days ago

              worse content searching

              It’s pure p2p so it can’t have content searching straight out of the box, but it can easily have indexes like 4chan archivers to search in known subplebbits. It’s entirely possible to crawl all active subplebbits and archive them all in a central database, and use that for search. This will happen, and plebbit clients will probably implement multiple such archivers to run search in them. And search engines will be able to index.

              worse scalability

              It’s orders of magnitude better scalability than regular sites such as federated instances. Because it works like torrents, except you always seed, so plebbit nodes will inevitably improve the network speed more and more as more nodes join. And running a node works on a rasp pi. And all content is just text (including links from which media is embedded by the clients), so there’s no scalability issue relatively to storage, either.

              worse moderation

              It has way better moderation, because it’s just like reddit in that every community moderates itself, except there’s no global admins able to censor a community/node or impose global rules. Plebbit clients are simply static HTML tools to browse the p2p network to connect to each community directly. Every community is incentivized to moderate itself effectively, or they become unusable, and to enter the homepages of the clients they must get voted for by holders of the plebbit token, via a gasless governance system using pubsub it’s this page, you’ll be able to vote for communities, i.e. downvote communities that aren’t well moderated to remove them from the homepage for everyone). Right now, this homepage default list is centrally controlled by the developers, it’s the only remaining centralized part of the project.

          • xthexder@l.sw0.com
            link
            fedilink
            English
            arrow-up
            0
            ·
            9 days ago

            the comic itself is stupid

            The comic isn’t so much a criticism as it is a comedic observation of what happens in the real world.

            At least that’s how I interpret it.

    • WhatAmLemmy@lemmy.world
      link
      fedilink
      English
      arrow-up
      0
      ·
      edit-2
      9 days ago

      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 differ compare 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.

      • Plebbitor@lemmy.worldOP
        link
        fedilink
        English
        arrow-up
        0
        ·
        9 days ago

        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.

        • Cochise@lemmy.eco.br
          link
          fedilink
          English
          arrow-up
          1
          ·
          5 days ago

          Reading the white paper you find the “serverless” has servers. Each community needs to be always online to serve captchas to posters. The system is federated on community level, instead of instance level, and uses DHT instead of DNS.

        • iopq@lemmy.world
          link
          fedilink
          English
          arrow-up
          0
          ·
          9 days ago

          Nostr is not really federated because the servers just send data for you. Nobody calls the internet federated because the switches transfer your data

          • ubergeek@lemmy.today
            link
            fedilink
            English
            arrow-up
            0
            ·
            8 days ago

            Nobody calls the internet federated because the switches transfer your data

            Actually, a lot of people refer to the internet as federated, because most all of it is very decentralized, and independently managed.

            Take IP routes… The BGP table is a giant exercise in federation. Any transit provide can blackhole your traffic, or just refuse to accept the announcements (ie, a lot of places reject North Korean BGP announcements, for example).

            DNS is another example of a federated system, a number of countries operate the root servers, who merely hold pointers to where to get answers for a TLD, which in turns just provides answers on who can provide answers for a domain.

            You can even create your own TLDs, and use them!

            Its a giant, federated system. The apps sitting on top of it are not so much anymore.

            • ZeroOne@lemmy.world
              link
              fedilink
              English
              arrow-up
              0
              ·
              8 days ago

              How does one create their own TLDs ? Do you have any guides or example videos on it ?

              • pixelscript@lemm.ee
                link
                fedilink
                English
                arrow-up
                0
                ·
                8 days ago

                Technically all you need is a DNS server.

                No computer knows where <whatever.tld> is located, unless that route is hard-coded in a host file somewhere. It always has to ask a DNS server for that information. If that DNS server doesn’t know, it will probably try asking some other DNS server, and so on up a chain. Eventually, it reaches a master DNS server that either has the answer on-hand somewhere in a database, or it says, “lmao, that doesn’t exist”. All the DNS servers and your PC down the chain take that answer. They might memorize it for a little while and hand it out to anyone who asks them, but after a while they’ll ask their way up the chain again to see if the answer has changed since the last time they asked.

                In order to “create” a TLD, all you have to do is make a DNS server that doesn’t ask up the chain. Just pre-program the list of valid domains yourself. You can make them anything you want. You can even “steal” existing domains and make them point to anywhere you want. Nothing is stopping you. Your DNS server will confidently report its pre-programmed answers to anyone who asks.

                The catch is that any Internet-enabled device that you want to be able to use your fancy new custom domains needs to be configured to ask your DNS server in particular. People would have to manually set your DNS server as their master server to ask, or they’d have to set it to ask some other DNS server that is itself pointed through some chain up to your DNS server. This is an explicitly opt-in system, and getting a significant mass of people to do that voluntarily is practically impossible. But it’s not technically impossible.

                The only reason you don’t have to do this manually with every single device you buy is because most devices either come from the manufacturer with a hard-coded list of DNS servers they should trust by default, or a device on the local network whispers in their ear and tells them who the local DNS server is and the device just goes along with it. It’s still technically an opt-in system; devices are simply either already “pre-opted in”, or there’s a system running on your network that auto-opts-in every device that connects, and most devices are designed to accept that auto-opt-in the moment they detect it.

                Provided you manage to get the devices you want to listen to your DNS server, you may additionally want to set up a root certificate authority. The thing that makes the little padlock show up in your browser URL box to let you know the connection is secure. Kind of like the DNS server thing, this is also very simple–just run a cheeky little OpenSSL command or two and you can be a root CA in no time–but it suffers from the same “opt-in” problem. You have to manually configure any device you want to use your system to trust your certificates. Most devices just come with a list of “acceptable authorities” built-in, and those defaults are all most people are using. But nothing is stopping you from adding anything you want to that list at any time. You’re just limited to doing it on a device-by-device basis.

                At my company, we’ve set up our own custom DNS server and our own root CA. We serve internal websites at a custom TLD we made up, and we sign them with our custom certificates to keep the connections secure. But that only works because we’ve manually configured our workstations to ask our internal DNS server for DNS requests, and we’ve manually configured all the workstations to trust our root certificate authority. A random device that connects to our network that isn’t configured with either of those things will not resolve any of our custom domains, nor will it securely connect to them. It also breaks if the configured devices aren’t on the local company network, since the DNS server isn’t reachable from the public web. Which is fine for us, since those internal websites aren’t reachable on the public web either. But yeah, that’s an example of the limitations.

                If you want to create a TLD that will be auto-accepted by everyone who is already running the default chains of trust (which is probably what most people actually mean when they ask something like this), you have to seek out the big daddy at the root of that chain of trust and ask them to poof your TLD into existence for you. That would be ICANN, and they probably won’t do anything like that without a big fat check and a lot of corporate lobbying.

                tl;dr - The tech is built in such a way that nothing is stopping you from making your own toy, and anyone can play with your toy without needing to do much. But if you want your TLD to “just work” for everyone in the world without asking every single one of them to explicitly opt-in, which is probably what you actually want, then no, you basically can’t do that.

    • Plebbitor@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      0
      ·
      9 days ago

      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.

  • gandalf_der_12te@discuss.tchncs.de
    link
    fedilink
    English
    arrow-up
    0
    ·
    7 days ago

    I’m all for decentralized community-based hosting for large media files such as video, but i guess for text/structured databases it wouldn’t work due to synchronisation issues.

  • rottingleaf@lemmy.world
    link
    fedilink
    English
    arrow-up
    0
    ·
    8 days ago

    Bad idea.

    The closest to a good idea IMHO is NOSTR. By the way, there is a standard for moderated communities for it, I don’t know whether anything implements it yet.

    In general, not in fact.

      • einlander@lemmy.world
        link
        fedilink
        English
        arrow-up
        0
        ·
        9 days ago

        You wouldn’t need to link base64. Base64 is just ASCII text that would go into the comment. But you can tell a browser or extension that it’s an image and have it decided accordingly. You can see examples of this in the .mht files ie/Firefox makes.

        • yumyampie@lemmynsfw.com
          link
          fedilink
          English
          arrow-up
          0
          ·
          9 days ago

          if there is a character limit, you can’t store too much data. You can only store a few pixels in the base64 image string

          a 1 pixel base64 gif is around 70 characters

  • chronicledmonocle@lemmy.world
    link
    fedilink
    English
    arrow-up
    0
    ·
    9 days ago

    Nifty project. Definitely I could see this being useful for discussing things that would traditionally be censored on other more centralized or semi-decentralized platforms (piracy, anti-authoritarian discussions in an oppressive country, etc).

    I gave it a try and the loading times are atrocious, though. I suppose that’s an unfortunate problem with running decentralized.

    • Brickfrog@lemmy.dbzer0.com
      link
      fedilink
      English
      arrow-up
      0
      ·
      9 days ago

      Definitely I could see this being useful for discussing things that would traditionally be censored on other more centralized or semi-decentralized platforms (piracy, anti-authoritarian discussions in an oppressive country, etc).

      IPFS by default isn’t set up to work around censorship or anything of the sort. Protocol Labs (creator/maintainer of IPFS and Filecoin) have always honored copyright takedowns, etc. on their own infrastructure and have done a fair amount of work on content blocking within the default IPFS clients and such.

      e.g. https://blog.ipfs.tech/2023-content-blocking-for-the-ipfs-stack

    • Plebbitor@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      0
      ·
      edit-2
      9 days ago

      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.

    • iopq@lemmy.world
      link
      fedilink
      English
      arrow-up
      0
      ·
      9 days ago

      The downside is big instances decide which content to show their users. If lemmy.world defederates some instance that’s content I would never know existed.

      • ubergeek@lemmy.today
        link
        fedilink
        English
        arrow-up
        0
        ·
        8 days ago

        So… sounds like you need a new instance? One that doesn’t defederate from all the content banned by another instance.

          • ubergeek@lemmy.today
            link
            fedilink
            English
            arrow-up
            0
            ·
            8 days ago

            And thats a good thing! It’s known as a right to free association. You can choose who you hang out with, and who you do NOT hang out with.

            • ZeroOne@lemmy.world
              link
              fedilink
              English
              arrow-up
              0
              ·
              8 days ago

              Yeah in other words censorship & echo-chambers When you call yourself a “Platform” you don’t get to “associate”