Skip to content

Book Clubs

Status: Future Feature

Book clubs are a core differentiator for Logbook, enabling organized, engaging reading experiences with voting, discussions, and scheduling.

Overview

Book clubs allow groups of readers to:

  • Read books together with shared deadlines
  • Discuss books in threaded conversations (with prompts)
  • Vote democratically on the next read
  • Track group reading progress
  • Book club specific achievements

Key Design Decisions

Public vs Private Clubs

  • Public clubs - Discoverable, anyone can join or request to join
  • Private clubs - Invite-only, hidden from search/browse

Membership & History

  • Leaving a club is a soft delete - member is marked inactive but history is preserved
  • Users can still see books they read with the club, their contributions to discussions, and votes cast
  • Allows rejoining without losing context
  • Club admins see departed members in a separate "Past Members" section

User Stories

  • As a book club member, I want to see our current read and deadline prominently so I know what to prioritize
  • As a book club member, I want to participate in discussions without spoiling the book for others
  • As a book club member, I want to vote on our next book so I have a say in what we read
  • As a book club admin, I want to manage deadlines and nominations so the club stays organized
  • As a book club member, I want to see who's reading and who's finished so I know who I can discuss with

Book Club Page

  • Club name and avatar
  • Member count
  • Join/Leave button
  • Settings (admin only)

Current Read Section

  • Book cover and title
  • Reading deadline (countdown)
  • Progress bar (% of members finished)
  • "Start Discussion" CTA
  • Quick actions: Log pages, Mark finished

Discussion Board

  • Threaded comments
  • Spoiler tags/warnings
  • Sort by: Recent, Popular, Oldest
  • Like, reply, bookmark comments
  • Notification settings per thread

Voting for Next Book

  • Nominated books (cover, title, author)
  • Vote button (one vote per user)
  • Live vote counts
  • Voting deadline
  • Nominate new book button
  • Winning book auto-scheduled

Schedule/Calendar

  • Past reads (archive)
  • Current read with deadline
  • Next book with start date
  • Meeting dates (if applicable)

Members List

  • Avatar grid
  • Reading status indicators (reading, finished, not started)
  • Member roles (admin, moderator, member)
  • Invite friends button

Feature Requirements

Must Have

  • Create book club (subscription?)
  • Join book club
  • Leave book club
  • View club members
  • Current read with deadline
  • Discussion board (threaded comments)
  • Vote for next book
  • View past reads
  • Club invitations (link, email)
  • Private clubs (only findable view invite)

Nice to Have

  • Spoiler tags in discussions
  • Custom club roles/permissions
  • Club discovery/browse
  • Webdash for live member meetings? (i.e. live time voting etc)

Notifications

Push notifications for:

  • New discussions
  • Voting opens/closes
  • Reading deadlines approaching
  • New book selected

Admin Controls

  • Nominate books
  • Set deadlines
  • Manage members
  • Pin discussions

Technical Notes

Entities

  • BookClub - Club metadata
  • ClubMember - User-club relationship with role
  • ClubRead - Book assigned to club with deadline
  • ClubVote - User vote for nominated book
  • Discussion - Threaded discussion container
  • Comment - Individual comment in discussion

It would be interesting (possibly) to surface any user recommendations of a book currently being read in a club from the individual members so they're shown on a user profile and within the bookclub feed.

API Endpoints

Following controller patterns:

# Clubs
POST   /v1/clubs/find                   # Paginated search
POST   /v1/clubs/list                   # Non-paginated list
POST   /v1/clubs                        # Create club
GET    /v1/clubs/{clubId}               # Get club details
PATCH  /v1/clubs/{clubId}               # Update club
DELETE /v1/clubs/{clubId}               # Delete club

# Membership
POST   /v1/clubs/{clubId}/join          # Join club
POST   /v1/clubs/{clubId}/leave         # Leave club (soft delete)
POST   /v1/clubs/{clubId}/members/find  # List members

# Discussions
POST   /v1/clubs/{clubId}/discussions/find    # List discussions
POST   /v1/clubs/{clubId}/discussions         # Create discussion
GET    /v1/clubs/{clubId}/discussions/{id}    # Get discussion
PATCH  /v1/clubs/{clubId}/discussions/{id}    # Update discussion

# Voting
GET    /v1/clubs/{clubId}/votes               # Get current voting
POST   /v1/clubs/{clubId}/votes               # Cast vote
POST   /v1/clubs/{clubId}/nominations         # Nominate book

Implementation Considerations

  • Voting system with deadline enforcement
  • Discussion board with nested comments
  • Real-time updates (WebSockets or polling)
  • Notification preferences per club
  • Admin action audit log
  • Calendar integration (export meetings)
  • Discussion moderation tools

Built with VitePress