PageVault

Your private book universe.
No cloud required.

PageVault is a local Goodreads alternative with ISBN barcode scanning, shelves, tags, half-star ratings, a built-in EPUB/PDF reader, CSV portability, and a Plotly analytics dashboard with 20+ charts — 100% private. Run it as a one-click Windows app, or self-host it with Flask.

Free & open source (MIT) · Windows installer & portable build · also runs on macOS / Linux from source.
CI passing Python 3.10+ Flask 3.x SQLite MIT License v1.7.0 🖥 Desktop app 📖 EPUB / PDF reader Coverage ≥ 75% Docker ready

Get the Windows app NEW

A native desktop build that opens in its own window — no browser tab, no Python to install. Your library stays local in %LOCALAPPDATA%\PageVault. Prefer the terminal? Self-host with Flask or Docker instead.

Highlights

🖥 Native desktop app

One-click Windows installer or portable zip — PageVault opens in its own window via WebView2, with no browser tab and no Python required.

📖 Built-in e-book reader

Read EPUB and PDF in-app with paginated view, font sizing, and saved position — open files attached to a book or straight from your device.

📷 ISBN Scan & Add

Scan from phone camera or enter ISBN manually with live metadata preview.

🗂️ Shelves + Tags

Organize books with multi-shelf assignment and interactive genre chips.

🔎 Smart Filters

Filter by status, author, shelf, genre, or full-text query.

📊 20+ Analytics Charts

Status, genres, authors, ratings, formats, publishers, community vs personal ratings, decade distribution, and monthly trends — all filterable by date, format, and language.

⭐ Half-Star Ratings & Quotes

Rate books in 0.5-star increments, write review notes, and save favourite quotes with page numbers.

🔄 Metadata Refresh

Bulk refresh metadata while preserving your reviews, shelves, and custom tags.

📤📥 CSV Portability

Export full library and import Goodreads-compatible CSVs.

🎯 Goals, Sessions & Streaks

Set annual reading targets, log sessions with page counts and time, and track your reading streak and speed.

🔥 Activity Heatmap

GitHub-style 52-week reading calendar — see exactly when and how much you read at a glance.

📚 Series & Reading History

Track series name and number, log re-reads with dates, and record book format, DNF status, and owned/wishlist state.

📱 Mobile QR Connect

Scan a QR code on your home screen to open PageVault instantly on your phone — no typing required.

🔮 Local Recommendations

Get book suggestions based on your existing library, entirely offline.

🔐 Admin Console

Secure admin panel with password protection for diagnostics, backup, and restore operations.

🧯 Backup & Restore

One-click ZIP backup download, archive validation, and in-app restore workflow.

🧠 Metadata Fallback Chain

  • Open Library Books API (primary)
  • Google Books + Open Library Search + Crossref (parallel fallback)
  • Open Library Covers API (cover rescue)
  • In-memory ISBN TTL cache for faster bulk operations

🚀 Quick Start

  • Easiest: download the Windows installer, then launch from the Start menu
  • Clone: git clone https://github.com/ChristianAbele02/PageVault.git
  • Install: pip install .
  • Run: python app.py — or python desktop.py for the window
  • Library: http://localhost:5000

🧰 Core Files

  • App: app.py — factory, wiring, entrypoint
  • API: pagevault_core/api.py — all REST routes
  • DB: pagevault_core/db.py — SQLite lifecycle + schema bootstrap
  • Metadata: pagevault_core/metadata.py — multi-provider lookup + TTL cache
  • Database: pagevault.db — your entire library in one file

🛡️ Data Safety

  • Your full library lives in a single file: pagevault.db
  • Back it up manually or use the in-app backup/restore flow
  • Admin password is random per session unless PAGEVAULT_ADMIN_PASSWORD is set
  • Coverage gate enforced in CI — must stay above 75%

Portfolio Value

🧩 Full-stack scope

Design + UX, Flask API, SQLite data model, Docker deployment, and CI quality gates in one cohesive project.

📈 Product analytics

20+ Plotly charts including reading heatmap, genre trends by year, speed per book, rating trends, time-to-finish, loan tracking, shelf breakdown, and more — with date, format and language filtering.

🧪 Engineering quality

Automated tests, linting, and type checks gate every change; a CI pipeline builds and publishes the Windows installer (with optional code signing) on each release.

Example Renders (Light + Dark)

Desktop App
Light
PageVault running as a native Windows desktop window in light mode
Dark
PageVault desktop window in dark mode
The one-click Windows build runs in its own window — no browser tab, no Python.
E-Book Reader
Light
PageVault e-book reader with the open-from-device file picker, light mode
Dark
PageVault e-book reader in dark mode
Read EPUB/PDF in-app — open files attached to a book, or straight from your device.
Library Grid
Light
PageVault light library view with The Great Gatsby progress
Dark
PageVault dark library view with The Great Gatsby progress
Book covers, status badges, and progress bars directly in the shelf view.
Book Detail
Light
PageVault light detail view with multi-rating timeline and reading progress
Dark
PageVault dark detail view with multi-rating timeline and reading progress
Detailed view with notes, multi-review timeline, and current-page progress updates.
Import / Export
Light
PageVault light CSV import and metadata refresh summary
Dark
PageVault dark CSV import and metadata refresh summary
Goodreads-compatible CSV workflow and metadata refresh suited for real-world migration.
About
Built and maintained by Christian Abele.
Made with love for my wife Emili. ❤️