Skip to content

masonfox/tome

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📚 Tome

Tome - ghcr.io codecov

"Buy Me A Coffee"

A self-hosted book tracking web application that integrates directly with Calibre's database to provide reading progress tracking, status management, and streak functionality.

Think: Goodreads/StoryGraph but powered by your personal Calibre library.

Tome Dashboard

Additional Screenshots

Library Library UI

Book Detail Book UI

Series Series UI

Journal Journal UI

Streak Streak UI

Goals Goals UI

Tag Manager Tag Manager UI

What is Tome?

Tome is a local-first book tracking application that gives you durable ownership of your reading history. It seamlessly integrates with your existing Calibre library to track reading progress, sessions, and streaks—without disrupting your workflow or requiring cloud services.

Your reading data lives locally, under your control, and survives platform changes forever.

Features

  • 🔗 Calibre Integration: Integrates directly with Calibre, automatically syncing your library
  • 📖 Reading Progress Tracking: Track page-based or percentage-based progress with history
  • 📈 Enhanced Reading Streaks: Daily streak tracking with configurable goals and analytics
  • ▶️ Book Status Management: Organize books by reading status (To Read, Read Next, Reading, Read, and DNF). Supports rereads while preserving previous reading sessions.
  • 🏷️ Robust Tag Management: Easily remove a tag from many books in a single click, merge multiple tags into one, and bulk delete tags.
  • 📊 Statistics Dashboard: Comprehensive reading statistics
  • 🥇 Annual goals: Set and track annual reading goals
  • 🪛 Self-Hosted: Full control over your data with no external dependencies

Quick Start

Production Deployment

For detailed production deployment instructions, see the deployment guide.

Local Development

# Install dependencies
bun install

# Configure environment
cp .env.example .env
# Edit .env and set CALIBRE_DB_PATH to your Calibre library

# Run database migrations
npm run db:migrate

# (Optionally) run DB seeder
npm run db:seed

# Start development server
bun run dev

Visit http://localhost:3000 and sync your Calibre library from the Library page.

⚠️ Calibre Safety

Tome reads from and writes to Calibre’s metadata.db. Concurrent writes (for example, editing tags or ratings in Tome while Calibre is running) can lead to database locks or unpredictable results. Read-only access is safe!

Recommendation: Close Calibre before using Tome for metadata edits.

Tome writes to Calibre when you:

  • Rate a book
  • Manage tags, whether on /books/:id or /tags pages

Roadmap

Active development can be viewed here, representing the upcoming release. Additionally, checkout repo discussions for release and feature announcements and more!

You're highly encouraged to create issues and create discussions! 🙏

Documentation

Comprehensive documentation is available in the /docs directory:

Contributing

Contributions are welcome! Before contributing, please:

  1. Read the Architecture Documentation to understand the system design
  2. Review the Constitution for project principles
  3. Check the Testing Guide for testing best practices
  4. Ensure all tests pass: npm test

License

MIT

Acknowledgments

Built with a focus on local-first architecture, durable data ownership, and seamless Calibre integration.

About

A Calibre-integrated book tracker; Goodreads but powered by your Calibre Library.

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

  •  

Packages

 
 
 

Languages