4 ms·
Our social media should be decentralized and local first, allowing for bespoke clients on any OS. This is an experiment towards that: https://github.com/dharm
by dharmatech 5mo ago
Our social media should be decentralized and local first, allowing for bespoke clients on any OS.
This is an experiment towards that:
https://github.com/dharmatech/9social https://github.com/dharmatech/9social
The first client is written for plan9.
This keeps the design honest.
(If it can run on plan9/rc/acme...)
Video demo:
https://youtu.be/q6qVnlCjcAI https://youtu.be/q6qVnlCjcAI
The current implementation is less than 3000 lines of code.
And speaking of Emacs...
9social was heavily inspired by an Emacs project called Org Social:
https://github.com/tanrax/org-social https://github.com/tanrax/org-social
- volemo 5mo agoHow to upvote in bold? /j
- dharmatech 5mo agoIt's plan9 so: "There's a filesystem for that." ¯ \ _ ( ツ ) _ / ¯
- numpy-thagoras 5mo agoI love this idea. Thank you for the examples! I've been thinking of this as well: Something like old school Facebook in UI, but functions more like MSN Messenger. You connect to your contacts via P2P, and download/upload updates to your social media network.
- dharmatech 5mo ago> I love this idea. Thank you for the examples! Thanks for checking it out!
- dharmatech 5mo agoI love your username! I hope there's a sympy-thagoras out there. ( • ‿ • )
- dharmatech 5mo ago> You connect to your contacts via P2P, and download/upload updates to your social media network. Yup, local-first is central to the design. And, you only see who you explicitly follow.
- drzaiusx11 5mo agoSounds similar to scuttlebutt
- dharmatech 5mo agoI absolutely LOVE secure scuttlebutt (SSB). Their local-first approach inspired that aspect of the 9social design. However, a big difference is that SSB is a sophisticated protocol. With 9social, the heavy lifting is done by git and a set of conventions.
- zahlman 5mo ago> decentralized local-first social network that is based on git and plain text files. Nice! This sounds just like what I'd been thinking the system should be like. But how do you manage identity/authentication , or discovery of other users?
- dharmatech 5mo ago> Nice! This sounds just like what I'd been thinking the system should be like. Cool! Thanks for checking it out!
- dharmatech 5mo ago> how do you manage identity/authentication Well, each user's profile is just a git repository (possibly on github). So I'd think about identity/authentication in the same way users think about it for their code projects. If you have specific scenarios you're wondering about, feel free to ask.
- dharmatech 5mo ago> how do you manage discovery of other users Here's my personal profile on 9social: https://github.com/dharmatech/9social-user-dharmatech https://github.com/dharmatech/9social-user-dharmatech Each profile has a `following` file which shows who they're following: https://github.com/dharmatech/9social-user-dharmatech/blob/main/following https://github.com/dharmatech/9social-user-dharmatech/blob/m... So, once you know someone on the network (now you know me!) you can see who they follow. And who each of them follow... And so on.
- rixed 5mo agoIf you also want federation, end to end encryption, offline mode and collaborative edition, have a look at https://nextgraph.org https://nextgraph.org