Shipped, and shipping next.
mybibli reached v1.0 after ten epics of foundational work, and is in production on the household NAS that drove the project. Beyond v1, every release is a focused theme — see what's coming next, or scroll down for what already shipped. Pre-built Docker images on Docker Hub; everything tracked openly as GitHub issues.
Source of truth: _bmad-output/implementation-artifacts/sprint-status.yaml in the repo.
Coming up.
Planned releases, in roughly the order they will ship. Themes are stable, dates are not — mybibli is a side-project and ships when ready. Each version is bundled around one coherent user benefit. The full plan, including the tech-debt parking lot, lives in ROADMAP.md.
-
Backlog
Polish & community CRs
UnscheduledThe originally-planned v1.1–v1.7 build is complete and v1.8 closed out the themed minors. mybibli is now in GH-issue-driven polish mode: v1.9.0 was the first issue-driven feature minor (saved custom searches over the home filter/sort surface, per-provider metadata-timeout overrides in the admin System tab, the admin log-level form’s stale-version 409 fixed, and HTTP transport-crate debug chatter capped), followed by v1.10.0 — a 30-second undo of the last scan action (#9) — then v1.11.0, a four-issue bundle straight from a production-log review (persistent session cookie + configurable timeout #418, bulk cover-refetch pacing/back-off/summary #419, auto-purge unblocked #416, log-noise fix #417) — then v1.12.0 (same day): BnF Couvertures + Inventaire.io cover sources (#427) and the highest-used-label helper for printing sheets (#428) — then v1.13.0 (2026-07-24): six UNIMARC-aligned cataloging fields captured from the BnF at scan time — then v1.14.0 (2026-07-28): three scan-flow fixes (volume labels attaching to the previous title #440, a misleading not-found on a deleted active title #441, labels locked after deletion #442) plus Library of Congress MARC 21 records filling the UNIMARC fields for English-language books #439. Then v1.15.0 (2026-08-13), a four-issue bundle from an August production-log review: titles now record and show which library described them (#202), faint secondary text raised above the AA contrast floor (#424), a third retry tier so bulk metadata runs stop abandoning throttled titles (#419), and a shorter build commit in the startup log (#449); one additive migration. Then v1.16.0 (2026-08-17): K10plus, the German union catalogue, joins the metadata chain and becomes its leading source of bibliographic detail — 45 titles completed against the Library of Congress's 29 (#450); a locked-out administrator can be reset from a single startup variable (#459); shelf-location codes stop proposing a number a deleted location still holds (#457); and four flaky end-to-end tests were fixed at the source (#458); no migration. Then v1.17.0 (2026-08-18): a metadata lookup that finds nothing now names which of three things happened — nobody holds the book, a source was too busy, or a source was never asked for want of an access key (#202) — and the edit form groups genre with the Dewey code under Classification, stating which of the two a lookup may overwrite (#206); no migration. The latest is v1.18.0 (2026-08-18): management labels (#443) — define your own vocabulary once and put any of it on a title or on a single copy, then find everything carrying a label from a page of its own; labels stay internal to the library. One automatic migration, and the navigation bar now switches to its menu below 1024px rather than 768px. Superseded detail on v1.13.0: six UNIMARC-aligned cataloging fields captured from the BnF at scan time and shown on the title page, with a Health-tab backfill action for existing catalogs (#389) and a per-title cataloging log summary (#434); record import/export was dropped in August 2026 — SIGB record exchange makes no sense for a household library. Then v1.19.0 (2026-09-11) : the three change requests of a security review run against the 1.18.0 code, with no migration to run — the Trash panel's Restore button reaches a route that exists, after seventeen releases in which clicking it did nothing at all (#478) ; the development accounts a fresh install ships with are deleted outright at first boot instead of resting in the Trash with their published passwords (#480) ; and a cover decode runs under a fixed allocation budget, so an image that is small on the wire and enormous once decoded is refused rather than taking the container down (#479). The latest is v1.20.0 (2026-09-23): the admin Health tab shows the last volume number and the last shelf number in use, each with the next free number, so a new sheet of barcode labels starts right after the occupied range — trashed items still count, so a printed sticker is never reissued (#489); no migration. New CRs are queued here until a coherent theme emerges or enough land to bundle into the next minor; patches ship independently for production bugs. The full release-by-release history lives in ROADMAP.md and on the GitHub releases page.
- Nothing open — the backlog is empty for the first time since the project opened. New work starts from a fresh report.
Full list lives in ROADMAP.md's parking lot.
-
v2.0 candidate
Classification, reinvented
ExploringToday the "genre" field tries to be two things at once: the catalog source's idea of a section, and the owner's manual classification. v2 candidate splits them — keep Dewey for the standards-based axis, treat genre as a free-form owner-side label, and stop the auto-fetch from ever touching either.
- Splits a longstanding entanglement that surfaced in v1.1.8's
genre_idfix. - Will land on a minor version if a backwards-compatible path is found, on v2.0 otherwise.
Tracked on GitHub: #206
- Splits a longstanding entanglement that surfaced in v1.1.8's
The ten epics
Each one ships behind a draft PR per story, gated by green CI. Each one ends with a retrospective.
-
Epic 1
Catalog my first book
✓ DoneProject skeleton, scan field, title CRUD with ISBN scanning, volume management, contributor management, search, async metadata fetch, login. The foundation.
-
Epic 2
I know where my books are
✓ DoneConfigurable storage-location hierarchy, scan-to-shelve workflow, browse a shelf's contents, contextual guidance.
-
Epic 3
All my media types
✓ DoneProvider chain (BnF / Google Books / Open Library / Library of Congress / MusicBrainz / OMDb / TMDb / BDGest), media-type-aware scanning, cover image management, metadata editing and re-download.
-
Epic 4
I manage my loans
✓ DoneBorrower CRUD & search, loan registration with validation, loan return with automatic location restoration, per-borrower history.
-
Epic 5
My series & my collection
✓ DoneE2E test stabilization, contributor deletion guard, series CRUD, title/series assignment with gap detection, BD multi-position omnibus support, browse list/grid toggle, similar titles, Dewey codes.
-
Epic 6
CI/CD pipeline & reliability
✓ DoneGitHub Actions pipeline, seeded librarian + login-as for parallel-safe E2E, manually-edited-fields race fix, cleanup of
waitForTimeoutwith a CI grep gate. -
Epic 7
Multi-role access & security
✓ DoneAnonymous browsing with role gating, session inactivity timeout with keep-alive toast, language toggle (FR/EN), strict Content Security Policy headers, scanner-guard modal interception.
-
Epic 8
Administration & configuration
✓ DoneAdmin shell with health tab, CSRF synchronizer-token middleware, user administration, reference-data management, system settings, trash view + restore, permanent delete + auto-purge, first-launch setup wizard.
-
Epic 9
UX polish & accessibility
✓ DoneDashboard indicators, modal-based confirmations replacing
hx-confirm, status messages and empty states, connection-lost overlay, navbar polish, contextual help tooltips, keyboard shortcuts, responsive layouts, and a final WCAG 2.2 AA audit. -
Epic 10
Mobile UX & sécurité closeout
✓ DoneAuth threat model documented end-to-end, CSRF rejection UX (server-rendered "session expired" feedback), mobile DataTable card mode + admin tabs
<select>dropdown (dual-surface pattern), axe-core extended to every entity-detail route. Closeout epic — every story grounded in a GitHub issue from the post-Epic-9 review pass, no new feature surface. -
Milestone
v1.1 → v1.12 — the production line
✓ Livemybibli has been live on the household NAS that drove the project since v1.1.1 (2026-05-14). Seven themed minors (v1.2 "See what you own, find it faster" → v1.8 "Covers, honestly") delivered the original feature roadmap — browse & find, wishlist, the JSON HTTP API, valuation & stats, catalog hygiene, German/Italian locales + runtime logging, honest cover handling — each followed by a production-driven patch train. The current release is v1.20.0 — the last volume number and the last shelf number in use on the admin Health tab, each with the next free number, so a new sheet of barcode labels starts after the occupied range (#489); no migration. It follows v1.19.0 — three fixes from a security review of the 1.18.0 code, no migration: a Trash Restore button that finally restores (#478), seeded development accounts deleted outright instead of parked in the Trash (#480), and a bounded cover decode (#479). It follows v1.18.0 — management labels applied to titles and copies from one shared vocabulary, with a page of their own (#443). It follows v1.17.0 — a failed metadata lookup now names the reason rather than only the failure (#202), and genre and Dewey are grouped into a Classification section stating which of the two a lookup may overwrite (#206). It follows v1.16.0 — K10plus bibliographic coverage for English-language titles the other libraries do not hold (#450), a one-shot startup hatch for a locked-out administrator (#459), a shelf-location code that is genuinely free (#457), and four deflaked end-to-end tests (#458). It follows v1.15.0 — metadata provenance on the title page (#202), light-mode contrast raised to the AA threshold (#424), a third retry tier for bulk metadata runs (#419), and a shorter build commit in the log — and v1.14.0 — three scan-flow fixes (#440, #441, #442) and Library of Congress MARC 21 coverage for English-language books (#439) — and v1.13.0 — six UNIMARC-aligned cataloging fields captured automatically from the BnF and a Health-tab backfill action for existing catalogs (#389), plus a per-title cataloging log summary (#434). It follows v1.12.0 — two new cover sources (BnF legal-deposit scans + Inventaire.io, #427) recovering about half of the previously unfindable French/Swiss covers, and a label-printing helper (#428) — and same-day v1.11.0 — a four-issue bundle from a production-log review: sessions that survive a tablet screen-lock (#418), a bulk cover-refetch that paces itself and reports its results (#419), the daily auto-purge unblocked (#416), and quieter logs (#417). It follows v1.10.0 — the scanner Undo button (#9) — and v1.9 — the v1.9.0 feature minor (saved searches, per-provider metadata timeouts, logging fixes) plus a same-day v1.9.1 patch localizing the last two client-side messages in German/Italian. Every release is documented on the GitHub releases page.
Epic 9 — story by story
Twenty-two stories. All shipped, retrospective complete (2026-05-10). Each story links to its merged PR via the issues view on GitHub.
Steer the next release.
The roadmap above describes the direction. The order — and which features get pulled forward, deferred, or reshaped — depends on what real users hit. If something in what's next matters to you, say so on the issue. If a feature is missing entirely, open one — every release of mybibli so far has been driven by production feedback.