Qubyte Codes

IndieWebCamp Brighton 2019


I had a great time last weekend at IndieWebCamp (IWC) Brighton. The first day was filled with discussions on various IndieWeb related topics. I attended discussions on:

  • How IndieWebCamp should respond to the climate crisis.
  • Storage and display of personal tracking data.
  • Local first web and how to define the term.
  • License detection.
  • Integrating Apple shortcuts (scripts) into your IndieWeb workflows.

Outcomes were interesting for some of these. For the first there was discussion around downplaying more carbon intensive modes of transport, and attending IWC before or after another event to make journeys more worthwhile (this is already often the case). Another idea was to estimate the greenhouse gas output of travel to and from IWC for all attendees, but there was disagreement over how to measure this when attending other events too.

Storage and display of tracking data was interesting, but perhaps less relevant to me. I'm not so interested in tracking where I go, my weight, and so forth, though that might change in the future. The discussion eventually focussed on how data should be summarized.

The local first discussion was one I was note taking for. I'm using my old MacBook Air since I just finished a job and haven't started my new one yet, so I'm between work laptops. The MBA is nearly 10 years old and still going strong, but it has a Japanese keyboard layout, and after being on a British layout for the last few years my ability to touch type is a little hampered. I mostly managed to keep up but missed the discussion since my focus was on taking notes. Where local first seems to shine is in content creation. For example, I could write a post or a note on a train with bad mobile coverage, and my device would stash the content and POST it whenever it next connects. Jeremy Keith mentioned background sync as an emerging option to do this (I must look into this).

License detection was interesting. There was some discussion over whether a microformat would be the right option, or a rel-bookmark style rel, since in that unusual case the rel isn't singular in a page. The latter has a potentially confusing resolution algorithm though. The issue of actually parsing licenses was avoided. We were mostly concerned with how to use multiple licenses within a page.

The final session on the day was about integrating micropub with Apple shortcuts. I found this extremely interesting. I'd considered it in passing, but Rosemary Orchard had a comprehensive set of actions to automate IndieAuth and posting to micropub endpoints. This would be the inspiration for my hack day work.

The second day was for hacking on your own stuff, and helping each other out when possible. My Node.js knowledge came in handy a few times so I was glad to be helpful!

I decided to update this blog to handle likes and replies. At the time of writing you can see these as their own sections in the navigation bar. I am considering collecting everything into a single filterable stream though, so these may eventually go away. Likes and replies are created by my micropub endpoint, so the first part of this task was to update that glitch to understand and handle payloads of those kinds. As with notes and links/bookmarks, it uses the GitHub contents API to create JSON files which are compiled to pages of my site. My static site generator gained a couple more templates to render these new types of content.

This made it possible to post likes and replies using existing micropub clients. I use Omnibear as a Firefox extension in my laptop browser. This client uses the current page to fill in details to make creating likes and replies much simpler. On mobile, I decided that a new set of shortcuts to be used from the sharing panel in iOS/iPadOS. Like Omnibear, these benefit from the context they're used in. What I implemented is fairly primitive. The shortcuts only use the URL of the current page. There's no elegant way to get hold of the title of a page like Omnibear can, but I'll work on this later as an enhancement.

I implemented shortcuts for liking, replying, and bookmarking. The latter two prompt me for additional text for my part of the reply or bookmark. I decided not to make these shortcuts use IndieAuth. Instead I updated my glitch to accept authentication using a shared secret when a special short-circuit-auth header is truthy. This means that existing clients continue to use IndieAuth, while my own software can take a shortcut if I so choose. I might revisit this in the future.

I'm enjoying the fruits of my work on the second day already. Likes and replies are more social than the notes and bookmarks I had previously, so I hope this leads to more interaction with other IndieWeb folk.

With micropub fresh in my mind, I may enhance my micropub endpoint to accept multipart bodies. This allows POSTS with media in to be sent all in one request which shortcuts can make use of. Then I'll be able to post pictures and not just walls of text!