As mentioned quickly in another thread, Bibliograph is an appview for applications to build against to build an opportunistic experience for books and reviewing books on ATProto. It’s currently powering a project of mine that’s in alpha, Livtet and was born of discussion with some folks on how to handle book discovery on-protocol.
If a book is not known to Bibliograph, it searches Google Books and OpenLibrary for it. Failing that, one can attempt to create a unverified book and someone with the librarian account label and approve it; a bit similar to how Hardcover, Fable and OpenLibrary currently operates; permitting transparency.
Quick follow-up to this thread: Bibliograph has grown a fair bit
since I posted, so I’ve written up a reference for the lexicons it
defines and the XRPC endpoints it serves.
(permalink to the commit that added it; lives at LEXICONS.md on main)
28 lexicon files under community.lexicon.book.*: 8 records (book,
claim, review, status, shelf, shelfItem, contributor, contributor.type)
and 11 queries + 7 procedures served by the AppView, plus a single
com.atproto.label.subscribeLabels WebSocket. The AppView publishes
records too: the five canonical contributor.type entries (author,
illustrator, editor, translator, narrator) and auto-created contributor
records when mirroring BookHive catalog data.
A few things this thread didn’t cover: an OpenLibrary editions bulk
backfill (resumable, idempotent), a BookHive catalog + reading-status
mirror, and the labeler emits book:author (claim-verified) and book:librarian (admin) labels. Labeler DID is
did:web:biblio.livtet.olamaelcu.net; subscribe at
wss://biblio.livtet.olamaelcu.net/xrpc/com.atproto.label.subscribeLabels.
Kick the tires, file issues, roast the lexicons. The reference doc is
the entry point for what’s there now.