There is more to the social web than a stream

Based on Jack Dorsey's statement, I read a lot into ActivityPub which is mentioned in the replies multiple times. I imagine it's the inevitable standard that the bluesky team will choose as it does fit Twitter's use cases (unless they fall down a rabbit hole of decentralization tech). Although, I'm not convinced that Twitter will become an ActivityPub server, they may only be an ActivityPub client. In other words, Twitter would consume other ActivityPub servers, but would not expose your tweets to other ActivityPub clients.

After digging into ActivityPub I was led to Activity Streams. I wrote some of my initial thoughts about it. While I think it's probably a good idea to expose social data in this format, I'm not sure every part of the social web can be condensed to actions and objects. Even if it can be, the ontology seems too limiting for every use case.

Some of the uses-cases that I wondered about are:

  • A to-do app. One where I can create a list with others and others can add items to the list. Any of us can mark an item as "Done."
  • A financial account ledger app that could include budgeting features. I should be able to share the account with others (who have shared access to the account anyways) and transactions can be recorded togther.
  • A marketplace app like craigslist. I should be able to create an item for sale, stored on my instance, and have that data aggregated by the marketplace.
  • A Collection app. I should be able to create items I own and be able to share that dataset with others. For instance, I should be able to create a database of movies or comic books I own (or anything).
  • A git app like GitHub. I should be able to create a repository on my server, and expose the metadata about that repository. Someone should be able to create an issue and I should be able to respond.

These are some of the ideas I have that don't strictly fit within the ActivityPub model. Overall I think that the social web encompass a lot of different aspects and it's somewhat impossible to make them all fit. The biggest hurdle, I think, is how to create semi-permanent "things" (to-do list, financial account, item for sale, collection of things, repository, etc.) that need to be retrieved outside of a stream. It might be best to stick to the original though of building a triplestore in Drupal. Though I imagine providing an activitystream to consumers might still be a good idea.