Reading workflow utility

Reading log generator with exports that stay readable.

Capture each book once, keep your progress in the browser, and generate a clean reading log for journals, clubs, classes, or personal archives. Export as Markdown, CSV, JSON, or plain text whenever you need it.

Add a reading entry

Titles are required. Dates, pages, and rating stay optional, but invalid combinations are blocked before anything is saved.

Use the title as you want it to appear in exports.
Leave blank to auto-fill from status when possible.
Separate tags with commas, such as fiction, mystery, book club.

Current log

Entries stay in your browser with local storage until you clear them.

Entries 0
Pages tracked 0
Finished books 0
Average rating 0.0

Generated export

Choose a format and the tool will rebuild the output from your current log. Empty logs produce a safe placeholder instead of broken exports.

Export format
Assumptions: rating is shown to one decimal place, day counts are calendar-day based, and blank optional fields export as empty values rather than placeholders.

How it works

The tool is intentionally direct: store the details you care about, then generate an export that matches where you keep notes.

1. Capture a book once

Add a title, choose a status, and include dates, pages, tags, and notes only if they matter for your log. The form trims extra spaces and rejects impossible values such as a finish date before a start date.

2. Keep a useful running list

The current log summarizes entry count, pages tracked, completed books, and average rating. You can edit any saved entry by loading it back into the form, then saving again.

3. Export in a practical format

Markdown works well for journals and note apps, CSV fits spreadsheets, JSON supports automation, and plain text gives you a compact archive. Downloads are named from the selected format automatically.

Reading pace and completion timing are simple record-keeping aids, not predictive planning tools. If your pages read or dates are approximate, the generated summary will reflect that approximation.