An Idea on Following People (or Organizations or Whomever) in the IndieWeb for Lwa

After a bit of discussion in the IndieWeb channels (start here and end about here), I think I have an idea on how I want Lwa to handle "people". Tantek made a good point about optimizing the experience to follow people (or any sort of "entity" that isn't specifically a site) - that's a behavior people are familiar with and it's natural. This got me thinking about how I want this to look in my social reader.

Setting up the Environment

This requires a bit of contextual setup - where would someone find someone to "follow"? I'll optimize this to be in the case of someone who's already logged into Lwa (which assumes that they have a IndieWeb site) and are already following some people.

A preview of a post in Lwa.

From the screenshot above, I can think of the following ways to follow someone from this screenshot of a post in the feed for Lwa:

  • Adding a button next to the post-type icon to follow the person.
  • Adding a pop-over modal that'd provide a "best-effort" representation of the entity that made that post.
  • Providing an intent to follow page that'll provide information on that user

The first two can be collapsed into a on-page experience that'll present some information about the content's author via a modal of some sorts. Ideally, that'll have information about them (name, photo and whatever else is semantically relevant). There, we can have a page that'll heads to the "intent to follow" page mentioned in the last step. This is where things get a bit interesting.

An Intent to Follow

The intent to follow page will be vital. I haven't built one yet but it'll be something that'll combine the following sources of data:

  • a "best effort" representation of the author
  • conditionally presenting the post that brought us here
  • a way to view the multiple feeds presented by the author

I'm thinking about making this page accessible by either providing the author URL itself or the contextual post to show. The latter will be something that helps people just finding content. The method of composing the author representation will be something of a collection of the following with (unspecified) weights:

  • fetching rel=me information from the provided URL
  • fetching the representative h-card of the URL
  • opting to use Microformats over anything else when it's available (specifically, Microformats, Activity Streams and then whatever is left over)

Building a list of the feeds for this user would be done the same way. One thing that'll help with optimization of these feeds is, in the event that they have a Microformats2 site, we can collapse syndicated posts into the site's post so the feed doesn't look too noisy. With these feeds collected, we can do some light metrics crunching about post frequency, the average interaction rate (if any) for posts in a feed. With that, we can give the user in question a choice of what feed that they'd like to follow (and into which channel). I don't have an immediate mock-up of that page but I can see it being a mix of Twitter's user profile pages and the now-defunct Twitter intent-to-follow pages. There's a case to be made to allow for a "catch-all" channel for people to use but I think I'll make that an opt-in function of Lwa; having such a thing tends to enable more lock-in.

I'll make another post once I get around to the demo of this feature in Lwa. For now, I'm down to get feedback about such a flow!