A clean, fast, and lightweight collaborative e-book reader in the browser.
Read books together with your friends, partners, or book clubs in real-time.
- Introduction
- How to Use (Quick Start)
- Book Expiration and Highlights (FAQ)
- Credits and Attribution
- Key Features
- Developer Setup
- Support
- License
Paperback is a free web application that allows multiple people to read e-books together in real-time. Whether you are running a virtual book club, studying textbook chapters with classmates, or sharing a novel with a long-distance partner, Paperback synchronizes your reading positions, highlights, and annotations instantly.
Getting started with Paperback is simple and requires no software installation:
- Log In: Visit the website and click "Connect with Discord". This links your reading profile so friends can identify you in the room.
- Create a Room: Upload an EPUB file of the book you want to read. The app will immediately open the reader and generate a unique Room Code.
- Share the Code: Copy the room URL or code and send it to your friends.
- Read Together: As soon as your friends join, you will see their progress markers on the page. Highlight text to choose a color or write inline comments that everyone in the room can see instantly.
To keep server and storage costs at absolute zero, book files are automatically removed after 24 hours of inactivity (meaning 24 hours without anyone opening the room or reading).
No. All of your highlights, colored markers, notes, and progress coordinates are stored permanently in our database. Deleting the book file never deletes your annotations.
If you open an expired room, Paperback will show a welcome prompt asking you to drop or choose the required EPUB file. Once you provide the file, the book is uploaded again and you can resume reading immediately with all your highlights intact.
Paperback is a fork of the amazing foliate-js library created by John Factotum. Foliate-JS provides the high-performance, browser-native rendering engine for EPUB, MOBI, and FB2 formats that Paperback builds upon. We are incredibly grateful for his work. Please consider visiting johnfactotum/foliate-js and leaving a ⭐ star on the original repository to support his development!
◆ Discord Integration: Single-click secure login displaying user avatars and custom colors in the reader. ◆ Live Location Sync: WebSocket synchronization displays page markers and progression indicators for all active readers. ◆ Shared Highlights: Highlight passages and add inline notes that sync in real-time. ◆ Zero-Bandwidth Downloads: Ephemeral files are uploaded to Supabase Storage and served via signed CDN links directly to the client's browser. ◆ Reading History: Access your recently opened active and expired rooms directly from the home dashboard.
If you want to run Paperback locally or deploy your own instance:
- Node.js >= 20.0.0
- npm
# Clone the repository
git clone https://github.com/GabrielBaiano/paperback.git
# Install dependencies
npm installYou can start a local development server without setting up Discord credentials or cloud storage:
npm startOpen http://localhost:3080. Logging in will automatically use a mock profile, and uploaded books will be saved to the local uploads directory.
Configure these in your production host (such as Fly.io) to enable full features:
DISCORD_CLIENT_ID=your_discord_client_id
DISCORD_CLIENT_SECRET=your_discord_client_secret
DISCORD_REDIRECT_URI=https://your-domain.com/api/auth/discord/callback
JWT_SECRET=your_jwt_signing_key
SUPABASE_URL=https://your-supabase-project.supabase.co
SUPABASE_KEY=your_supabase_service_role_secret
ADMIN_USERS=gabrielbaiano_If you find Paperback helpful and want to support its active development, or share it with others:
If you find Paperback helpful and want to support its active development and hosting costs, buy me a coffee!
To support the core engine that powers this reader, please support John Factotum:
- Buy Him a Coffee: johnfactotum
- Star the Project: Leave a ⭐ star on the original foliate-js repository
If you love reading books collaboratively with Paperback, help us spread the word! You can share the link with friends, invite them to your rooms, or share it on your favorite platforms:
Want to help make Paperback even better? We welcome all bug reports, feature suggestions, and pull requests!
Distributed under the MIT License. See LICENSE for more information.
Want to support Paperback? Buy me a coffee!
Made with ❤️ and the help of Awesome-Readme
