IndieWebCamp June 6-13, 2014

This is an automatically-generated summary of the IndieWebCamp wiki edits from June 6-13, 2014

Table of Contents

New Pages

Changed Pages

New Pages


Created by on June 10

An authorization endpoint is an HTTP endpoint that micropub and IndieAuth clients can use to identify a user or obtain an authorization code to be able to post to their website.


Using an Authorization Service

You can use an existing authorization service such as if you don't want to build your own authorization service.

Creating an Authorization Endpoint

An authorization endpoint must be able to both generate authorization codes as well as verify authorization codes.

Generating Authorization Codes

Verifying Authorization Codes


Why are auth codes verified with a POST instead of a GET

If auth codes are sent as a GET request in the query string, they may leak to log files or the HTTP "referer". The decision was made by the OAuth 2.0 working group to use POST requests and the HTTP Authorization header for sending these sensitive tokens and auth codes.

Can the authorization codes be used more than once

No, the authorization code must not be used more than once. If the code is used more than once, the authorization server must deny the request.[1] A maximum lifetime of 10 minutes is recommended for the authorization codes, although many implementations have a lifetime of 30-60 seconds.

Can I add additional parameters for the authorization request

No, but you can use the "state" parameter to encode or reference additional application-specific parameters. The state parameter will be passed around and was designed for this purpose as well as to prevent CSRF attacks.

Does the auth server have to support the state parameter

Yes, the state parameter can be used by the client to maintain state between the request and the callback, so the auth server must support it. It is also used to prevent CSRF attacks.

Software implementing the authorization endpoint spec

See Also


Created by on June 9

  • Mon, June 9 stubbed page with not very much on
  • Mon, June 9 added a bit of background
  • Mon, June 9 added section about the feed testing UI with screenshow
  • Mon, June 9 Added some more screenshots, design work

Shrewdness is a micropub-enabled reader web app, currently being developed by Barnaby Walters.

After experimenting with a flow-based-programming environment which doubled as a reader, an indieweb personal search engine and an anti-spam tool, I realised that all three things required the exact same plumbing, and that it made the most sense to build them all as one tool. That tool is Shrewdness, named after the collective noun for an aggregation of apes, as its job is going to be aggregating apes.

UI Design/Mockups

Feed reader UI mockups, created in Sketch. Main view:

Designing the bootstrapping process, welcoming new users:

Feed Testing UI

The bulk of the plumbing code for shrewdness is the indexing code which takes HTML and dices it up into neat posts which can be indexed by elasticsearch and presented as a feed. In order to test that code a UI is required which, given a feed URL, shows exactly how that feed will be parsed, indexed and displayed.

This, along with some pedagogy, could form the basis of a feed validation tool in the future.

Previous Work

A screenshot of the personal indieweb search engine I made from my link archive:

Some screenshots of the anti-spam tool which got merged in to Shrewdness:


Created by on June 11

  • Wed, June 11 Created page with "Proxies IndieAuth authorization requests to one's OpenID server. Lets you login with your OpenID server to indieauth sites. ;Code: :"
  • Wed, June 11
  • Wed, June 11

Proxies IndieAuth authorization requests to one's OpenID server.

Lets you login with your OpenID server to indieauth sites.


Indieweb enthusiasts currently using it on their own site:


Created by on June 10

Privacy is “the ability of an individual or group to seclude themselves or information about themselves and thereby express themselves selectively”. [1]

As of 2014-06, anecdotally, most of the work done by the indiewebcamp community has been focused on publishing rather than privacy, although it’s an important factor for many people here, especially as we start publishing data such as checkins and personal metrics --Barnaby Walters 07:45, 10 June 2014 (PDT)

Some sites have a privacy policy, a form of disclosure about what kind of the information the site may retain about users, their usage, and who they might share it with.

See Also


Created by on June 8

  • Sun, June 8 Created page with "A Follow is the concept of establishing a digital relationship to another person or entity so that you can receive updates from them. The verb use and action was first implemente..."
  • Mon, June 9

To follow is the concept of establishing a digital relationship to another person or entity so that you can receive updates from them over a given social media channel. The corresponding verb and action was first implemented by Twitter and then Instagram, it is now on many platforms and part of the digital cultural lexicon.

The difference between following and friending is that to follow does not require an agreement between both parties where as friending does. Following is an asymmetrical relationship, where as friending is symmetrical.

The concept of following is integral to using a reader to consume content from a website or feed. Due to the similarities of "subscribing" to an email list or blog, that should be considered. There

Permanent Follow

Performing a follow action on all platforms is a one time action done by clicking a button or entering your email address in a field and then clicking a button.

  • Twitter - follow
  • Instagram - follow
  • Mailing list - input email, click subscribe
  • Blog - subscribe (via FeedBurner / Google Reader style service)

If one is no longer interested in receiving updates from a source, they must perform an unfollow which is another manual action.

  • Twitter - unfollow
  • Instagram - unfollow
  • Mailing list - click on unsubscribe link in email, then confirm on webpage
  • Blog - unsubscribe via web interface

Temporary Follow

There is the idea of a temporary follow, which is like a normal follow, but a temporary follow automatically expires after a certain amount of time or other condition is met.

Blog comments on the WordPress platform have a rough implementation of this idea. Once one leaves a comment "follows" a thread, the WordPress platform asks "Would you like be notified of additions to this conversation?" upon selecting yes, the user is notified of follow up discussion. Aside from WordPress the only app that seems to be doing something in respect to cross platform notifications of updates to conversations is [1]

Some examples where this could be really useful are:

  • Notify people involved in a previous conversation X about new post Y that relates to X "Orignal poster has
  • Temporarily follow everyone at an event for duration of the event, then expire a week after event is complete

The first example starts to border on the territory of notifications in providing simple UI feedback to a user!


Created by on June 8

  • Sun, June 8 Stubbed page with explanation, examples, example in the wild, differentiation from other posts/response types
  • Mon, June 9 update dfn

A mention is a post which links to another post without explicitly being in response to it. In contrast, a reply, like, or repost are explicit responses to a post.

See also: webmention, the plumbing used to notify posts that they’ve been linked to

A mention is not really a “type” of post from the publisher’s perspective (i.e. there is no “mention” UI), as any sort of post which can link can implicitly be a mention, as well as potentially being in response to another post.

For example, this post is an explicit reply to this post, and at the same time an implicit mention of this URL.

Mentions typically don’t fit into comment/reply threads and therefore are often displayed separately, or in a more compact manner.

Unlike a like, a mention is not implicitly emotionally positive — a link is not always an endorsement.


IndieWebCamp Attendees displaying mentions to posts

Aaron Parecki

Aaron displays mentions to posts on in an “other mentions” section below likes, reposts and comments, as well as giving the mention count in feed views (example).

Barnaby Walters

Barnaby displays mentions to posts on inline chronologically with other responses, but in a more compact form that explicit comments, and displays mention counts in feed views (example).

See Also

Created by on June 9

  • Mon, June 9 Adds IWC wiki profile for JLSuttles


Jessica Suttles

Jessica Suttles is a co-founder of Hypernova which is making Homesteading. She lives and works in San Francisco, California.

#indieweb setup

My site ( is just a placeholder page, but will be powered by Homesteading, which is a work in progress.




Created by on June 9

pmarca is an online alias for Marc Andreessen

Marc Andreessen

Created by on June 9

  • Mon, June 9 stub since notable and Tim Bray asked for his tweets to be on his own site

Marc Andreessen blogs at and publishes other places with the username pmarca.


essay tweeting

Recently Marc is known for "tweeting" an essay by numbering sequential tweets that are part of a set.

Others have collected his sequences of tweets into essay posts:

request to use his blog

Tim Bray asked[1]:
How about someone set up a blog for @pmarca - his stuff would be way easier to read. And there’d be a persistent link to it.
specifically in the context of Marc's tweets, which he could presumably concatenate into a blog post on his blog if he wanted to.

From an indieweb perspective, why does Marc blog as a series of tweets instead of on his own blog?

blog archive

Some posts from have gone offline (404) and some have setup archives, e.g.:

see also


Created by on June 9

#indiechat is an IRC channel on for off-topic chat for the IndieWebCamp community. Unlike the main #indiewebcamp channel, the #indiechat channel is not publicly logged.


Created by on June 9

  • Mon, June 9 stub, dfn, difference from other post types, silo example Tumblr

A quotation is a type of post that includes a subset of the contents of another post, and a citation of that other post.

A quotation of the entirety of another post should be a repost instead.

A quotation which uses the name/title of another post (rather than its content) should be a bookmark instead.

IndieWeb Examples

none currently.

Silo Examples

  • Tumblr supports an explicit quotation post kind, and presents quotation posts differently from other posts. (needs screenshots using default Tumblr skin)

See Also


Created by on June 12

  • Thu, June 12 stubbed page with description, links, example

h-x-app is a proposed microformats vocabulary for marking up data about software applications.

There's a bunch of research into existing formats and potential properties over on store. See below for current, experimental usage.

IndieWebCamp Creators publishing h-x-app markup

Barnaby Walters

Barnaby publishes h-x-app markup with name, logo/photo and url properties on via Taproot, also marked up as h-product, to provide basic information about the Note Posting UI to authorization UIs.

See Also


Created by on June 12

h-product is a microformats2 vocabulary for marking up product information on the web.

Currently Taproot’s micropub note-posting UI is marked up with h-product and the WIP h-x-app vocabulary to allow authorization UIs to show app details. h-product was the closest matching existing microformats vocab and so will do as a stop-gap as h-x-app is researched.

See Also

Changed Pages


8 edits by,
  • Tue, June 10 /* Web Sign-In Form */ add img
  • Tue, June 10 /* Authorization Endpoint */ clarify directing the user to the auth endpoint with a Location header or link
  • Wed, June 11 /* Request */
  • Wed, June 11 /* Authorization Endpoint */
  • Wed, June 11 /* Request */
  • Wed, June 11 /* Request */ scope not used here
  • Thu, June 12 /* The Redirect URI */ redirect uri verification
  • Thu, June 12 /* Redirect URI verification */


6 edits by
  • Tue, June 10 add more event background and details
  • Tue, June 10 /* Sponsorship */ reorganize sponsor amount sections
  • Tue, June 10 /* Sponsorship */ add details about sponsorship levels
  • Tue, June 10 /* Sponsorship */ add $ to the table
  • Tue, June 10 /* Sponsorship */ capitalize sentences
  • Wed, June 11 add link to PDF


4 edits by,
  • Mon, June 9 -h1, fix dfn, IndieWeb Examples,
  • Mon, June 9 IndieWeb Examples subsections for each person, add ????-??-?? since dates as placeholders for implementation dates
  • Mon, June 9 /* Aaron Parecki */ add date I started hosting my own bookmarks
  • Mon, June 9 Similar Post Kinds, Reply, Repost, Quotation distinctions, when a bookmark should be one of the others instead.

2014/Guest List

4 edits by,,,


4 edits by
  • Fri, June 6 subheadings for post types supported to make it easier to link to them, clarify reply support to indicate multireply support as workaround for replying to an indieweb post and POSSE threading a reply
  • Sat, June 7 /* Storage format */ u-in-reply-to hrefs are read from storage
  • Sun, June 8 new itch: simple repost of tweets support
  • Sun, June 8 /* simple repost of tweets */ link Twitter retweet API


3 edits by,
  • Sun, June 8 /* IndieWeb Implementations */ OwnYourGram!
  • Sun, June 8 /* Criticism */ add bad silo interop
  • Fri, June 13 /* Criticism */ notes about privacy of location data in instagram photos with screenshots


3 edits by
  • Wed, June 11 /* IndieWeb Examples */
  • Wed, June 11 /* Why does IndieAuth not consume OpenID? */
  • Wed, June 11 /* Why does IndieAuth not consume OpenID? */


3 edits by,
  • Tue, June 10 /* Web Sign-In Form */ add img
  • Wed, June 11 /* Summary */ add "scope" to request for the authorization example
  • Thu, June 12 /* Authorization */ clarified details about client_id, h-product and h-x-app, app identification


3 edits by
  • Sun, June 8 add criticism and stub archive section
  • Sun, June 8 add docs on how to archive a pbworks site to flat files
  • Sun, June 8 /* How to Archive */ explicitly note that permalinks stay intact


3 edits by
  • Tue, June 10 redo headers and add section for verifying an access token
  • Tue, June 10 /* Verifying an Access Token */
  • Tue, June 10


3 edits by


3 edits by,,
  • Tue, June 10 /* h-entry */ sending location with a note
  • Tue, June 10 /* h-entry */ add example geo URI
  • Thu, June 12 /* Clients */ added info about Taproot h-x-app h-product markup


2 edits by
  • Wed, June 11 /* Protocols */ h-product is a vocab, not a protocol
  • Wed, June 11 /* Vocabularies */ criticism of DOAP site


2 edits by


2 edits by,
  • Sat, June 7 /* More status codes */ add 202 if the status is checked while still queued
  • Wed, June 11 /* Publishing Software */


2 edits by
  • Sun, June 8 /* Problems */ Fatal Error memory exhausted
  • Sun, June 8 /* Fatal Error memory exhausted */ e.g. on

IRC People

2 edits by,


2 edits by,

Amazon S3

1 edits by
  • Mon, June 9 date edge S3+Cloudfront usage and billing


1 edits by
  • Mon, June 9 documented location derivation algorithm

1 edits by


1 edits by
  • Mon, June 9 /* How To Consume */ linked to h-entry consumption

web hosting

1 edits by


1 edits by
  • Mon, June 9 improve dfn, separate reposting dfn, why


1 edits by
  • Sun, June 8 /* Kinds of Posts */ added implicit mention


1 edits by
  • Sun, June 8 replaced redirect with disambiguation


1 edits by
  • Sun, June 8 /* Archive a Site */ better flags for wget to archive a site, and add sample nginx config to serve an archive


1 edits by


1 edits by
  • Fri, June 6 add Silo Implementations section with Google Search


1 edits by
  • Fri, June 6 /* Dead Silos */ add


1 edits by
  • Mon, June 9 incorporate overview into definition, move TOC down


1 edits by
  • Mon, June 9 put IndieWeb Examples first, expand into subsection per person, clarify some more difference from photo


1 edits by


1 edits by
  • Mon, June 9 /* Using h-entry */ linked to h-feed consumption algorithm, fleshed out per-h-entry algorithm with link to comment-presentation, datetime determination process, stubbed algorithm for handling updates, issues section w/ comment merge issue


1 edits by
  • Tue, June 10 add "shutdowns" section and note


1 edits by

remote participation

1 edits by


1 edits by


1 edits by
  • Fri, June 13 dfn, separate examples sections, see also


1 edits by
  • Fri, June 13 add info about location privacy


1 edits by


1 edits by


1 edits by
  • Wed, June 11 /* OpenID support */ mention indieauth-openid


1 edits by

private posts

1 edits by


1 edits by
  • Tue, June 10 /* Web Sign-In Form */ add img


1 edits by

1 edits by


1 edits by

Main Page

1 edits by
  • Tue, June 10 /* Homebrew Website Club */ -London, +Minneapolis


1 edits by


1 edits by
  • Mon, June 9 add sample on how to do url redirect routing