There has been only a small amount of talk about this previously, but I wanted to bring up discussion of Federation with IndieWeb. This includes all the installs of Known, Micro.blog, and a number of other smaller sites (some 2300). There are several pieces to this.
Currently (as far as i can tell), the minimum requirements for following people are listed here https://github.com/tootsuite/mastodon/issues/1441#issuecomment-302969948
I think it would be useful to allow multiple options for these. h-feeds are pretty well established across all the independent social media sites, so it would be great to be able to use this instead of atom/activitystreams.
Instead of webfinger depend only on existence of an h-card on the url provided. This part would take some working out to figure out how to properly reference the user. My personal preference would be to allow a blank username, so @ben.thatmustbe.me for example, or @@ben.thatmustbe.me.
Require either a salmon endpoint or a webmention endpoint. Webmention is much simpler of a spec and so it has a significant preference for many of the developers.
Along with the last item, we would want to actually send and receive webmentions to actually reply to others and get replies back.
Thoughts on this? How can we take it in smaller steps?
In yesterday's Social Web Incubator Community Group telcon, I brought up the issue of WebFinger. The current implementations have had some differences in how they are implemented. Also there are several limitations to it. Its important to investigate what people are doing and what changes they would be open to.
First of all, I would appreciate some feedback about what exactly your project supports, and second I would like to guage interest in implementing some extensions to it. Anything written to replace it would hopefully still support the existing account structure.
First, What characters do you allow in User Names on your local system? What do you allow for federated user accounts. For example some systems do not let you enter a period in the username, but will accept those that do when federating. Do you allow foreign characters in your account names? Emoji?
What do you allow after the @ sign in remote accounts? Is it only domains? (your software must be installed at the root domain) subdirs? subdomains (I would assume everyone does, but best to check). And again, what do you support for federated accounts. Some systems already allow installs in to subdirectories. If you do support subdirs, how do you reconcile this with webfinger lookup? Is it just looking for the .well-know directory inside of that directory?
My current line of thinking is to extend webfinger with a simpler discovery mechanism such as maybe looking up just fetching template at the location given (haven't determined that part yet). One of the goals of this is to support subdirectory installs and single user domains, or really just plain URLs, but there has to be a mapping between a URL and an account identifier. This creates a few more questions
Do you use @
What do you think of extending the domain section to actually be a full url path so @www.exampleuniverity.edu/~ben/mysocialapp?
Any other feedback or issues you would like to bring up with the functionality and use of webfinger?
Thank you in advance for any response you give, all feedback is appreciated.
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 firstname.lastname@example.org, or email@example.com. 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 @firstname.lastname@example.org, @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