Skip to content
mybibli
Roadmap

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.

v1 scope 100%

Source of truth: _bmad-output/implementation-artifacts/sprint-status.yaml in the repo.

What's next

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.

  1. Backlog

    Polish & community CRs

    Unscheduled

    The 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.

  2. v2.0 candidate

    Classification, reinvented

    Exploring

    Today 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_id fix.
    • Will land on a minor version if a backwards-compatible path is found, on v2.0 otherwise.

    Tracked on GitHub: #206

Shipped

The ten epics

Each one ships behind a draft PR per story, gated by green CI. Each one ends with a retrospective.

  1. Epic 1

    Catalog my first book

    ✓ Done

    Project skeleton, scan field, title CRUD with ISBN scanning, volume management, contributor management, search, async metadata fetch, login. The foundation.

  2. Epic 2

    I know where my books are

    ✓ Done

    Configurable storage-location hierarchy, scan-to-shelve workflow, browse a shelf's contents, contextual guidance.

  3. Epic 3

    All my media types

    ✓ Done

    Provider 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.

  4. Epic 4

    I manage my loans

    ✓ Done

    Borrower CRUD & search, loan registration with validation, loan return with automatic location restoration, per-borrower history.

  5. Epic 5

    My series & my collection

    ✓ Done

    E2E 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.

  6. Epic 6

    CI/CD pipeline & reliability

    ✓ Done

    GitHub Actions pipeline, seeded librarian + login-as for parallel-safe E2E, manually-edited-fields race fix, cleanup of waitForTimeout with a CI grep gate.

  7. Epic 7

    Multi-role access & security

    ✓ Done

    Anonymous browsing with role gating, session inactivity timeout with keep-alive toast, language toggle (FR/EN), strict Content Security Policy headers, scanner-guard modal interception.

  8. Epic 8

    Administration & configuration

    ✓ Done

    Admin 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.

  9. Epic 9

    UX polish & accessibility

    ✓ Done

    Dashboard 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.

  10. Epic 10

    Mobile UX & sécurité closeout

    ✓ Done

    Auth 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.

  11. Milestone

    v1.1 → v1.12 — the production line

    ✓ Live

    mybibli 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 complete

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.

9-1 Dashboard global stats card done
9-2 Dashboard recent additions done
9-3 Dashboard stats by genre done
9-4 FilterTag & unshelved indicator done
9-5 Overdue loans indicator done
9-6 Series-with-gaps indicator done
9-7 Recent activity indicators done
9-8 Loan status, role-aware done
9-9 Home page scanner state machine done
9-10 Modal foundation + delete-borrower migration done
9-11 Migrate return-loan to modal done
9-12 Migrate delete-contributor to modal done
9-13 Migrate delete-series to modal done
9-14 Migrate deactivate-user to modal done
9-15 Status messages & empty states done
9-16 Connection-lost overlay done
9-17 Navbar hamburger & scanner auto-close done
9-18 Navbar role-visibility polish done
9-19 Contextual help tooltips done
9-20 Keyboard shortcuts & cheat-sheet done
9-21 Responsive per-page layouts done
9-22 WCAG AA final audit done

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.