A short tribute to Peergos and its maintainer

siiky

2023/11/09

2023/11/09

en

If you haven't heard of Peergos yet, it can be described very briefly as a Google Drive/Dropbox/etc alternative: an online place to save your shit. Nowadays it already does a little bit more than that (e.g. file viewing/editing and a calendar). What sets it apart is that it's decentralized, offline-friendly, and you can self-host. Currently, the users' DB (called PKI) is the one component that is managed centrally. Not quite as bad as it may sound: actually, the only operation that necessarily goes through the main instance (as of now) is creating an account[^0], to ensure unique usernames (and possibly changing passwords). And the PKI is replicated to all instances, so after creating an account you're completely independent of the main instance (unless it's your "home instance", of course), as you can login through any instance (I don't know if there are plans to decentralize this). This also means that, when you self-host, you don't need to open your instance to the public internet.

Additionally, it's cryptographically impossible for anyone without your credentials to access your shit. On the one hand, no node has access to uncrypted content, everything is encrypted/decrypted on your browser. On the other, not even encrypted content is freely shared between nodes -- to request a certain piece of content (a block), a node needs a sort of "proof of ownership" of that block, which can only be generated from the login credentials.

What do I mean by "offline-friendly"? If you use GDive/Dropbox/etc, when the internet connection goes down, the "service" goes down as well (for you). Not with Peergos. It's very simply architected: your "home instance" stores all your shit, that's exactly the same. However, content is cached in your browser so that, as long as you have a connection to an instance, you can access it. That by itself isn't so impressive or useful -- you're more likely to go offline than the instance. But because you can run an instance on localhost, you have basically an offline-first experience. Even better: you can set it up to mirror all your content from your home instance, thereby untying yourself from the browser's cache. Everything always available offline.

Under the hood, Peergos is built on top of IPFS, using its own network, not the public one. For at least two reasons: (1) you don't want private content, even if encrypted, floating around a public network where anyone can freely get their hands on what they will; (2) the "proof of ownership" feature I mentioned before is a Peergos extension, not supported and not compatible you upstream IPFS.

One last cool feature: you can set a directory of yours to be published as a website at username.peergos.me, which can be accessed through the internet, or through a localhost instance without the need for DNS.

And now, a small homage to the main maintainer of this awesome project, Ian Preston. Without any shadow of a doubt, he is one of the (if not THE) most responsive, helpful, and attentive maintainers of ANY project I know! If you have any trouble getting Peergos to work for you, jump on #peergos-chat:matrix.org and he'll be sure to get you up on your feet!

[^0]: Yes, it's not good, I know that in the wrong hands it can act as a gatekeeper. In theory you can run your own Peergos network, using a central PKI server you trust. That comes with its own downsides, such as, not being able to log in through instances of the other networks.