IndieWebCamp July 4-11, 2014

This is an automatically-generated summary of the IndieWebCamp wiki edits from July 4-11, 2014

Table of Contents

New Pages

Changed Pages

New Pages


Created by on July 10

  • Thu, July 10 stub from discussion, analysis, current real world examples
  • Thu, July 10 /* IndieWeb Examples */ link to specific kylewm post and POSSE copy demonstrating use of his nicknames-cache
  • Thu, July 10 /* Easier Person References When Writing */ link to expanded POSSE to Twitter explanation

A nicknames cache is a way indieweb sites store information about people to improve the user experience of the site owner referring, mention, and/or linking to those people.


Use Cases

Easier Person References When Writing

When creating a post, being able to type merely a given-name, or @-handle, or even domain name that represents a person, and have your site automatically convert that reference:

  • on your post on your site: a mini-h-card hyperlinking the person's full name to their domain
    • or perhaps the person's given-name inside an abbr element which has the full name
  • in a POSSE copy
    • on Twitter: the corresponding @-name for that person (per Twitter#POSSE_to_Twitter step 4. translate indiewebsite people references)
    • on Facebook: the corresponding profile-link (person-tag) reference for that person

Better Person Icon Display

When displaying a reply-context or a comment or other interaction (likes, reposts) e.g. in a facepile, it's better to:

  • retrieve the icon of the referring person from a nickname cache

Rather than have to:

  • Retrieve the icon URL dynamically from an h-card on that person's site
    • disadvantage: slower, less responsive, more code
  • Retrieve the icon URL from your own storage of the reply / interaction
    • disadvantage: less reliable, icon URLs change
  • Retrieve the icon image itself from your own storage of the reply / interaction
    • disadvantage: storage space: requires copying and storing likely many duplicate copies of the same icons of people for every such reply / interaction
    • disadvantage: showing a dated/old icon of the person (one they may no longer want to publish)

IndieWeb Examples

Storage Model

Typically a flat list of items at least with:

  • person full name
  • shortname / given-name (what the author of a post would type to refer to the person)
  • domain name
  • @-name
  • icon URL

And potentially also:

See Also


Created by on July 8

Bittorrent Sync is a proprietary Dropbox replacement/alternative. It is different than most dropbox/box services in that it is distributed and central servers are optional, but are used to speed up peer discovery. Files are synchronized between devices directly or through a public relay server. Shared folders are connected using secret keys. There are a read only keys and read/write keys as well as one time only keys of both flavors for transmitting to someone over an insecure connection.

Because there are no central servers, uncommon connection strategies are required for reliable peer connections:

  • A bootstrapping server for finding peers (known as a tracker).
  • A relay server for peers that cannot make a direct connection.
  • Local peer discovery over the LAN
  • Peer Sharing.
  • DHT (distributed hash table) peer discovery for trackerless peer discovery.
  • NAT-PMP/UPnP For automatic port forwarding.
  • A trust system based on secret keys instead of passwords and accounts.
  • Uses bittorrent as the transfer mechanism so the more peers/devices you have, the faster speeds you can achieve.

All strategies come preconfigured and can be disabled individually or customized to use custom tracker or relay servers.


Created by on July 5

IndieWebCamp 2014 Berlin

Saturday, June 28, 2014


Overview & history of the Indie Web movement – Why an Indie Web?

approach, dogfooding

Current apps & projects

What you currently use / pain points

  • Brennan: Social Igniter posting to Twitter,, Facebook, IRC, email
  • Jan: mostly Email, Github, IRC, ownCloud. Some Textsecure/SMS, Twitter,
  • Malte: mainly Email, IRC, Diaspora
  • Joe: Medium
  • Garret: mostly Github, IRC. Facebook with friends, some Foursquare
  • Diego: mostly Facebook and Twitter, email, Github
  • Joachim: problem that most networks are very quantitative than qualitative. Working on Jolocom
  • Christian: removed entries from every social network 2 years ago. Problem: getting judged by others on posts and superficial aspects. Their inability to present diversity in a character. Inability to - at least easily - push only relevant info to the relevant people (groups are not sufficient) Also working on Jolocom
  • Jon : all of them. federation and transclusion missing everywhere

Of the current "silos" what do you use?

  • Facebook DR, BN, GA, JL, JR
  • Twitter DR, JC, BN, GA, JL, JR
  • Github: JC, BN, GA, DR, JR
  • Tumblr
  • Instagram

What you would want (ideally)

What is your ideal publishing platform for a more open, decentralized, free, and IndieWeb in one sentence

  • bnvk: a way to collaboratively organize events & calendars using IW protocols
  • jancborchardt: a simple unified cross-platform messaging tool
  • almereyda: flow charts of POSSE and PESOS and Bridgy and Webmention
  • DR: Promote POSSE and give people tools to became owners of their own identity.
  • AS: a tool that properly reads my mind
  • Joachim: More qualitative networks. Everyone could have their own mini-platform. Try to prevent overflow of information
  • Christian: Less noise, not cluttering people’s attention. Something which is personally tailored

What can you do?

=== Ideas for platforms & tools**

Funding models



Created by on July 11

  • Fri, July 11 Created page with " - An authentication library for Node.js Michael Owens is working on an IndieAuth authentication strategy for Passport to enable faster implementation of In..."
  • Fri, July 11 stub, dfn, see also

Passport (capitalized) is an authentication library for Node.js.

Michael Owens is working on an IndieAuth authentication strategy for Passport to enable faster implementation of IndieAuth in Node.js:

See Also

Created by on July 11

Here I will describe my SSL setup for


Basics runs on Nginx with a certificate from I have received high scores from SSL Labs which can be viewed at


Nginx Configuration

Below is my SSL/HTTPS related configuration found in the http block of nginx.conf for More information about them might be found at

http {
    # Prefer server ciphers over client ciphers, which hopefully will make use of
    # the stronger ciphers I've selected over potentially weaker ciphers the
    # browser might specify.
    ssl_prefer_server_ciphers on;
    # This list of ciphers is the strongest available that I've been able to come
    # up with which support forward secrecy and are compatible with as many clients
    # as possible.
    # SSLv3 is required in order to support Java6 with this configuration.
    # All other clients should be using TLS.
    ssl_protocols TLSv1.2 TLSv1.1 TLSv1 SSLv3;
    # Share the session cache between all worker processes.
    ssl_session_cache shared:SSL:10m;
    # Sessions last for 10 minutes (default is five minutes).
    ssl_session_timeout 10m;
    # File containing DH Parameters, used for ECHDE ciphers. To create the file: 
    # openssl dhparam -outform pem -out dhparam4096.pem 4096
    ssl_dhparam /etc/ssl/dhparam4096.pem;

Host Specific Configuration

This is the host specific configuration, I keep it in the file /etc/nginx/sites-available/ and it is symlinked to /etc/nginx/sites-enables/ Only the SSL/HTTPS related directives are included here.

server {
    # Apply these directives to HTTP on port 80. Basically all I'm doing here is
    # forcing the connection to HTTPS on port 443.
    listen 80;
    # will never support a www subdomain.
    # Use HSTS to specify should be connected to via HTTPS only.
    add_header Strict-Transport-Security "max-age=31536000";
    # A 301 redirect for clients not supporting HSTS.
    return 301 https://$host$request_uri;   

server {
    # Support connections with SSL and SPDY.
    listen 443 ssl spdy;
    # Once again, will never support a www subdomain.
    # Use HSTS to specify should be connected to via HTTPS only.
    add_header Strict-Transport-Security "max-age=31536000";
    # Enable SSL for this server.
    ssl on;
    # Certificate chain. The format is described in the nginx documentation:
    ssl_certificate /etc/ssl/;
    # Specify the private key for Remember to ensure permissions and 
    # ownership of the private key are restrictive.
    ssl_certificate_key /etc/ssl/;
    # Enable stapling of OSCP responses by the server.
    ssl_stapling on;
    # Verify OSCP responses.
    ssl_stapling_verify on;
    # Trusted CA certificates used for OSCP. Once again, refer to nginx docs:
    ssl_trusted_certificate /etc/ssl/;


Created by on July 5

  • Sat, July 5 new doc for {{section-stub}} template

This template is used to indicate a section is incomplete and encourages people to expand it. It should be placed at the top of the page.

If a section seems thorough to you (and you consider yourself fairly knowledgeable on the subject and thus capable of reasonably determining as much), feel free to remove the {{section-stub}} template code.

Blank Template

Copy and paste:



This template has no parameters.


Including this template code:


Will generate:


Created by on July 5

Business & the Indie Web


Who's trying to make money at it?

  • IndieBox: HW +
  •  ? advertising revenues
  • Achangeiscoming: custom sites/consulting, hosted sites
  • hosted sites, "homesteading box"
  • known: services (with some licensing/custom work)

Who's moving first, and why?

  • for those people, which aspects of the indieweb are the most valuable

Known's perspective

individuals who have some reuptational/financial connection to what they're publishing. journalists are an example (Known's low-hanging fruit).

media organizations: groups of people who are producing content, some of which will be published. right now, they're mostly doing it via email. "enterprise indieweb" [since you're going across servers anyhow, the firewall doesn't add that much complexity]

complications: lots of customization is required to match their workflow; the orgs have in-house dev teams. if the journalists don't own the content themselves (that is, it's owned by the media company), how is this "indieweb"? in this case it's the corporation's benefit. today they're giving a lot of ownership (and interaction with audience) to Facebook or tumblr etc.

non-profits, citizen scientists, political parties: complex notions of what information is public, want to maintain ownership of data

known is finding it very challenging to sell in the pure public situation -- people see wordpress or hootsuite (depending on which aspect of the problem they're looking at) as having solved the problem well enough

Shane: we're all people who build individual websites. How do people who do their own websites make money? Something I've been noodling with, on my site there's a "products" session. it's not a separate post type (e.g. they're videos), they have a few additional bits -- licensable, sales price. how can all of us in this room make money from content that we'd otherwise post? (e.g., charging to reuse content -- creative commons non-commercial).

cashmusic is one model

patreon and gittip are another approach.

elgg: grew organically. did it for education originally, gradually expanded. the key was not to be prescriptive about what people used it for -- whatever they did, we'd support it. bootstrapped it. got a lot of money out of education (recurring revenue for support), web shops (paid for support, and also to be official partners)

squarespace is an example of a company that makes it ridiculously easy to get a site up. (although they're not indieweb-ish)

Diaspora: an example of tying in with news-related


Conclusion: those of us who are interested in making a business of this, stay in touch!


Created by on July 5

Micropub is for roughly using an interface that you didn't build to post to your site.

IndieAuth is used for auth access.

Minimal Example

POST /micropub HTTP/1.1
Content-type: application/x-www-form-urlencoded
Authorization: Bearer XXXXXXX

curl -d h=entry -d "content=Hello World" -H "Authorization: Bearer XXXXXXX"

Your website becomes an OAuth 2 provider in the process.

Reference implementation:

In the <head> of: Delegates auth endpoint to IndieAuth

<link rel="authorization_endpoint" href="">

Delegates token endpoint:

<link rel="token_endpoint" href="">
<link rel="micropub" href="">

Quill (Micropub posting app in this case) stores that auth token to post to each time.

Not going into details but they are here:

Why is it h=entry and not type=entry? Aaron says he didn't want to use something that might be a field in an entry. H is indicator of microformats stuff. "type" might conflict with a property of the object

You can use or build it yourself for the auth endpoint and token endpoint. documentation on using the token endpoint

To use, put this in your head:

<link rel="token_endpoint" href="">

Logging into


error from having no endpoints defined:


Does it hurt to set head tag and headers? No, but it does make consumers do more work to check two places.

The header could be mangled or removed by intermediate servers in the pipe. It is also harder for a user to control what headers can used. IMO for IndieWeb <link> tag is better --Bear

Aaron agreed to change all the spec docs to only use <link> tags, not HTTP headers. Simpler. This also follows the same discovery pattern that other parts of indieweb use. -bear


Aaron's Micropub endpoint source code:

Mostly in:

Shane has contacted the author of MarsEdit; supports blogging APIs, even weird tumblr API. About implementing micropub support for it. The description of MarsEdit was one of the first instances of XMP-RPC in the wild for posting content to a blog site

Shane and Jessica are building adapters between different APIs and micro pub api. Look at this neat chart

Aaron has an iOS app that speaks micropub as an h-entry that has an p-count property.

Need new scope for micro pub comments?

Tokens can be associated with ACL group/scope - the token just identifies who is making the change and it's up to the app to decide if that user+action is allowed --bear


Created by on July 5

IndieWebCamp Berlin

Sunday, June 29, 2014


Make your own site more indie:

Get IndieAuth running by adding rel="me" tags (Jan, Joachim, Anna, Garret, …)

IndieAuth rel="me"

IndieMark 1 - Validate h-card

Indie App Store (Brennan, Felix, Jan, Diego)

Raspberry Pi demo (Malte) Setting up ownCloud on it (Jan)

  • Adding IndieWeb aspects to Mailpile (Brennan)
  • Cryptoparty / Indie Web handbook, intro, documentation (Malte, …)
  • Demo of and work on Open Outcomes (Joe)


Created by on July 5

This template is used to indicate a section is incomplete and encourages people to expand it. It should be placed at the top of the page.

If a section seems thorough to you (and you consider yourself fairly knowledgeable on the subject and thus capable of reasonably determining as much), feel free to remove the {{section-stub}} template code.

Blank Template

Copy and paste:



This template has no parameters.


Including this template code:


Will generate:

Created by on July 7

  • Mon, July 7 Created page with "Hey all, I'm <span style= "font-size: 16px; line-height: 1.625em;" class="h-card">[ Asher Silberman]</span>"

Hey all, I'm Asher Silberman


Created by on July 8

  • Tue, July 8 Created page with "{{stub}} Linkback is the generic term for [[trackback]], [[pingback]] and [[webmention]]."

Linkback is the generic term for trackback, pingback and webmention.


Created by on July 10

  • Thu, July 10 copy-paste example call flow from irc logs

Outline to call a person (request a voice or video session) using their website:

  1. tantek writes a post on his site that says "hey aaronpk, do you have a minute to talk?"
  2. tantek's server sends a webmention to mine for that link
  3. my server notifies my phone via a push notification (possibly via mention-app)
  4. I see the message, click the talky URL, and we're in a video call

Additionally, this could happen with private posts so the talky URL is only visible to the two of us.

See Also

Created by on July 9

  • Wed, July 9 Created page with "[] Short bio : []" Short bio :

Changed Pages


6 edits by,
  • Tue, July 8 /* IndieWeb Examples */ Jeremy Keith since 2014-07-05!
  • Tue, July 8 /* IndieWeb Examples */ sort earliest first, and separate notes with embedded photos, note Jeremy POSSEing photo posts to Twitter
  • Wed, July 9 /* Silos */ add Facebook subsection with details from kylewm from /irc
  • Wed, July 9 /* Facebook */ missed some text
  • Wed, July 9 /* Facebook */ added preview screenshot
  • Wed, July 9 /* Facebook */ note that "See Original" does not work on photos

2014/UK/Guest List

5 edits by,


4 edits by,
  • Mon, July 7 /* Features */ reply-context up through start of thread
  • Wed, July 9 /* Issues */ split into Criticism vs. Issues (brief explanation of each)
  • Wed, July 9 /* Criticism */ bad PESATAs to Facebook
  • Wed, July 9 /* bad PESETAS to facebook */ more like spammy cross-posting, describe why per deliberate Twitter wording


4 edits by
  • Sat, July 5 update syndicate-to parameter to require username. this allows the micropub endpoint to be able to syndicate to multiple accounts on the same silo
  • Sat, July 5 add section on syndicating via micropub
  • Sat, July 5 /* Syndicating a Post */ add section on Discovering Supported Syndication Targets
  • Sat, July 5 /* Discovering Supported Syndication Targets */ add authorization header to GET example


4 edits by
  • Mon, July 7 add levels based on (and prev/subsequent analysis), including reply-context thread!
  • Mon, July 7 /* reply thread */ entire reply chain
  • Mon, July 7 /* icon */ use example of benwerd since his own site's avatar/image URL has moved around
  • Thu, July 10 /* icon */ make use of a nicknames-cache for indieweb post icons

Red Wind

3 edits by
  • Tue, July 8 /* Screenshots */ added screenshots showing off redesign
  • Tue, July 8 /* Filestore */ documented address book/contact list feature
  • Tue, July 8 added borders and captions to images


3 edits by,
  • Sat, July 5 add headers for New York
  • Sat, July 5 /* New York Start Demos */
  • Sat, July 5 /* New York Hack Day Demos */


3 edits by,, blog
  • Wed, July 9 add HWC 07-30
  • Thu, July 10 /* Upcoming */ hack day in Mozilla Paris on decentralization (via @nitot)
  • Thu, July 10 blog /* Upcoming */


3 edits by,


3 edits by,
  • Sat, July 5 /* Level 2 posts */
  • Sat, July 5 /* Level 2 posts */
  • Mon, July 7 level 1 posts 0.2 = 0.1 per post to 0.2 for 2 at most (minimum required). location is not a separate post type, it's part of others)


2 edits by
  • Tue, July 8 move reply to a photo to a brainstorming section
  • Tue, July 8 /* reply to a photo */ note is in reply to a silo post (IG), add a link to a reply to an indieweb photo post as well


2 edits by,


2 edits by


2 edits by,
  • Mon, July 7 /* POSSE */ add id=POSS to make the first link work from
  • Mon, July 7 /* People using WordPress */ added start - end dates for


2 edits by
  • Tue, July 8 /* IndieWeb Examples */ clarify links
  • Tue, July 8 clarify links to i-a at the top


2 edits by
  • Sat, July 5 /* Friday, March 7, 2014 */ add stub links to internal wiki pages to prep for moving content from etherpad
  • Sat, July 5 /* Friday, March 7, 2014 */


2 edits by,


2 edits by

2014/Cambridge/Guest List

2 edits by


2 edits by,


2 edits by
  • Mon, July 7 /* Features */ add local nickname section, probably more to add later
  • Thu, July 10 /* Local Nicknames */ see also


2 edits by,


1 edits by


1 edits by
  • Thu, July 10 /* improve reply-context support */ icons specifically, break into smaller subtasks


1 edits by
  • Mon, July 7 /* Handling it Yourself */ mention mail in a box


1 edits by


1 edits by


1 edits by


1 edits by


1 edits by
  • Sat, July 5 /* Webmention to homepage */


1 edits by


1 edits by
  • Wed, July 9 /* East Photos */ adding caption from Chloe Weil

videos about the indieweb

1 edits by
  • Tue, July 8 add PDF14 Why We Need the #IndieWeb video & slides


1 edits by
  • Tue, July 8 Articles - start with Rachel's unfashionably-profitable pragmatic explanation of why PHP

Indie Box

1 edits by

Posts about the IndieWeb

1 edits by
  • Tue, July 8 Screw Digital Sharecropping. I’m Getting a Posse.


1 edits by


1 edits by

feed file

1 edits by
  • Wed, July 9 /* Criticism */ no access to archives / content since a datetime


1 edits by
  • Wed, July 9 /* Where */ SF is at Moz with writing hour


1 edits by