2lazy library

Loadingโ€ฆ

๐Ÿ“ฑ A native mobile app is in development. This web version is in maintenance mode โ€” bugs are still fixed, but no new features will be added. The native app will eventually replace this one. Visit 2lazy.dev to stay updated or request access to the iOS TestFlight beta.

Track your reading backlog so you always know what's next. Works in dark mode, light mode, or follows your system preference.

Views

  • Home: dashboard with Currently Reading, What to Read Next (algorithmic picks), In Progress, Up Next, and Backlog sections; quick stats, recently added, upcoming releases, Pick For Me, and a ๐Ÿ“‹ Copy status button to copy your currently reading / up next / recently finished snapshot to the clipboard.
  • Series: card grid of every series and standalone book, sorted by how realistic each is to finish right now (owned pages, interest, progress). Search and filter by status, owned-only, format, tags, or SuperSeries.
  • My Books: five sub-views โ€” Reading List (one row per next-book-up, split into Currently Reading / In Progress / Up Next / Backlog / Re-reads), On My Shelf (owned and unstarted), To Find (need to buy or borrow), Finished (completed, sortable by date/author/title), All Books (every book in one flat list with read-status filter and bulk select โ€” also reachable via "All books โ†’" in the header), and Reading Log (every finished book in reverse-chronological order, grouped by month with section dividers; edit finish date inline from the row). All sub-views share format, type, tag, and SuperSeries filters.
  • Stats: aggregate counts, per-series breakdowns (click any bar to drill in), rolling 12-month reading history chart, yearly goal progress, optional reading pace summary with 30/90/365-day trend, and a Reading Insights section with series completion rate, DNF count, average time to finish a series, longest reading gap, top authors, and read-book format breakdown.
  • SuperSeries: group related series and standalone books into named SuperSeries (e.g. the Cosmere); define a reading order; browse members in list or cover-grid view; filter by tag. Each SuperSeries card shows a Next up strip with the next unread book in reading order.

Adding & editing

  • Search books via the Google Books API (free, no account required). Pulls title, author, page count, and cover art automatically. Switch to ISBN mode in the search bar for faster, exact lookups by ISBN-10 or ISBN-13.
  • Group books into series or track them as standalone books.
  • Duplicate detection: when adding a new series, standalone book, or SuperSeries, a warning banner appears if a fuzzy-match already exists in your library. Click View to jump to the existing entry, or Ignore to proceed anyway.
  • Series completion celebration: marking the last book as read triggers a gold "๐ŸŽ‰ You finishedโ€ฆ" toast and a confetti animation.
  • Placeholder book "Announce" flow: placeholder books (future unannounced volumes) show an "Announce โ†’" shortcut in the series book list and a banner on their detail page โ€” tap it to fill in the real title, pages, and release date without hunting through settings.
  • Click any card to open its detail page: edit name, author, interest level, notes, and tags; toggle Paused, DNF, or Want to Re-read status; mark all books owned/read at once; use "Mark all N unread books as read" to batch-complete an entire series in one tap (with confirmation). Series status derives automatically from book states.
  • Click any book inside the series detail to open the book detail page: edit title, cover, format, pages, duration, deadline, owned, reading state (Want to Read / In Progress / Read / DNF), library availability, tags, and series position. Hover the cover thumbnail to reveal the edit icon โ€” paste a URL, search Google Books, or upload a local image (resized and stored in localStorage).
  • Series detail deep links: share or bookmark /series/:id#book-:bookId URLs; the app scrolls directly to the target book row and briefly highlights it.
  • Set format per book: Physical, Digital, or Audio. Selecting Audio reveals a duration field (hours). Series cards and detail pages show audio length as "Xh left" and mixed collections as "300 pg + 7h left".
  • Set a reading deadline or priority flag per book. Priority books (and those with deadlines) surface in "Up Next". Overdue deadlines show "Overdue" on the card. When reading pace estimates are enabled, deadline entries also show an "on track" or "at risk" badge, and unread book detail pages show an estimated time-to-finish ("At your current pace: ~N weeks").
  • Mark individual books in a series as Currently Reading. These appear in their own section on Home and Reading List, separate from series merely "in progress".
  • Flag finished series or books as Want to Re-read to resurface them in the Reading List Re-reads section.
  • Flag any unowned book as Want to Own from the book detail view โ€” all wishlisted books appear together in My Shelf โ†’ Wishlist, so you always know what to pick up next at the bookstore.
  • Tag series, books, and SuperSeries with freeform tags; filter each view by tag. Use Select mode in the Series grid to bulk-add a tag to multiple series at once โ€” click the "Select" button, tap the cards you want, type a tag, and press "+ Add".
  • Enable Group by author in the Series Sort & filter panel to cluster your series under per-author headings ("Terry Pratchett ยท 3 series") in both tile and list view โ€” works alongside any active sort order or filter.
  • Add freeform notes to any book โ€” including individual books inside a series. Great for "borrowed from Sarah", "read for book club", or a quick reaction.
  • The author field offers autocomplete suggestions from your existing entries. Click any author name on a card or detail page to browse all their entries.
  • Assign a series or standalone book to a SuperSeries directly in the add wizard.

What to Read Next & Pick for Me

What to Read Next on the Home tab surfaces up to 6 algorithmic picks โ€” shortest in-progress book, quickest series finish, due-soon/high-priority items, shortest owned standalone, and a surprise pick. Tap any chip to swap in an alternative from the same slot.

Pick for Me is a weighted random roll based on owned pages, interest rating, and how long a series has been in your backlog. Hit it as many times as you like.

Your data

Everything is stored in your browser's localStorage โ€” no account, no servers, no tracking. Data is automatically compressed (LZString) to fit more within the browser's 5 MB limit. Use Export backup in the โš™ Settings โ†’ Data tab to download a JSON file at any time, and Import backup to restore it in any browser. Use Export CSV to download all books as a spreadsheet for analysis or migration. Use Export to StoryGraph to export your library in StoryGraph's native format, ready to import back into your StoryGraph account. If storage fills up, a red pill appears in the header; open โš™ Settings โ†’ Advanced โ†’ Storage to see usage and free space by stripping cover images.

Already have a reading history on StoryGraph? Export your library from StoryGraph (Profile โ†’ Export Data) and import it via โš™ Settings โ†’ Data โ†’ Import from StoryGraph. Books are added as standalones and merged with your existing library โ€” nothing is overwritten.

Migrate to the mobile app

When you get access to the native mobile app, transferring your library is a one-time export and import:

  1. In this web app, go to โš™ Settings โ†’ Data and tap Export backup. Save the .json file somewhere you can access from your phone (e.g. iCloud Drive, Google Drive, or email it to yourself).
  2. Open the mobile app, go to Settings โ†’ Data, and tap Import backup.
  3. Select the .json file โ€” your entire library (series, books, SuperSeries, settings) will be imported.

Your data in this web app is untouched; the import only writes to the mobile app. You can keep using both in parallel, just re-export whenever you want to sync.

Install on your phone (web version)

While waiting for the native app, you can install this web app as a home-screen shortcut for a near-native experience:

iPhone / iPad (Safari):

  1. Open app.2lazy.dev in Safari (not Chrome โ€” only Safari can add to the home screen on iOS).
  2. Tap the Share button (the square with an arrow pointing up) at the bottom of the screen.
  3. Scroll down and tap Add to Home Screen.
  4. Tap Add in the top-right corner.

Android (Chrome):

  1. Open app.2lazy.dev in Chrome.
  2. Tap the three-dot menu (โ‹ฎ) in the top-right corner.
  3. Tap Add to Home screen (or Install app if the browser detects a PWA manifest).
  4. Tap Add to confirm.

The installed shortcut opens the app full-screen without browser chrome, and your data is still saved locally in the browser โ€” not tied to the shortcut itself.

Report a bug / join the beta

Found something broken? Still happy to fix bugs in this version โ€” reach out via 2lazy.dev. No new features will be added to this web version.

Interested in the native iOS/Android app? The iOS version will be distributed via TestFlight while it's in beta. To request an invitation, contact via 2lazy.dev. You can also keep using this web version โ€” it's not going anywhere.

About

Built by a software engineer who kept losing track of what to read next and kept abandoning series halfway through. Now in maintenance mode as development shifts to the native mobile app.

2lazy library v0.2.0 ยท 2lazy.dev

Edit cover image

or paste a URL above

Tags

Reading Order (optional)

Arrange the recommended reading order. Moving a series entry moves it as one unit.