IndieWeb
The IndieWeb (short for "independent web") is a movement that aims at making the web more independent and decentralised again with a focus on people using their own sites instead of walled gardens. The idea is that by using open standards, sites can all be a part of the same unified social network regardless of what software they use - even static HTML sites can be a part of the IndieWeb. The IndieWeb is a community of individual personal websites, connected by simple standards, based on the principles of owning your domain, using it as your primary identity, to publish on your own site (optionally syndicate elsewhere), and own your data.
Your content is yours: When you post something on the web, it should belong to you, not a corporation. Too many companies have gone out of business and lost all of their users’ data. By joining the IndieWeb, your content stays yours and in your control.
You are better connected: Your articles and status messages can go to all services, not just one, allowing you to engage with everyone. Even replies and likes on other services can come back to your site so they’re all in one place.
You are in control: You can post anything you want, in any format you want, with no one monitoring you. In addition, you share simple readable links such as example.com/ideas. These links are permanent and will always work.
Bidirectional referral
One important standard for the IndeWeb is to use bidirectional rel="me" links to prove that different sites are all referring to the same person. If one of the sites in the group is an IndieWeb authentication provider, then any sites that support IndieAuth can find the authentication provider and log the user in to the site. The authentication provider could be one of the OAuth silos like Twitter or Github, or it could be one of your own sites.
Implementing IndieAuth
You can implement IndieAuth yourself very easily, for example using the SelfAuth PHP library, and testing your site's IndieWeb auth capability at indielogin.com. First link all the sites that represent you together with rel="me" links - these are just normal links from one site or profile page to another, but with the rel="me" attribute in the link element.
Then in the site that you've chosen to be your IndieAuth provider, you can unpack the latest version of SelfAuth into the root of the domain for that site for example in a directory called auth, and making sure that requests to that directory are routed to it's index.php file. I had to use a Nginx rewrite rule in the site's server block for this as follows:
rewrite ^/auth/$ /auth/index.php last;
And then in the home page for the IndieAuth provider site, an invisible link in the HTML is required that links to the web location of SelfAuth library, in this case the auth directory, with a rel="authorization_endpoint" attribute so that IndieAuth consumers know what login URL to use.
<link rel="authorization_endpoint" href="https://organicdesign.nz/auth/" />