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
The first client is written for plan9. This keeps the design honest. (If it can run on plan9/rc/acme...)
Video demo:
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:
> 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?
> Nice! This sounds just like what I'd been thinking the system should be like.
Cool! Thanks for checking it out!
> 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.
> how do you manage discovery of other users
Here's my personal profile on 9social:
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/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.
I 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.
I love your username!
I hope there's a sympy-thagoras out there.
( • ‿ • )
> I love this idea. Thank you for the examples!
Thanks for checking it out!
> 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.
Sounds similar to scuttlebutt
I 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.
How to upvote in bold? /j
It's plan9 so:
"There's a filesystem for that."
¯ \ _ ( ツ ) _ / ¯