SSBC Grant Request
Research and implement multi-device feeds in Patchcore and Patchwork
One of the most commonly requested features on Patchwork and the rest of SSBC is how do I use multiple devices with the same identity?
This is such an obvious feature that most people are very surprised to learn that there is currently no good way to do this. But I have an idea that I would like to experiment with that should solve this problem quite nicely. It is not a "highly-technical" fancy pants crypto solution or anything like that.
My idea is to treat "profiles" themselves as subjective.
We could allow individual uxers to choose which feeds they would like to see merged. Other people browsing profiles would see that people that they follow have merged a particular profile with another and be able to agree (or disagree) with a merge. After agreeing, the feed would appear merged for them also.
Subjectivity has always been at the heart of all things SSB, allowing people to control their experience of the network. Why not allow people to choose the feeds that should make up a person?
In addition, a merge would be rendered by default if two feeds agreed that they wanted to be merged with each other.
Implementation
I suspect that after diving into this problem, the implementation details could change, but so far here's an outline of what I want to do technically:
- uxers publish
sameAs
about messages - specified feeds get merged together if you are the author of the
sameAs
message (in the same way that you can rename a person) or if each feed specified has a matchingsameAs
about message pointing back at the other identity - feed merges published by people you explicitly follow will be included in the public feed and displayed on the target profile pages - you can then choose to agree by also setting the sameAs message (probably with a dismiss
notSameAs
option)
I would update patchcore (which Patchwork, patchbay and mmmmmm are all based on) to read sameAs
messages using the ssb-about plugin and apply the resolved merges to the various views and observables (such as contacts, profiles, and mentions).
Then implement the UI required to do the merging and approvals inside of Patchwork.
I would then assist other client developers in adding sameAs
merging support into their clients if they want me to :)
Why I should do this (and why I want to)
I have now had a lot of experience rendering the scuttlebutt feed in various ways, first in Ferment (my failed decentralized soundcloud alternative) and then in Patchwork v3 (the vast majority of it is my code). I am one of the primary designers and developers of Patchcore, a shared library used to split out a lot of the complexities of making sense of the scuttlebutt feeds, and I understand all of its inner workings.
I'm sick of seeing all of the old dead profiles, and would like to merge them back into their new feeds. I would like to be able to share my "follows" and "subscriptions" with other devices instead of having to manually manage this. I want other people to see all of my posts as coming from the same person.
This is something I have wanted to do for a long time, but I suspected that it would probably be a lot of work to get right, and would take some time to experiment and work through all the weird issues. Funding would motivate me to finally push through and get it done!