📕 subnode [[@maya/indieweb agora]] in 📚 node [[indieweb-agora]]

How would you do the stuff the Agora is doing but with moar [[Indieweb]]?

This isn't to say I think it should be done this way, particularly because the amazing thing that's been built exists and works, but I think it's fun to imagine how the Indieweb principles and primitives could build up a similar thing to the good stuff we've got going here.

the relevant principles, which, since this is sort of a technical doodle of an idea, I am not going to bother linking:

canonical version of a thing is that independently hosted by a person on their own setup.

This is the only dead necessary thing for a really Indiewebby beginning. An option for that hosting could be provided by the Agora for convenience, but the key is that all the integration has to presume it might be, you know, some [[Wordpress]] thing somewhere.

metadata.... markup.... something.

I'm too young to have the real context on all this stuff, to be frank, but something starting here. I think they word this "🔍 Use & publish visible data for humans first, machines second. See also DRY." This tends to mean favoring an approach of having the published thing be the canonical thing rather than sharing the pre-rendered format, I think.

the relevant primitives

webmentions

The "hey I have a link on my page to you" protocol. Doesn't have to just be used for likes or replies -- can also indicate an intent for syndication or permission to aggregate. (Also a bunch of stuff that probably seemed more compelling when San Francisco people were really into Foursquare, I guess)

microformats2 (mf2)

Indieweb people seem to like JSON and HTML. A lot of people getting very excited over JSON feed and h-feed type stuff. A cause/effect is that the microformats2 parsers can do a decent amount to provide you with workable data from the ordinary chaos of HTML markup.

so how could you glue this together

Let's say you're trying to figure out how your HTML page can make itself parseable and hooverable-uppable by the Agora.

You'd start with an h-entry.

In order to signal to the Agora to include your node, you'd send a webmention. A webmention needs a link. What kind of link?

You could have a "u-in-reply-to" link to your relevant Agora instance's relevant node, but I'm really unsatisfied with that as the semantics aren't quite right. Maybe roll with a custom property to denote "this linked node is the 'node id' of this piece of content". You could have a number of different aliases linked -- anagora.org/backyard-chickens, anagora.org/backyard-poultry, anagora.org/small-scale-poultry -- if you wanted to have your subnode show up under more than one, maybe?

That gets you simple topic inclusion, but the equivalent of linking to anagora.org/@vera/ruby such that the links within the agora display would navigate right gets dicier. The tricksier bit about how it would have to work is that you'd have to parse out the graph via links to the canonical entries. So instead of linking to anagora.org/@vera/ruby, if she had her own stuff on her own site, I'd be linking to her node there -- and then the agora would recognize it as an internal link because she'd also be webmentioning that page into the agora. Similarly, if I wanted to link from one page of my own to another and they both were syndicated into the agora, the agora could display the links as internal and pointing to the node, not going back to the external internet. (Should it point to my own subnode, or should a self link be presumed to route to the topic node? I can see arguments either way) (All of this would require mf2 markup all over everything specifying canonical links etc. etc. etc.) I'm realizing if you wanted to do that link rerouting you really wouldn't want to do the straight iframe transclusion, but mf2 gets the HTML also so you could work from that. (How the hell do you sanitize HTML input? Oh my god the things I have never had to deal with in my job) Slap a whostyle on it and call it good, maybe? ;)

📖 stoas
⥱ context