Sharing
Share collections with anyone via a link
Alex lets you share entire collections with anyone — no account required. This is useful for distributing course materials, curating reading lists for a book club, or sharing a research collection with collaborators.
How sharing works
Sharing is built around share tokens: random, unguessable strings that act as access keys. When you share a collection, Alex generates a unique URL like:
https://your-server.com/shared/a1b2c3d4-e5f6-...
Anyone with that link can browse the collection and read its books in the browser. They don't need to log in or create an account.
Enabling sharing
- Open a collection from the Collections page.
- Click the Share button in the collection header.
- Alex generates a share link and displays it in a dialog.
- Copy the link and send it to your recipients.
What shared users can do
Recipients of a share link can:
- See the collection name and description
- Browse the books with covers, titles, and authors
- Read any book (PDF or EPUB) directly in the browser using the same readers available to logged-in users
What shared users cannot do
- Download book files directly (files are streamed to the in-browser reader only)
- Edit the collection, add books, or remove books
- See who owns the collection
- Access any books outside the shared collection
Reading progress for shared users
Shared users get reading progress stored locally in their browser. Their position in a book is saved across page reloads but is not synced across devices or to the server. No anonymous user data is stored on the server.
Revoking access
To stop sharing a collection:
- Open the collection detail page.
- Click Stop Sharing.
- The share token is deleted and the link immediately stops working.
If you re-share the collection later, a new token is generated. Old links will not work — you'll need to distribute the new URL.
Privacy
- The collection owner's identity (email, display name) is never exposed in the shared view.
- Share tokens are UUIDv4 values with 122 bits of randomness, making them effectively unguessable.
- Each public API endpoint validates that the requested book actually belongs to the shared collection. A valid share link cannot be used to access other books on the server.