A lot has been happening behind the scenes lately. I have been rather quiet for a while, and the following project is the reason why.
Part 1 – The Story and the Idea
For years I managed my book collection with Tellico, a capable open-source cataloging tool that stored everything neatly in XML. It worked well for a time, yet the more my library grew, the slower its HTML export became. Pages that once opened instantly now took seconds to load, and search felt sluggish even for small queries. What began as a hobby project to keep track of my shelves turned into a constant wait for progress bars to finish.
At some point I decided to solve the problem myself. The result was Bonk, a small Python converter that transformed Tellico’s XML data into static HTML pages. Bonk stripped away all unnecessary overhead and replaced it with instant, client-side search. It was fast, light, and satisfying to use, a tiny program that restored the joy of browsing my own library.
Still, Bonk was only a first step. It produced beautiful static sites but offered no way to edit or curate the data directly. Every change had to be made in Tellico, exported, converted, and re-uploaded. The missing piece was an environment that combined the immediacy of Bonk’s output with the control of a real desktop database. That idea grew quietly until it became VoluminaX.
VoluminaX takes the original concept much further. It is no longer a converter, but a complete application designed for everyday library work. Built around SQLite, it offers speed, reliability, and simplicity. A clean graphical interface invites you to browse, filter, search, and edit entries directly in a responsive table view. Adding or duplicating a book feels as quick as writing a note. Every change is reflected instantly.
Publishing remains central to the philosophy. With a single command, VoluminaX generates lightweight, portable HTML pages that open immediately in any browser. Each book receives its own page, linked through a searchable index. Uploading is handled internally through SFTP or FTP. Once the files are online, the collection becomes a fast, responsive web library accessible from any device.
VoluminaX is not limited to books alone. For comics, it includes a CSV importer that helps clean metadata, detect duplicates, and standardize numbering. For new acquisitions, ISBN lookup through Google Books fetches structured metadata automatically. Validation routines catch malformed identifiers before import, and a preview window shows the fetched details before committing them to the database.
The program also bridges the digital and the tangible. Its print module can generate elegant PDFs, compact lists, or classic catalog cards. You decide which details to include, from summaries and covers to notes and ISBNs. The result can be exported as text, HTML, or PDF, or printed directly. In this way, VoluminaX restores something of the physical charm of libraries: a balance between screens and paper, order and touch.
The name itself reflects this duality. Volumina is the Latin plural of volumen, the word for scrolls or books, while the letter X marks expansion and transformation. It connects the project back to Bonk and forward to a complete ecosystem for managing and publishing collections. The program’s purpose is practical, but its spirit is archival: to preserve, organize, and share knowledge gracefully, whether in digital or printed form.
VoluminaX embodies the same principle that guided Bonk, speed through simplicity, yet it now does so within a refined, modern architecture. It is the quiet evolution of a tool that began as a personal necessity and grew into a companion for anyone who loves books and data alike.
Part 2 – Inside VoluminaX
Behind the calm interface lies a well-structured Python application built around clarity and maintainability. At its heart is SQLite, chosen for its reliability and zero-configuration design. The database schema keeps things deliberately simple: one table for the main book records, auxiliary tables for tags, authors, and publishers, and a minimal set of indexes to maintain instant lookup speed.
Architecture
VoluminaX is written in Python 3.13 and uses Tkinter and CustomTkinter for its GUI. The application starts by initializing the main window, and loading configuration data from JSON. This configuration defines the current library path, upload credentials, and publishing options.
Each functional area of the program is modularized:
Database module: handles all SQL operations, including creation, querying, insertion, and updates. Parameterized statements prevent errors and keep operations fast.
UI controller: manages the Treeview that displays all records. Columns such as ID, Title, Subtitle, and Author are sortable through click handlers that trigger SQL ORDER BY operations.
Importers: provide routines for reading Tellico XML files, generic CSV sources, or ISBN lookups. The Google Books API module performs metadata retrieval, validates ISBNs, and merges results with existing records.
Exporter: generates static HTML pages from the SQLite dataset. Templates define consistent formatting and include responsive CSS, ensuring pages load instantly even on low-power devices.
Uploader: supports both SFTP and FTP. It compares local and remote directories, skipping files that already exist to save bandwidth. A progress log keeps the user informed during uploads.
Printer: uses Python’s printing and PDF libraries to render catalog views. Layout options define whether to include covers, summaries, or personal notes.
Design Philosophy
VoluminaX follows a principle of static by design. The goal is not to serve dynamic web content, but to produce permanent, portable files that can live anywhere, on a web server, in a local archive, or on a USB stick. This approach eliminates dependencies, hosting complexity, and load times.
Internally, the application favors synchronous operations for clarity and predictable behavior. The interface responds immediately because each action updates both the database and the visible table at once. There is no hidden background process, no queue, and no lag.
Tkinter provides the base widgets, while CustomTkinter refines them with a modern theme and adaptive layout. The program’s visual hierarchy is clear and compact, built for constant use rather than demonstration. The result is a tool that feels responsive even on modest hardware.
Extensibility
The source code is structured to allow future modules. Planned additions include direct metadata editing for series and collections, more flexible CSV parsing rules, and optional integration with external catalogs. Because the codebase is modular, new importers or output formats can be added without disrupting the core.
Reliability and Preservation
Every operation, import, export, upload, is logged locally with timestamps. This log forms a verifiable record of all changes. The database file itself is portable and cross-platform, readable by any SQLite tool. The static HTML output can be archived or mirrored without dependency on servers or scripts.
In this way, VoluminaX aligns with the principle that software should not just work, but last.
VoluminaX began as a performance experiment, grew into a practical desktop tool, and ended up as a reflection on how we manage knowledge itself. It combines the precision of databases with the openness of the web and the permanence of print. The interface may be modern, but the idea is timeless, keep what matters organized, searchable, and beautifully presented.