2022/Pop-ups/Personal Libraries

From IndieWeb

Personal Libraries was a IndieWebCamp Pop-ups 2022 session focused on the design and use of personal websites with relation to displaying one's books online, status updates about reading, and generally talking about books in a Goodreads-like social media manner.


We'll focus discussion on personal libraries on one's site and how they can interact with each other. How can we pool data and resources for the common good? How can we provide Goodreads like functionality in a decentralized manner? What pieces are we missing? How can we add them? Are there any easy ways we can standardize the pieces for better site to site interoperability? How can we interoperate with other projects like Mastodon and BookWyrm or data sources like Open Library? See also personal_library#Decentralized_Goodreads_Experiments

  • Date: Saturday, February 19, 2022
  • Time: 9:00 AM Pacific | 12:00 Eastern | 17:00 GMT+1
  • Organizationally, depending on attendees and needs we may break our time up into two or three facilitated sub sessions to focus on and cover specific topics of interest.
    • If you have an idea for a sub-session topic you'd like to see or facilitate please indicate it below.
  • #hashtag (used to create an Etherpad for the session): #DistributedLibraries
  • Streaming video/audio platform: Zoom
  • Hack day
  • Demos for related projects can be shown at the end of the Create Day


Posts About

Please link any blog posts, articles, notes, etc. relating to the session below

  • ...


4x3 zoom grid of the smiling faces of some of the attendees of the Personal Libraries third session on book identifiers.



IndieWeb Chat logs from the pop-up: https://chat.indieweb.org/2022-02-19

These notes were archived from the etherpad at https://etherpad.indieweb.org/DistributedLibraries


Code of Conduct


Be respectful of other people. Respectfully ask people to stop if you are bothered, and if you can't resolve an issue, contact staff. If you are being a problem, it will be apparent and you'll be asked to leave.

Photography Policy

Please don't take screenshots without prior notice to participants. Before we officially begin, we'll do a large group photo for those who'd like to participate.

The sessions will be recorded with audio and video, so please leave your camera/microphone off or on as you feel comfortable. We'll do our best to add "voices" from those communicating via chat, Etherpad, and other channels into the conversation so that those who wish to stay muted or off camera can still participate.


Building Blocks

Ad-hoc Book Discussion Clubs/Sessions

Session 1

  • Facilitator: Maggie Appleton
  • How can we use personal libraries published to the web to facilitate ad-hoc book clubs or one-off discussions with people who are already actively reading (or have just read) the same books as us? What are the key pieces of infrastructure that would help facilitate these groups? Save us from the eternal problem of starting book clubs with people, then struggling to agree on books. Flips the equation to start with the book, then find the people.
  • Hard stop: 8pm GMT/noon PST
  • #adHocReadingClubs
  • Interest


Maggie comes to this from the education and peer-to-peer space.

Are there platforms that do book club functional well?

What does this problem space look like? - How to choose books "democratically" or find people who are interested in a particular topic? - How to find people actually interested in and willing to spend the time to read it? (We've all done book events where people obviously don't read the book, but like to talk. :) )

Does Open Library let you get reading log data for e.g. "Want to Read"?

  • There are APIs to fetch for a given user their reading log data as JSON (assuming they've made it public)
  • Being able to find people who want to read a *specific* book is currently not possible; we want to find a way to do that respectfully, but the data is there and definitely possible!

Discovery -- how to find people concurrently reading the same book to build a critical mass of people working. related: tummelling to get things going

Building a book planet that people could syndicate to when they post about books (either manually or automatically through filtering a feed for only book-related posts), those posts are linked to an identifier/profile for a given book, and when a person goes to that book's profile/page, they can see links to who else has talked about those books. (Reminiscent of the book blogosphere in the late 2000s where people would post, subscribe in Google Reader, comment, and pingback.) Template:jacky.wtf says this is buildable.

Can we learn anything from marginal syllabus?

Getting one person to do the social tummeling work is one of the hardest challenges. How do we enable individuals who are willing to put in the effort to be leaders of reading groups?

Open Library has open APIs and the ability to suggest ideas for functionality on GitHub. How can the data be leveraged to help solve these problems?

  • Todo: Create issue for API of getting people who want to read a book.

Canvas as a platform for providing a lot of the functional affordances for scheduling and hosting a bookclub.

Use of Hypothes.is (https://web.hypothes.is/) for digital/asynchronous book clubs in the margins of texts.

Similar idea for organising groups around journal articles: https://www.thejournal.club/home/

Example of Bryan Alexander's book club online: https://bryanalexander.org/book-club/

First attack vector is "Help me find people reading this book"

What people want/need from book clubs (and any book club-enabling infrastructure) diverges between fiction and non-fiction books. Some people want book clubs for social connections, and others want book clubs to dig into the book itself. Most are some mix of those motivations.

Two ways into book group formation: Find other people reading a specific book vs. using people in my network and seeing what they've read

Need an interoperable way to aggregate people's reading data -- and need people to be posting said reading data

Getting people to publish their reading lists and book data online is the first challenge to solve before we can begin to figure out systems that enable social interaction around that data.

BookWyrm: https://joinbookwyrm.com/

Decentralized data (catalog) vs. decentralized use / conversations

  • OL Todo: Create issue about allowing users to bulk import books into catalogue

idea of antilibraries

  • antilibraties as a term helped me drop so much guilt for not having read the many books around the house :D

Calibre has an API and sqlite db, which you could use to talk to sharing platforms. I also have Delicioud Library dbase somewhere i should epxlore.


Session 2

This session was a concatenation of three proposed and related ideas below:

Reading Logs are just spreadsheets

  • Facilitator: Drini Cami
  • Hosting a spreadsheet which can be fed/sync'd into e.g. Open Library to control the books on your reading log

+1 Tracy Durnell could also see this being merged into the book identifiers or decentralized bookshelves talk? +1 Manton Reece - if combined with another session, let's make sure to cover Open Library

 * Probably close to the "Decentralized bookshelves" topic

Decentralized bookshelves

  • Facilitator {manton}
  • There are several new Goodreads-like services, but each service maintains their own API and bookshelf data: "Want to read", "Finished reading", etc. Micro.blog also has an API for creating and managing books and bookshelves, based on JSON Feed. Some people maintain these lists on their own blog manually.
  • Can we standardize how apps get and set bookshelf data? Could this be a convention around feeds, or maybe an extension of Micropub channels?
  • Interested

Booklist Browser Demonstration/Discussion

  • Facilitator Andy Sylvester
  • I am interested in how to be able to access/read/monitor other people's booklists. I have curated work started by Tom Crichlow and Ton Ziljstra and have created some simple browsers. Some work has been done on designing booklist formats (JSON, OPML) - should there be/could there be some way to collaborate on a spec for self-hosted booklists? Come and join the discussion!
  • #BooklistBrowsers
  • Interested

Badges and Reading

  • Facilitator Greg McVerry
  • Part of the reason people like social features in Audible and Goodreads (and many data tracking) are the badges and awards. How can we come up with community agreed upon awards and and recognition systems and bake these into personal libraries?
  • #readingawards
  • Interested
    • +0 Template:jacky.wtf I'm interested in seeing how to do some sort of gamification of activity but would need to see how this would work from a consumption standpoint
    • Greg McVerry I am going to default to new members anyways

think about webmentions.io as a ledger....If I published any read book and it sent a webmention to a ledger like webmentions.io could it send a webmention back after "jacky read five books"


How are you documenting your books and your reading right now?

  • Storing in HTML/RSS
  • YAML file
  • On paper!
  • Book Lists in OPML
  • WordPress plugin for posting books I've read on my site
  • In Calibre (and some in Zotero for books and journal articles as well) as data, and considering syncing that data to my own website in some format for display and consumption by others ( Chris Aldrich)
  • Bib file - I then post on the website the text, that my bib editor generates
  • Manually with HTML on a WordPress page

Being able to monitor other people's booklists via a common data format

Micro.blog's bookshelves API based (mostly) on JSON Feed: https://help.micro.blog/t/json-api-books/545 Video example of how we're using this in Epilogue app: https://www.manton.org/2022/02/19/epilogue-preview.html

Is there a data converter (in the vein of granary.io or unmung.org) that translates .csv, OPML, JSONfeed, HTML/microformats, etc.?

IndieBookClub, a Micropub client to post book to your own site: https://indiebookclub.biz

To Ton Zijlstra bookshelves are not just about the books on the shelf, but also about who's wall it's hanging on. Shelves are a discovery mechanisms, so I have a list of shelves I follow, and in my data I point to on whose shelve I found it.

We'll always have a plurality of data formats. Uniting people around a single format isn't likely to happen. As long as we have format translators, it shouldn't be a major issue.

Spreadsheets are a much more accessible interface than JSON objects (or similar). Allowing people to manage their booklists in spreadsheets opens up far more people to being able to publish their lists online.

What fields do we need?

  • Title
  • Author
  • Identifer(s)
    • Typically in modern settings ISBN numbers
  • Reading status (to read, reading, read)
  • Page Count
  • Notes
  • Read Start Date
  • Read End Date
  • Rating (usually in a 5 star range)
  • Genre/tags

Ideal want: Want to see my friends' notes/reviews of the books they are reading This is an important means of discovery

Micro.blog loves 📚 emoji: https://micro.blog/discover/books also known as tagmoji

BookWyrm bookwyrm.social is an example of an ActivityPub platform as a Goodreads replacement. There's a number of examples where instances of bookwyrm are used for a blookclub, or a specific themed group (I've come across a specific science one , as well as a local book club somewhere in Germany.

Formats of most book data

Would love to be able cross-reference data that might not be in each individual's Reading Log data; e.g. genre

Book identifiers

Session 3

  • Facilitator Template:tmcw
  • If we were able to cross-reference book reviews and book pages, how would those books be identified? The state of the art of book identifiers (OLID, Goodreads ID, ISBN, WorldCat, LCCN, etc) is complicated. How are we supposed to interact with it?
  • How do we cross-walk these IDs?
  • Interested


  • re: {tmcw} on book identifiers; from mek: @ IA we've been exploring creating QR-style perceptual hashes of the content of books themselves to constitute a unique context-independent ID; see also http://bookgenomeproject.org/ non-profit / open source community effort, very early stage)

Books before ~1970s don't have ISBNs, but those in the United States may have Library of Congresss book numbers

Audible/Kindle books don't usually have ISBNs; they have ASINs (amazon-specific IDs; usually starting with "B")

  • Is there an API to get this back to a normal identifier?

Sometimes people re-use ISBNs for different editions of the same book -- each format (hardcover, paperback, etc) *should* have its own separate ISBN

OL Todo: Bulk import ASIN-only books

What is a book?

Idea of the difference between "books" and "works"

Whatever is consuming the blog post (or data file) about the book needs to take on the burden of figuring out what identifiers are used.

Do users care about which cover or which edition they put on their reading log?

  • Ton Zijlstra: I don't, I have the option of adding ISBN to my book lists but never use it. Title / author is it mostly. That's useless in aggregate but good enough at a peronal level.

Allow multiple identifiers in reading log, and let client decide how they resolve it; let data creater decide what they specify

  • ISBN, Open Library Edition, ASIN, Internet Archive identifier, others?

How are folks currently embedding identifiers in their blog posts

  • Include links to other identifiers
  • No body actually is consuming these embedded attrs/links/data

Could include a prefix; e.g. `isbn:978192...`, `asin:B01234`, `olid:OL124M`

Resolving DOIs: https://dx.doi.org

Example of indiebookclub profile with microformats: https://indiebookclub.biz/users/gregorlove.com

Open Library (async/offline session)

Async Session throughout the day and after

  • Mek (mek@archive.org) + Drini (drini@archive.org) (Open Library) will happily answer async questions

I created a google colab for Open Library's APIs related to this session: https://colab.research.google.com/drive/1j1PJ-e761JGH1d4CYCcnT0RkvVVhI57p?authuser=1#scrollTo=APAv3U4ULrP-

+1 Template:jacky.wtf Interested in seeing how to integrate into a social reader +1 Drini :P


RSVP to one or more of the following:



Organizers, facilitators, and volunteers


We'll try to do something between a traditional IndieWebCamp and a pop-up over the span of several hours so that we can accommodate a brief introduction and 2-3 topic related sessions.

  • 30 minute introduction & IndieWeb building blocks
  • 20 minute session pitches and scheduling
  • 10 minute break
  • 60 minute Session 1 (including 10 minute break)
  • 60 minute Session 2 (including 10 minute break)
  • 50 minute Session 3
  • 10 minute closing remarks



Those who expressed interest in the session during planning:



  • Post about event
  • ☑️ Post to Events site
  • ☑️ Post wiki page
  • ☑️ Make sure the Zoom recording space has been cleaned out for adding
  • ☑️ Need additional zoom rooms? (probably not)
  • ☑️ Invitations sent to those interested


Previous IndieWebCamp related sessions related to personal libraries, books, and reading:


2024 BrightonBuild a Website in an Hour March (P)Front End Study Hall April (P)Front End Study Hall May (P)DüsseldorfPlanning More Camps & Popups • … •
2023 Build a Website in an Hour July (P)Build a Website in an Hour September (P)Multi-Lingual Personal Websites (P)NurembergCreate Day November (O)San DiegoCreateFest (O)
2022 Analog Meets Online (P)Personal Libraries (P)Create Day March (O)DüsseldorfCreate Day July (O)BerlinCreate Day September (O)How to Make the IndieWeb More Approachable (P)Create Day December (O)
2021 Respectful Responses (P)Webmentions Beyond Webmention.io (P) • Very Sensitive Data (P)Create Day July (O)Microsub (P)IndieAuth (P)Gardens and Streams II (P)Create Day October (O)IndieAuth 2 (P)DüsseldorfCreate Day December (O)
2020 OnlineAustin London (O)Garden & Stream (P)West (O)Micropub (P)IndieAuth (P)Get Started with WP (P)microformats2 (P)Friendly WP Themes (P)East (O)Create Day (O)
2019 AustinOnlineNew HavenBerlinDüsseldorfUtrecht9th IndieWeb Summit (Portland)AmsterdamOxfordNYCBrightonBerlin2SF
2018 BaltimoreDüsseldorf8th IndieWeb Summit (Portland)SFOxfordNYCNürnbergBerlin
2017 BellinghamDüsseldorfNürnberg7th IndieWeb Summit (Portland)IstanbulNYCBerlinAustin
2016 NYCMITNürnbergDüsseldorf6th IndieWeb Summit (Portland)NYC2BrightonLA (Santa Monica)BerlinMIT2
2015 Cambridge MAGermany (Düsseldorf)Portland & Brighton (5th Summit) • EdinburghMITSF
2014 SFNYCPortland/NYC/Berlin (4th Summit)UK (Brighton)Cambridge MAOnline
2013 Portland (3rd Summit)UK (Brighton)Hollywood
2012 Portland (2nd Summit)UK (Brighton)
2011 Portland (Summit)

See Also