On Friday 2019-10-25 I participated inRedecentralize Conference 2019, a one-day unconference in London, England on the topics of decentralisation, privacy, autonomy, and digital infrastructure.
After giving a3 minute lightning talk, I helpedKevin Marksrun a session in the first time slot of the “unconference” portion of the day. I participated in two more sessions, and gave a closing statement in the end of day circle. This post is from the Etherpad session notes and my own memory recall from three days ago.
Kevin Marks started the session by having me bring up the tabs that I’d shown inmy lightning talk earlier, digging into the specifications, tools, and services linked therein. Participants asked questions and Kevin & I answered, demonstrating additional resources as necessary.
IndieWeb Profiles and IndieWebify
One of the first questions was about how do people represent themselves on the IndieWeb, in a way that is discoverable and expresses various properties.
Kevin described howthe h-card standardworks and is used to express a person’s name, their logo or photo, and other bits of optional information. He showed his own sitekevinmarks.comand asked me to Show View Source to illustrate the markup.
Next we showedindiewebify.mewhich has a form to check your h-card, show what it found and suggest properties you could add to your profile on your home page.
Checking microformats and JSON output
From the consuming code perspective, we demonstrated themicroformats2 parser at microformats.iousing Kevin’s site again. We went through the standard parser JSON output with clear values for the name, photo, and other properties.
Similarly we took a look at one of my posts parsed by microformats.io as an examle of parsing anh-entryand seeing the author, content etc. properties in the JSON output.
IndieWeb Standards, W3C Micropub Recommendation & Test Suite
Next we walked through theoverview of IndieWeb specificationsthat I’d quickly mentioned by name in my lightning talk but had not explicitly described. We explained each of these building block standards, its features, and what user functionality each provides when implemented.
In particular we spent some time on theMicropub living standardfor client software and websites to post and update content. The living standard editor’s draft has errata and updates from theofficial W3C Micropub Recommendationwhich itself was finished using theMicropub.rockstest suite & implementation results used to demonstrate that each feature was interoperably implementable, by several implementations.
Lastly we noted that many more Micropub clients & servers have been interoperably developed since then using the test suite, and the importance of test suites for longterm interopability and dependable standards in general.
IndieWeb Events & RSVPs
Kevin used his mobile phone to post anIndie RSVP postin response to theIndie Event postthat I’d shown in my talk. He had me bring it up again to show that this time it had an RSVP from him.
Clicking it took us toKevin’s Known sitewhich he’d used to post the RSVP from his mobile. I had to enable JavaScript for the “Filter Content” dropdown navigation menu to work (It really should work without JS, via CSS using googleable well established techniques). Choosing RSVP showed alist of recent RSVPs, at the top the one he’d just posted:RSVP No: But I do miss it.
We viewed the source of the RSVP post and walked through the markup, identifying thep-rsvp
property that was used along with theno
value. Additionaly we ran it throughmicroformats.ioto show the resulting JSON with
the"p-rsvp"
property and"no"
value.
IndieWeb Identity, Signing-in, and IndieAuth
As had been implied so far, the IndieWeb built upon the widely existing practice of using personal domain names for identity. While initially we had used OpenID, early usage & implementation frustrations (from confusing markup to out of date PHP libraries etc.) led us down the path of using the XFNrel=mevalue to authenticate using providers that allowed linking back to your site. We mentionedRelMeAuthandWeb Sign-inaccordingly.
We used yet another form onindiewebify.meto check therel=me
markup on KevinMarks.com and my own site tantek.com.
As a demonstration I signed out ofindieweb.organd click sign-in in the top right corner.
I entered my domainhttps://tantek.com/and the site redirected to Indie Login authentication screen where it found one confirmed provider, GitHub, and showed a green button accordingly. Clicking the green button briefly redirected to GitHub for authentication (I was already signed into GitHub) and then returned back through the flow to IndieWeb.org which now showed that I was logged-in in the top right corner with tantek.com.
To setup your own domain to sign-into IndieWeb.org, we showed thesetup instructions for the IndieLogin service,
noting in addition torel=me
to an OAuth-based identity provider like GitHub, you could use a PGP public key. If you choose PGP at the confirmed provider screen, IndieLogin provides challenge text for you to encrypt with your private key and submit, and it decrypts with your public key that you’ve provided to confirm your identity.
Popping up a level, we noted that the IndieLogin service works by implementing theIndieAuth protocolas a provider, that IndieWeb.org uses as a default authentication provider (sites can specify their own authetication providers, naturally).
Andre (Soapdog) asked:
How do I add a new way to authenticate, like SecureScuttleButt (SSB)?
The answer is to make an IndieAuth provider that handles SSB authentication. Seethe IndieAuth specificationfor reference, however, first readAaron Parecki's article on "OAuth for the Open Web"
Social Readers and Microsub
Another asked:
How does reading work on the IndieWeb?
From the longterm experience with classic Feed Readers (RSS Readers), the IndieWeb community figured out that there was a need to modularize readers. In particular there was a clear difference in developer expertise and incentive models of serverside feed aggregators and clientside feed readers that would be better served by independent development, with a standard protocol for communicating between the two.
TheMicrosub standardwas designed from this experience and these identified needs. In the past couple of years, several Microsub clients and a few servers have been developed, listed in the section onSocial Readers.
Social Readers also build upon the IndieAuth authentication standard for signing-in, and then associate your information with your domain accordingly. I demonstrated this by signing into theAperture feed aggregator(and Microsub server) with my own domain name, and it listed my channels and feeds therein.
I demonstarted adding another feed to aggregate in my "IndieWeb" channel by enteringKevin Marks’s Known, choosing its microformatsh-feed, which then resulted in 200+ new unread items!
I signed-into theMonoclesocial reader which showed notifications by default and a list of channels. Selecting the IndieWeb channel showed the unread items from Kevin’s site.
Does this work with static sites?
In short, yes. The IndieWeb works great with static sites.
One of the most common questions we get in the IndieWeb community is whether or not any one partcular standard or technique works with static sites and static site generator setups.
During the many years on theW3C Social Web Working group, many different approaches were presented for solving various social web use-cases. So many of these approaches had strong dynamic assumptions that they outright rejected static sites as a use-case. It was kind of shocking to be honest, as if the folks behind those particular approaches had not actually encountered the real world diversity of web site developers and techniques that were out there.
Fortunately we were able to uphold static sites as a legitimate use-case for the majority of specifications, and thus at least all the W3C Recommendations which were the result of incubations and contributions by the IndieWeb community were designed to support static sites.
There are couple of great reference pages on the IndieWeb wiki for static site setups:
In addition, there are IndieWeb pages for any particular static site system with particular recommendations and setup steps for adding support for various IndieWeb standards.
Kevin also pointed out that his home pagekevinmarks.comis simple static HTML page that uses the Heroku Webmention service to display comments, likes, and mentions of his home page in the footer.
What Next: Join Chat & IndieWebCamps!
As we got the 2 minute warning that our session time was almost up we wrapped up the session with how to keep the conversation going. We encouraged everyone to join the online IndieWeb Chat which is available via IRC (Freenode #indieweb), Slack, Matrix, Discourse, and of course the web.
See:chat.indieweb.orgto view today’s chats, and links to join from Slack, Matrix, etc.
Lastly we announced the next two IndieWebCamps coming up!
- Nov 23-24:IndieWebCamp Berlin2
- Dec 7-8:IndieWebCamp San Francisco
We encouraged all the Europeans to sign-up for IndieWebCamp Berlin, while encouraging folks from the US to sign-up for San Francisco.
With that we thanked everyone for their participation, excellent questions & discussion and look forward to seeing them online and meeting up in person!