Passage

the club's shared shelf

Sign in

Enter your email — we'll send you an OTP.

Request to join

Tell the club who you are. An admin reviews requests and you'll get an email when you're in.

Enter your code

We sent a 6-digit code to . It expires in 10 minutes.

Passage

the club's shared shelf
Later: Lending · Monthly pick · AI helper
v1.0.0
⌕

the shared shelf

Library

My Shelf

What you're reading, want to read, and have finished — plus your reading year.

contribute

Add a book

One book, one card. It joins the shared shelf under its genre.

v1.3: an AI helper (bring your own key) can fill author, country, cover and blurb from the title — off by default, entirely optional.

the long game

100 Essential Reads

The club's canonical list. Track how far the club has collectively read, and how far you have.

Club — at least one member has read it

Add an essential read

Curators keep this list. An entry links to a book automatically when its title + author match something on the shelf.

the club, lately

Activity

New books, ratings, and shelf moves across the club.

the club, set up

Settings

Members, identity, and the technical bits.

Members

Everyone in the club. Admins manage roles from the Admin tab.

Your name

How you appear on ratings, reviews and the activity feed.

Identity

Access is by club whitelist. You sign in with a one-time code sent to your email — no password to remember, and every rating and shelf move is tied to you.

Signed in as

Developer & agent access

Exposes a small window.passage API so scripts or an agent can drive the shelf over the same core. Off by default; agents act under your session.

Your data

Export the whole library back to the Swap Book spreadsheet shape — anytime, no lock-in. The exported file opens with no worker, no bill, no model.

Where things live: the shared shelf sits in your club's own Cloudflare D1 — your account, not ours. It stores plaintext book data (low-sensitivity, shared by design). Nothing of ours is in the loop.
Passage 1.0.0

who gets in

Admin

Requests to join, the access whitelist, and member roles. Admin-only.

Requests to join

People who asked to join. Approve to add them to the whitelist (they get an email); decline to dismiss.

Whitelist

Only these emails can request a sign-in code. Add someone, and they'll join with the role you pick the first time they sign in.

Member roles

Promote curators (catalogue hygiene) and admins (whitelist + roles). Roles nest: admin ⊇ curator ⊇ member.