A Social Filesystem
38 points by icy
38 points by icy
This post does a really great job explaining how the AT protocol works. I feel like I haven’t seen such a complete and coherent explanation before now.
One thing that caught my eye and seems like a difficult problem is the discussion of how to determine the like count:
So, to get the reply count, we just need to count every such post:
This just seems really challenging to keep up-to-date, especially if folks are deleting records too?
It is a hard problem, but the folks over a Microcosm have been doing amazing work on community network infrastructure including the fantastic Constellation backlinks server.
This sort of decoupling between applications and content on the social web is underappreciated.
Many words have been spilled about how ATProto compares to ActivityPub, and I don't want to rehash all of that here, but I would like to note that the ActivityPub protocol also allows for that sort of thing. The client-to-server ActivityPub protocol has seen little implementation but, if implemented, could similarly allow us to use a single account/data store with multiple very different applications.
This is one of the things I think ATProto has done right, and I'd really like the fediverse to do the same!
I've thought about creating an activity pub based server that can be mounted with 9p as well so I really enjoyed this. I'm a fan of filesystems as an API, especially with fuse.
I think you could take their representation of posts even further: createdAt is set when you create a file, and can be retrieved using stat, so you don't actually need a json representation for a post at all. The content of the post can just be the content of the file. Metadata can also be stored as xattributes, which is how I represent categories and privacy settings for my notes in my vjournal based filesystem.
an atproto PDS can be mounted as a FUSE filesystem!
writeup: https://oppi.li/posts/mounting_the_atmosphere/
code: https://tangled.org/oppi.li/pdsfs
an example of what this enables: counting scrobbles by artist because I publish app.rocksky.* records;
λ jq -r '.artist' app.rocksky.scrobble/* | sort | uniq -c | sort -nr
117 Thank You Scientist
45 FKJ
34 Covet
33 VOLA
23 Sam Cooke
22 Dark Tranquillity
21 Piero Piccioni
12 Bloodywood
11 Frank Sinatra
10 Dream Theater
Nice post... kinda wish there are alt tags on the images though!
No big social media platform wants to lock themselves into such a set up.
Remember Open social. It had great backing but still did not survive.