Skip to content

Readr is a lightweight browser-based tool for tracking your reading progress. Built with vanilla JS, HTML, and CSS, it lets you add, edit, and remove books, track completion, and backup or import logs via JSON with data saved locally in localStorage.

License

Notifications You must be signed in to change notification settings

conorgregson/reading-log-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

68 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

πŸ“š Readr - Turn pages into progress

Live Demo Docs Made with JavaScript License: GPL v3

Minimal, offline-first reading log with JSON backup/import, security policy, and contributor-friendly docs.

πŸ”— Full Documentation β†’


Live Demo

β–Ά Try it now: https://conorgregson.github.io/reading-log-app/

Data is saved locally in your browser via localStorage and is separate from your local dev data.


πŸ“‘ Table of Contents


ℹ️ About

Readr is a lightweight, browser-based reading log. Built with vanilla JavaScript, HTML, and CSS, it helps you track your books without external accounts, sync, or setup.


βœ… Features

πŸ“š Book Management

  • Add, edit, and remove books from your library
  • Track reading status (Planned, In Progress, Finished)
  • Organize and browse with search, filters, and saved search presets

πŸ“ Reading Sessions & Goals

  • Log reading sessions with minutes and optional notes
  • Daily & weekly goals with progress tracking
  • Automatic streak calculation and reading summaries
  • Keyboard shortcut to jump straight to Session History search

πŸ”„ Backup & Import

  • Export your full reading data (books + sessions) as JSON
  • Import backups with validation and auto-normalization
  • Import error handling for malformed or outdated data

πŸ“Š Reading Statistics (New in v1.9.0)

  • Per-day trend chart showing your reading activity over time
  • Top Books chart (minutes/pages read per book)
  • Both charts include accessible text summaries for screen-reader users
  • Charts update instantly when sessions change

πŸ–ΌοΈ Shareable Snapshot (New in v1.9.0)

  • Generate a clean progress snapshot card
  • Export snapshot to PNG for sharing
  • Theme-aware visuals (light/dark mode)
  • Dynamic logo switching for contrast
  • Shows trends, books completed, streaks, and total reading time

πŸŽ–οΈ Badges

  • 12 built-in achievement badges
  • Live-updating β€œX of 12 unlocked” summary
  • Primary-color highlight for unlocked badges
  • Accessible announcements when new badges are earned

β™Ώ Accessibility

  • ARIA live regions for charts, badges, Snapshot, and search
  • Keyboard navigation and improved focus handling
  • High-contrast visuals in dark & light themes

πŸ’Ύ Data Persistence

  • Fully offline
  • All reading data stored in localStorage

πŸ› οΈ Tech Stack

  • Frontend: HTML, CSS, Vanilla JS
  • Storage: LocalStorage + JSON import/export

πŸ—ΊοΈ Roadmap

Feature: Add/Edit Feature: Backup Feature: LocalStorage

Planned: Search Planned: Tags Planned: API%20Integration

See the full Roadmap for milestones and timelines.


πŸš€ Installation & Usage

  1. Clone the repository

    git clone https://github.com/conorgregson/reading-log-app.git
    cd reading-log-app
  2. Open the app Simply open the index.html file in your browser.

    • No build steps or dependencies required.
    • Works entirely offline with localStorage.
  3. Start using the app

    • Add, edit, or remove books from your log.
    • Track your reading progress and completion.
    • Backup and import your log as JSON files

πŸ”„ What's New in v1.9.0 β€” Visualization & Motivation

Readr v1.9.0 introduces the first major step toward visual insights and motivation-driven reading. This update adds charts, shareable progress snapshots, keyboard shortcuts, and meaningful accessibility upgrades.

πŸ“Š Reading Statistics (New)

  • Per-day reading trend chart with accessible text summaries
  • Top Books chart showing reading time distribution across finished books
  • Charts automatically update when sessions change
  • Fully keyboard-accessible and screen-reader-friendly

πŸ–ΌοΈ Shareable Snapshot (New)

  • Export a PNG snapshot of your reading progress
  • Theme-aware visuals (light/dark mode supported)
  • Displays trend summary, streak, books count, and reading totals
  • Dynamic logo that adapts to current theme for clean exports

πŸŽ–οΈ Badge Improvements

  • Badge summary (β€œX of 12 badges unlocked”) updates live
  • Unlocked badges now highlight correctly with primary color
  • Improved contrast and readability across both themes
  • Accessibility support for badge unlock announcements

⌨️ Productivity & A11y Enhancements

  • Keyboard shortcut to jump directly to Session History search
  • Help hint under the log form when shortcuts are enabled
  • ARIA live regions for charts, Snapshot trend text, and badges summary
  • Snapshot theming fixed so it always matches current appearance mode

πŸ“Έ Screenshots

Updated for v1.6.0 β€” Search & Filters

Main UI

Main UI

Goals & Sessions

Goals & Sessions

Books List (populated)

Books List

Bulk Edit Dialog

Bulk Edit

Dark Mode

Dark Mode

Settings Dropdown

Settings Dropdown

Search & Filters

Search & Filters

Multi-Select Filters

Multi-Select Filters

Saved Searches

Saved Searches

Search Results Example

Search Results

Installed App View

Installed App


πŸ“– Documentation

Full project documentation is available in the /docs folder:


🀝 Contributing

Contributions, issues, and feature requests are welcome!

Quick start for contributors:

  1. Fork the repo
  2. Create your feature branch (git checkout -b feature/my-feature)
  3. Commit your changes (git commit -m "feat: add my feature")
  4. Push to branch (git push origin feature/my-feature)
  5. Open a Pull Request

πŸ“§ Author

Made by Conor Gregson


πŸ“œ License

This project is licensed under the GNU General Public License v3.0 (GPL-3.0). See the LICENSE file for details

About

Readr is a lightweight browser-based tool for tracking your reading progress. Built with vanilla JS, HTML, and CSS, it lets you add, edit, and remove books, track completion, and backup or import logs via JSON with data saved locally in localStorage.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

No packages published