So I'm keeping this as a fairly general, high level topic.
I'm a member of the W3C Social Web Working Group and the Social Web Incubator Community Group. And there are a number of specs the Working Group has come out with. There are various bits an pieces that can be used separately but I figured it would be good to give some background on them and some of the discussion that is happening. Would love feedback.
First off, the specs from the Working Group.
ActivityStreams 2 https://w3.org/TR/activitystreams-core/
This is essentially a way of expressing activities that happened as a JSON feed. It covers just about anything you could want and has an extension mechanism to allow for custom things outside of it. Currently it doesn't have a lot of usage, but there is certainly interest in it.
Webmention https://w3.org/TR/webmention/ A much simpler version of linkback, its essentially a method to just notify a specific URL that you have an update for it. Usually this is for letting URLs know of a reply to them. Currently used by indieweb, Known, Micro.blog, and a handful of other implementations. It also has a Salmention extension that is effectively a much simpler implementation of the salmon protocol
Micropub https://w3.org/TR/micropub/ This is a client to server API, Again, heavily used in the indieweb and some others. It uses microformats vocabulary to post and optionally update and delete, posts.
ActivityPub https://w3.org/TR/activitypub/ This is a new spec developed within the working group and getting heavily reviewed within the community group now which does include several projects. It has two parts, both a client to server and server to server part.
WebSub https://w3.org/TR/websub/ This is a cleaned up version of PubSubHubbub 0.4. PuSH was never specified under the W3C so it has been an effort to not break any existing PuSH 0.4 implementation but still provide some clearer specification to it. Mastodon should already be compliant.
Outside of the WG, there are other parts
Microformats http://microformats.org/wiki/microformats2 this is sort of the counterpart to ActivityStreams. It involves adding classes to the displayed content on the page, so you don't repeat yourself. This is already in place on every mastodon post and is on Friendica, Hubzilla, pump.io, gnu social, Known, micro.blog, and the growing list of indieweb implementations. Pretty much everyone except diaspora.
Webfinger this is what sort of led me here today as it seems to be the first place to work on future endeavors. As I understand it there were some issues with needing to rate limit the webfinger endpoint, and many dislike the amount of indirection needed for it. The biggest issue has been getting this to work for the other half of the social world that doesn't use acct:// for user identities. The indieweb uses just URLs for identitiy. So aaron.pk or ben.thatmustbe.me. One option is to add some fake bit to the beginning, like email@example.com, or firstname.lastname@example.org. Gets pretty redundant. And then the issue is that a person has two different ways to refer to them, if you telling someone using Known how to refer to you, it has to be your URL, if its someone on Mastodon, its another way. The other issue is that some people don't even have access to the .well-known folder on their server. This can be a huge limitation for them sadly.
So I was hoping to start here. Can everyone give some general feedback of webfinger.
Does it do everything you need?
Why did you have to rate limit it?
Are there any problems you have with it?
Do you have any ideas on alternative ways this could work? For example, I could see being able to look up users by either @email@example.com, @domain.com (if its a single user domain, or @domain.com/user, etc. Then as long as the account is fetched in the same way (either parsing out the microformats from that page, or use content negotiation to get an alternative formats), you would be good to go.
Sorry for the long post, just wanted to get anyone who cares up to speed.
Originally Posted at https://discourse.joinmastodon.org/t/federation-with-social-web-in-general/352