Skip to content
GabrielBaianoPublic

About

Render e-books in the browser with friends.

Topics

Resources

Contributing

Stars

3 stars

Watchers

0 watching

Forks

Latest commit

 

History

445 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Clubo Logo

Clubo

The real-time social reading platform & virtual book club in your browser.
Host online book clubs, read together with friends, sync progress live, and share interactive highlights.

Website Demo Peak Concurrent: 28 readers Weekly Avg: 91 active License Buy Me A Coffee


Table of Contents

Introduction

Clubo is a modern, social e-book platform designed to bring book clubs, study circles, and reading partners together in real-time. Simply create a room, share the link, and read alongside your club members — seeing each other's live progress, cursor positions, reactions, and synchronized highlights without installing any software.

How to Use (Quick Start)

Getting started with Clubo is simple and requires no software installation:

  1. Log In: Visit the website and click "Connect with Discord". This links your reading profile so friends can identify you in the room.
  2. 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.
  3. Share the Code: Copy the room URL or code and send it to your friends.
  4. 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.

Book Expiration and Highlights (FAQ)

Do my books stay online forever?

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).

Will I lose my highlights and notes if a book expires?

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.

How do I restore an expired session?

If you open an expired room, Clubo 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.

Credits and Attribution

Clubo 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 Clubo 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!

Key Features

◆ 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.

Developer Setup

If you want to run Clubo locally or deploy your own instance:

Prerequisites

  • Node.js >= 20.0.0
  • npm

Installation

# Clone the repository
git clone https://github.com/GabrielBaiano/clubo.git

# Install dependencies
npm install

Running Locally (Mock Mode)

You can start a local development server without setting up Discord credentials or cloud storage:

npm start

Open http://localhost:3080. Logging in will automatically use a mock profile, and uploaded books will be saved to the local uploads directory.

Environment Variables

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_

Support

If you find Clubo helpful and want to support its active development, or share it with others:

Buy Me a Coffee (Gabriel Baiano)

If you find Clubo helpful and want to support its active development and hosting costs, buy me a coffee!

Buy Me A Coffee

Support the Original Creator (John Factotum)

To support the core engine that powers this reader, please support John Factotum:

Share the Project

If you love reading books collaboratively with Clubo, help us spread the word! You can share the link with friends, invite them to your rooms, or share it on your favorite platforms:

Share on Twitter Share on Telegram Share on WhatsApp Share on Reddit Share on Hacker News Share on LinkedIn

Help Us Improve

Want to help make Clubo even better? We welcome all bug reports, feature suggestions, and pull requests!

Contributing Guide

License

Distributed under the MIT License. See LICENSE for more information.


Want to support Clubo? Buy me a coffee!

Made with ❤️ and the help of Awesome-Readme

About

Render e-books in the browser with friends.

Topics

Resources

Contributing

Stars

3 stars

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages