Secure Scuttlebot (ssb), is an off-grid social network written using Node.js.
ssb was invented by Dominic Tarr. Dominic lives on a boat in New Zealand. The Internet in New Zealand is pretty bad, but it's even worse when you live on a boat. If you sail out of port, you might stop receiving a 3g signal for a long period of time. ssb solves the social-on-a-boat problem by syncing up when you've sailed into port.
There are three important things you need to know about how ssb works:
- ssb generates a public/private keypair which it uses to sign feeds and encrypt private messages. This means no one can pretend to be you unless they steal your key, and everyone on the network knows that you are the person publishing your messages.
- ssb uses an eventually consistent gossip protocol to move data between peers. You receive messages from the people you follow, as well as their friends. If a peer is beyond the friend-of-a-friend network, you will not receive their messages.
- ssb stores the messages from your friends and their friends on your local computer. This makes it easy to view the messages and publish while offline.
There are two important pieces that make ssb work under the hood:
- Secure Scuttlebutt creates cryptographically secure feeds when you publish messages. [Github] [Gitmx]
- Scuttlebot is a server you can use to connect to the network and display the network in an ssb client. [Github] [Gitmx]
There are a number of applications built on Scuttlebot:
- Minbase is a minimal browser client for scuttlebot [Github] [Gitmx]
- Minbay is a theme for minbase [Github] [Gitmx]
- Patchfoo is a hackable server-side client [Github] [Gitmx]
- Patchbay is a modular desktop client in Electron [Github] [Gitmx]
- Patchwork is a heavier desktop client in Electron [Github] [Gitmx]
- git-ssb is distributed git [Github] [Gitmx]
- git-ssb-web is a client for viewing distributed git [Github] [Gitmx]
- ssb-viewer serves ssb feeds and messages onto the web [Gitmx]
Andre also wrote a good article on ssb called An off-grid social network that went to the top of Hackernews for two days.