Digital bookshelf & manga/book management web app | ZeroTools

A digital bookshelf where you can register the series name, volume number, and cover of manga and novels you have bought, and check them arranged by series. In addition to manual entry, on supported browsers, you can scan the book's EAN-13 barcode or enter the 13-digit ISBN to retrieve candidates for the title, volume, author, and cover image. You can verify and register the retrieved details, using it as a supplementary tool at bookstores to check which volumes you already own.

Loading...

Browser storage and ISBN search communication

This tool saves all registered book data and cover images to the local database (IndexedDB) inside your browser. Manually entered records and user images are not sent to any bibliographic API. However, using the ISBN search feature will send the ISBN to external APIs (openBD and Google Books) to retrieve data, and cover URLs are fetched directly from the image provider. Please note that if you completely delete your browser's site data, the registered bookshelf data will also be deleted.

ZeroTools: Browser Processing & Privacy

ISBN lookup sends the ISBN to openBD or Google Books. Cover images contact their image hosts. Manual book entry is also available.

Processing and privacy policy
Chapter 1

Registered Information and the Difference between Manual Entry and ISBN Auto-complete

This tool is a digital bookshelf where you can register a single book linked to a series name, volume number, optional author name, and optional cover image.

You can register books either by "Manual entry" where you input the details yourself, or by "ISBN auto-complete" to retrieve bibliographic candidates.

Since the cover and author are not required, you can register a book with just the series name and volume number. Books without an ISBN or cover image can also be added to the bookshelf manually without a cover.

The data retrieved via ISBN auto-complete is not finalized automatically. The candidates for the series name, volume number, author, and cover are populated into the form for you to review and edit before saving.

For books not found in external services, those with unrecognizable volume numbers, or those lacking cover images, please enter the missing information manually.

Because the tool relies on the coverage and formatting of the external sources, there is no guarantee that accurate information will always be retrieved just by entering an ISBN.

This tool does not have features to record reading states like "want to read," "reading," or "finished," nor does it support star ratings, reviews, or tags.

If you intend to use it to check purchased books, you must establish your own rules, such as only registering books you currently own.

While it is technically possible to manually register books you do not have, mixing purchased and planned purchases makes it difficult to track your actual collection.

Keeping your registration criteria consistent is important when using this tool at a bookstore.

Chapter 2

Standardized ISBN-13 Normalization, Prefix and Checksum Validation, and Catalog Retrieval Order

ISBN processing now unifies English and Japanese handling through shared normalizeIsbn13 and isValidIsbn13 functions. The routine applies Unicode NFKC normalization to convert full-width digits, removes whitespace, and removes all supported hyphen variants including [-‐‑‒–—―ー].

Before initiating external requests, it strictly validates that the code contains 13 digits, begins with prefix 978 or 979, and satisfies the modulo-10 check digit algorithm; unverified formats are blocked locally and never dispatched to openBD or Google Books.

Note that a syntactically valid ISBN does not guarantee an external catalog hit or edition correctness. The lookup retains its original sequence—querying openBD first, followed by Google Books—while cover image retrieval, request timeouts, and cancellation handling remain unchanged without added safeguards.

Full-width ISBN entries such as 978-4-10-101001-4 are now cleanly normalized into 9784101010014, with hyphen variants removed and full-width digits converted before verifying the checksum.

If an entered code has fewer or more than 13 digits, lacks a 978 or 979 prefix, or carries an invalid check digit, it is rejected immediately by client-side validation and will never be sent to external APIs.

Both manual entry and camera barcode scanning enforce these strict prefix and checksum criteria. However, passing this structural validation merely confirms standard ISBN-13 syntax; it cannot ensure that openBD or Google Books will locate a matching record or deliver the intended edition.

Furthermore, network timeouts, image processing, and abort cancellation routines have not been overhauled, so existing operational warnings for slow connections or absent cover assets still apply.

A 13-digit input that passes basic validation is first sent to openBD. If no usable bibliographic information is obtained, the same number is sent to Google Books for a secondary search.

If a cover URL is returned, a fetch request is explicitly made to the image provider. The tool does not have a 10-second timeout, 12MB capacity limit, strict type validation, or image error handling; if the data structure is unexpected, the search will fail and you will need to enter the data manually.

Volume parsing in both English and Japanese now utilizes a unified parseTitleAndVolume helper instead of greedily grabbing the first digit found in title text.

Titles containing leading or embedded numbers—such as "3月のライオン", "20世紀少年", "1984", or "007"—correctly preserve those figures within the book title rather than misinterpreting them as volume counts.

The extractor recognizes volume information only from explicit metadata fields containing purely numeric values from 1 to 999, terminal Japanese volume suffixes like 第N巻 or N巻, or a clearly separated trailing integer between 1 and 999.

When no reliable terminal marker is detected, the volume field remains empty rather than defaulting to 1. The interface prompts the user to review the fetched metadata and enter an appropriate volume number (1–999) prior to saving the book.

Chapter 3

Barcode Support Differences and 300x450px Cover Image Processing

The feature to scan an ISBN barcode with a camera is enabled when the browser's native BarcodeDetector is available and supports the EAN-13 format.

It does not load proprietary AI or WebAssembly recognizers. Camera permissions are required, and detection may fail depending on device support, permission settings, glare, book curvature, or print quality.

If the scan button does not appear or reading fails, you can manually enter the 13-digit ISBN.

You can provide a cover by selecting a local image file or taking a photo with the camera. The tool does not enforce a 12MB size limit, check if the browser can decode it as an image, or handle img.onerror events, so corrupted files might silently fail to load or remain unresponsive.

When retrieving an external cover, the same lack of capacity limits applies. If retrieval fails, you can still register the book without a cover or replace it with a local image.

The loaded image is adjusted within a 2:3 preview area. You can drag to move the position and use the slider to scale it from 0.5x to 2.5x to select the framing.

The finalized area is drawn onto a Canvas at 300x450px and converted to a JPEG Blob with a quality of 0.85 before being saved to the collection record.

It does not retain the original image format, original resolution, or metadata such as EXIF.

There is no state to block the save button during image processing, meaning there is no protection against older async processes completing late and overwriting a newly selected image.

The camera's MediaStream is stopped when manually stopped or closed, but processing is not guaranteed to halt entirely upon unmounting or for pending requests.

Cropping a local image is processed within the browser, but selecting an external cover via ISBN auto-complete will trigger a fetch request to the image provider.

Chapter 4

Grouping by Series, Volume Order, and Limitations of Duplicate Registration

After saving, books are grouped by the exact series title string, and within each series, they are ordered numerically by volume.

Even if you register volumes in the order of 3, 1, and then 2, they will be displayed as 1, 2, and 3. You can switch between a bookshelf view that groups items by series and a grid view that lists all items.

The search bar filters by partial matches of the title and author name, making it easy to find books even as your collection grows.

Series grouping across both English and Japanese interfaces now safely relies on Map collections rather than plain object dictionaries, ensuring that series titles matching reserved property names such as __proto__ or constructor are stored without treating those titles as inherited object properties.

However, grouping continues to depend strictly on exact string matching without fuzzy normalization or automated deduplication. As a result, titles with minor differences—such as "Title" and "Title Complete Edition"—will always be categorized into distinct, independent groups.

Because the application does not include functionality to merge existing groups or perform batch edits on registered titles, planning and standardizing your naming conventions beforehand remains recommended.

In addition, while author names can be searched across your catalog, the system does not automatically generate dedicated author-based shelves.

The tool does not feature a confirmation dialog warning you of duplicate volumes if you try to add the exact same title and volume number.

The database lacks unique constraints, meaning you can register multiple copies of the same volume without any alerts. It also cannot distinguish between alternate names, abbreviations, or different editions.

It is simply a tool to check your own registered records, not one that actively prevents duplicate purchases.

On the details screen, you can check the series name, volume, author, date added, and cover for each book, and delete it after a confirmation dialog.

There is no trash bin or edit history to restore deleted items. To avoid accidental deletions, please carefully verify the series name and volume number before confirming the operation.

Chapter 5

Items Saved to IndexedDB and Data Retention Limits

The items saved are the series title, volume number, optional author name, processed cover JPEG Blob, and the date and time added.

The tool does not save the ISBN itself, publisher, release date, reading status, ratings, reviews, tags, or search history. Even for information retrieved via ISBN, only the final details left in the form are saved as the collection record.

There is no tool-specific encryption, user accounts, or cloud synchronization.

The data is saved to a Dexie IndexedDB (BookshelfDatabase schema 1, holding books) tied to the specific combination of browser and site.

The database is shared across the same origin for both Japanese and English versions. It is not automatically synced between smartphones and PCs, or between different profiles.

Data may be lost due to clearing site data, storage limitations, exiting private browsing, or changing devices, so retention period and data permanence are not guaranteed.

Exporting to CSV/JSON, backup, restoration, and bulk migration are currently not supported. If the browser's storage capacity runs out, adding a new record containing a cover Blob may fail.

Omitting the cover will reduce the storage used per book, but it is safest not to rely on this tool as your only library ledger. Crucial information should be maintained in a way that can be confirmed through other methods.

Chapter 6

Communication Differences between Manual Entry and ISBN Completion, and Limits when Checking at Bookstores

When manually entering and saving a series title, volume number, and author name, or when uploading a local image, these values are not sent to any bibliographic API.

Searching, switching views, displaying details, and deleting records in the saved bookshelf also do not use external APIs. However, the ISBN auto-complete feature does send the ISBN to external bibliographic services (openBD, Google Books), and retrieving a cover involves a fetch request to the image provider.

This must be distinguished from the site's general communication for loading HTML, CSS, JavaScript, ads, and analytics.

At a bookstore, you can search for a series title and review the registered volumes in numerical order. For example, confirming that you have volumes 1 through 8 but not 9 can help inform your purchase decision.

However, there is no function to automatically fetch purchase history from e-book stores or physical shops, nor to notify you of new releases.

Since it cannot automatically account for forgotten registrations or alternative titles, it is not a system guaranteed to prevent duplicate buying.

If the network connection inside the store is poor, the ISBN search may fail or time out. Scanning might also fail due to an unsupported BarcodeDetector, denied camera permissions, or glare on the barcode.

In such cases, you can manually enter the ISBN, and if bibliographic information cannot be retrieved, enter the title and volume directly.

Since the cover is optional, registering without a cover is a viable alternative that avoids network communication and camera use.

This tool is simply a supplementary aid for checking your manually logged records before making a purchase.

Frequently Asked Questions (FAQ)

A.
By registering the series titles and volumes you have already purchased, you can search your bookshelf at bookstores to check which volumes you own. The tool does not automatically warn you if you register the same title and volume again, nor can it detect unregistered items or spelling variations. It is a supplementary tool for checking your own records and does not completely prevent duplicate buying.
A.
The series title, volume number, author name, processed cover image, and registration date are saved in this site's IndexedDB. The tool does not perform its own encryption. Manually entered library information and images you select are not sent to external bibliographic APIs, but this is separate from the standard communication required for page display.
A.
Yes. The ISBN is sent to openBD to search for bibliographic information, and if not found, it is sent to Google Books. When retrieving a cover, it also communicates with the image provider. The retrieved content consists of candidates derived from external data, so please confirm the series title, volume, author, and cover before registering.
A.
Yes, on supported browsers that allow camera access. The image is adjusted for position and scale within a 2:3 frame, converted to a 300x450px JPEG, and saved in IndexedDB. During this cover processing, there is no function to upload the selected or captured image to the tool's own servers.
A.
It is displayed only when the browser's native BarcodeDetector supports EAN-13. Camera permissions are also required. In unsupported environments or when permissions cannot be granted, please enter the 13-digit ISBN (starting with 978 or 979) found on the back cover of the book.
A.
Currently, cloud synchronization, backup, export, and restoration are not supported. You may lose access to your registered content if you delete site data, clear your browser's storage, exit private browsing, or change devices or browsers.