๐ฑ 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:
- 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).
- Open the mobile app, go to Settings โ Data,
and tap Import backup.
- 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):
- Open app.2lazy.dev
in Safari (not Chrome โ only Safari can add to the home screen on iOS).
- Tap the Share button (the square with an arrow pointing up) at the bottom of the screen.
- Scroll down and tap Add to Home Screen.
- Tap Add in the top-right corner.
Android (Chrome):
- Open app.2lazy.dev
in Chrome.
- Tap the three-dot menu (โฎ) in the top-right corner.
- Tap Add to Home screen (or Install app
if the browser detects a PWA manifest).
- 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