Papyrus¶
A cross-platform e-book reading and management application
Overview¶
Papyrus is an open-source application for reading and managing both physical and digital books. It provides a versatile, user-friendly system that makes reading comfortable and fun across Android, iOS, Web, Desktop (Windows, macOS, Linux), and e-ink devices. Papyrus features an intuitive, modern UI with extensive customization options, unifying book organization, reading, note-taking, progress tracking, and personalized settings in a single application.
Why Papyrus?¶
Existing solutions often fall short in one or more areas:
| Problem | How Papyrus Solves It |
|---|---|
| Fragmented ecosystems (Kindle, Kobo) | Single app works everywhere with your books |
| Complex desktop-only tools (Calibre) | Simple, intuitive interface on all platforms |
| Subscription-based cloud services | Self-hostable, no mandatory subscriptions |
| Privacy concerns with analytics | No analytics by default, opt-in telemetry |
| Poor e-ink device support | Optimized UI for e-ink displays |
| No offline functionality | Offline-first design with optional sync |
Goals¶
- Cross-platform - Manage books seamlessly across all devices without relearning the UI
- Integrated reader - Read e-books with extensive customization options
- Flexible management - Organize books into shelves, categories, and tags with powerful filtering
- Progress tracking - Track reading time, books read, and achieve reading goals
- Storage flexibility - Choose between local, self-hosted, or cloud storage
- Data ownership - Export everything in open formats; your data is yours
- Privacy first - No default analytics; optional self-hosted synchronization
- Extensible - Plugin system for metadata sources, storage, and reader features
- Developer friendly - Public REST API and easy self-hosting
Target audience¶
- Regular readers who consume digital and/or physical books and need a centralized library management solution
- Habit builders who want to track reading statistics and build reading habits through goals
- Privacy-conscious users who prefer local control over their data
- Multi-device users who read on phones, tablets, e-readers, and computers
- E-ink device owners who want a dedicated reading experience optimized for their hardware
Supported platforms¶
| Platform | Status | Notes |
|---|---|---|
| Android (8.0+) | Primary | Full feature support |
| iOS (12.0+) | Primary | Full feature support |
| Web (Chrome, Firefox, Safari, Edge) | Primary | PWA with offline support |
| Windows (10+) | Primary | Native desktop experience |
| macOS (10.15+) | Primary | Native desktop experience |
| Linux | Primary | Native desktop experience |
| E-ink devices | Secondary | Optimized grayscale UI, reduced animations |
Supported e-book formats¶
| Format | Read | Convert To | Notes |
|---|---|---|---|
| EPUB | Yes | Yes | Primary format, full feature support |
| Yes | Yes | Fixed layout support | |
| MOBI | Yes | Yes | Kindle format |
| AZW3 | Yes | No | Kindle format (read-only) |
| TXT | Yes | Yes | Plain text |
| CBR/CBZ | Yes | No | Comic book archives |
| FB2 | Planned | Planned | Future support |
| DOCX | Planned | Planned | Future support |
Feature overview¶
Core features (MVP)¶
These features define the minimum viable product and are prioritized for initial release:
1. Book management¶
- Import books from local storage, URL, or cloud services (Google Drive, OneDrive, Dropbox)
- Organize with shelves - user-defined collections (e.g., "Currently Reading", "Sci-Fi")
- Tag books with color-coded labels (0-10 tags per book)
- Edit metadata manually or fetch from online sources (Open Library, Google Books)
- Search and filter by title, author, tags, shelves, reading status, and more
- Physical book tracking - manually add and track physical books in your library
2. Integrated e-book reader¶
Typography controls:
- Font family selection (built-in and custom fonts)
- Font size, weight, line spacing, paragraph spacing
- Text alignment (left, right, center, justified)
- RTL language support
Appearance:
- Background color themes (light, dark, sepia, custom)
- Text and link color customization
- Adjustable margins and padding
- Brightness control (in-app)
Navigation:
- Single-page and two-page layouts
- Paginated and continuous scroll modes
- Table of contents navigation
- Go-to-page/percentage jump
- Progress bar with position indicator
- Touch zones, swipe gestures, volume key navigation
Reading profiles:
- Save named presets of all reader settings
- Quick profile switching
- Default profile per device
- Profile import/export
3. Annotations and notes¶
- Highlight text with multiple colors
- Add notes to highlights or create standalone book notes
- Bookmarks for quick navigation
- Export annotations to text, PDF, or Markdown
- Search across all annotations and notes
4. Reading progress and goals¶
Automatic tracking:
- Reading time per book and total
- Pages/percentage read
- Books started, in progress, completed
- Reading velocity statistics
Goals:
- Time-based goals (e.g., "Read 30 minutes daily")
- Book count goals (e.g., "Read 12 books this year")
- Custom goals with manual progress updates
- Visual progress indicators and charts
Synchronization:
- Reading position synced across devices
- Progress and statistics synchronized
5. Storage and sync¶
Storage options:
- Device local storage (default, no account required)
- Self-hosted server (for privacy-focused users)
- Cloud storage (Google Drive, OneDrive, Dropbox)
- Network storage (NAS, shared folders)
Offline support:
- Full offline functionality without account
- Automatic sync when online
- Conflict resolution options
Advanced features (post-MVP)¶
These features are planned for future releases:
- Format conversion between EPUB, PDF, and MOBI
- OPDS catalog browsing - download from online catalogs
- OCR processing - extract text from scanned documents
- Audiobook support - manage and play audiobooks with synchronized progress
- Text-to-speech - read books aloud
- Social features - share progress, reviews, and recommendations
- AI-powered features - summaries, recommendations, smart categorization
- ISBN barcode scanning - add physical books by scanning
- Plugin system - extend functionality with community plugins
Documentation¶
This specification provides comprehensive documentation for development and maintenance:
Requirements¶
- Requirements Overview - Structure and traceability
- Functional Requirements - What the system does
- Non-Functional Requirements - How the system performs
System design¶
- Actors - User types and their interactions
- Use Cases - Detailed workflows and scenarios
- Entities - Data model and relationships
- Database Model - Database schema and design
Implementation¶
- Technologies - Technology stack and architecture
- User Interface - Design guidelines and UI specifications
- Market Analysis - Competitive landscape and positioning
Quick reference¶
Requirement notation¶
| Prefix | Meaning | Example |
|---|---|---|
| FR-X.Y | Functional Requirement | FR-2.1 (Book conversion) |
| NFR-X.Y | Non-Functional Requirement | NFR-4.1 (Startup time) |
| UC-X.Y | Use case | UC-2.1 (Import books) |
Feature priority levels¶
| Level | Description |
|---|---|
| P0 - Critical | Must have for MVP launch |
| P1 - High | Should have for MVP, can defer if needed |
| P2 - Medium | Nice to have, planned for post-MVP |
| P3 - Low | Future consideration, not planned |