Core Feature

User Library

Personal library system for users to manage their bookmarks, track reading progress, and stay updated on new chapters.

Authentication Required

The library page requires user authentication. Unauthenticated users are automatically redirected to the sign-in page with a callback URL to return after login.

redirect('/auth/signin?callbackUrl=/library')

Features

Bookmarks

Save series to your library with reading progress automatically tracked.

Reading History

View all chapters you've read with timestamps and quick continue buttons.

Update Notifications

See which bookmarked series have new chapters available.

Library Search

Search within your bookmarked series to quickly find what you want to read.

Library Organization

The library is organized into three main tabs:

Bookmarks

All your bookmarked series displayed in a grid view

Shows cover, title, progress, and quick access to continue reading

Reading History

Chronological list of recently read chapters

Displays last read chapter, progress, and time since last read

Updates

Series with new chapters since your last visit

Filtered to show only bookmarks with unread chapters

Stats Dashboard

The library header displays quick stats about your reading activity:

Bookmarked

Total series in library

With Updates

Series with new chapters

Reading

Currently in progress

Completed

Finished reading all chapters

Progress Tracking

The library automatically tracks your reading progress:

  • Current chapter and reading position saved automatically
  • Last read timestamp for each series
  • Quick continue button to resume from last position
  • Progress comparison with total available chapters
  • Visual progress indicators on series cards

Bookmark Data Model

interface Bookmark {
  user: ObjectId;           // Reference to User
  series: ObjectId;         // Reference to Series
  
  // Reading Progress
  lastReadChapter?: ObjectId;
  lastReadChapterNumber?: number;
  lastReadAt?: Date;
  
  // Notifications
  notifyOnUpdate: boolean;  // Default: true
  
  // Timestamps
  createdAt: Date;
  updatedAt: Date;
}

// Unique constraint: one bookmark per user-series pair

Empty States

When sections are empty, helpful messages guide users:

  • No bookmarks: "Start bookmarking series you want to follow!" with link to browse
  • No reading history: "Your reading history will appear here."
  • All caught up: "No new updates for your bookmarked series."

Related Routes

/libraryMain library page (requires auth)
/series/[slug]Series page with bookmark button
/series/[slug]/[chapter]Reader that updates reading progress