Hey folks, anyone tried using Patchwork? I think Patchwork is worth considering for the following reasons.
- End-to-end encrypted mail.
- Public social feeds.
- No central servers.
- Sync over WiFi.
- Offline operation.
- GPL licensed.
Let me start with 3. No central servers. Patchwork is a self-hosted (each user should serve themselves from their own computer) application. Unlike Diaspora which is also self-hosted, but requires a central server (in a decentralized manner) where it should be installed and the web pages are served to it's users from that server.
Patchwork doesn't even need those decentralized central servers (I know it's a oxymoron, but... that's how it is a contradiction) since each user would be serving themselves on their localhost itself. This application is more close to Rumble for PCs.
If we are on the same LAN (or) WLAN, we all can sync over it. If not, we can turn on WiFi hotspot and sync over it. I will describe one particular scenario. I can write a very long post or keep logging posts on my local patchwork (I don't need any network for that and this is what 5. Offline Operation means). Once we all come together for a meet, we can all connect over the same LAN / WLAN and sync over it, so that the posts I, You and others created while we are all away can be exchanged among us. After this meeting, we all will return back to our places and we can sync with people at our places with these new messages that you and I exchanged. This is what 4. Sync Over WiFi means.
If we need real time communication from our places through Internet, then as a community we can setup something called as Pub Servers (which are decentralized central servers ) which can relay messages between peers who have subscribed to the Pub servers. For example, Say I have Internet connectivity at home and we have a Pub server running for us and I have subscribed to it. But one of our friend do not have Internet connectivity and so could not join the Pub Server. In this case, I can visit them or they can visit me and we both can sync each other since can discover each other exchange messages through LAN/WLAN and then I can come back home in 30 minutes and connect to Internet and thus sync with Pub server.
Now our friend's message, even though they did not have Internet connectivity would reach other peers over the other end somewhere on the Internet also subscribed to this Pub server and then their message can keep on spreading like this on a epidemic fashion. These are possible through 2. Public Social Feeds.
And what not! We can have one-to-one email like threads with selected peers and they are all 1. End-to-End Encrypted. And the most beautiful part is that patchwork falls under the family of digital commons through GNU GPL. Yay! It's a Free(dom) Software
The data are not lost even If my machine loses my data. When I connect back with any of the peers through my same identifier (not handle, but publickey-privatekey hash) the data will be synced back with me through my peers.
We can exchange text messages and pictures as of now through public social feeds. Sending pictures on one-to-one thread is not possible yet. Public feeds can be grouped together using hashtags, which the application calls as Channels.
Myself and @Balvis have tried once and we thought we should take this to larger peers and see how this can be adopted on a large scale like a community for us. The application is written on
nodejs and is very lightweight from my experience. Also I think, the pub server will be light to be hosted on Internet so it requires very low cost machine to power it.
The application itself gets rid of the need for a database. Instead it uses a upcoming new design architecture called Kappa which uses a append-only logs to propagate events and messages. In this case, patchwork uses a peer-to-peer append-only log store called Scuttlebot. This is one place where it differs from Rumble, which uses sqlite as a backend. Rumble can also be rewritten to use peer-to-peer log store like scuttlebot.
The reason why I am posting this here under Project Meshnet category is that it very well can be adopted on already peer-to-peer physical network.