p2p Dropbox in a web app using IPFS + OrbitDB
This project combines IPFS with OrbitDB to allow users to securely share files as well as synchronized folders with each other. This allows you to work collaboratively with others with no accounts, no fees, and all data going browser to browser. Users can visit anyone of the website gateways (or self-host a gateway) and begin collaborating with other browsers immediately, without needing any browser extensions like Metamask.
How it's made
We are using IPFS and a custom OrbitDB store for file related functionality, everything is ran inside the browser tab. The font-end is built on React.js and has a completely custom UI. IPFS which is an immutable file system is used to store, send, and reference data. A custom OrbitDB store takes output from ipfs add and creates a mutable file system like structure from it. This structure stores paths and file CIDs. The OrbitDB store exposes methods to mutate the file system and a way to calculate directory CIDs from contained file CIDs. These CIDs can be used later with ipfs to download/read data. When a user uploads a file or folder to the website, it's added to IPFS. The output is given to the OrbitDB store which allow for mutating the structure and replicating changes across devices. The website also allows for downloading that structure, which could be a file or folder, at a later time.Technologies used