Back to home

Changelog

What we've been building

A meticulous record of every feature, fix, and questionable design decision. Because if we track provenance for your books, we should track it for our code too.

Current version1.16.060 releases

1.16.0

Latest

The Long Shelf

·16 changes

At fifty books, a collection needs a shelf. At five thousand, it also needs the software to get a move on. Lists do less repeated work, reports remember the photographs at the far end, and catalog descriptions can be refreshed together. The paper inserts have dressed for the occasion.

Improved

Swiss print inserts in six sizes, from A6 to US Legal; full descriptions on larger sheets, concise copy records on A5 and A6

Added

Refresh every Trade and ISBD description from Settings, in its saved language, without AI credits; confirm before replacing handwritten descriptions

Fixed

Catalog numbers stay consistent through library format changes and book moves, and appear in full on inserts and new reports

Improved

Large book lists reuse recent data and render fewer off-screen rows; details, forms and settings do less repeated loading

Improved

Statistics start with saved figures and calculate the whole selected library; documents, audits and storage totals also handle larger collections

Improved

ISBN and Open Library lookups reuse public records and give slow sources a time limit

Improved

Large valuation PDFs reuse text measurements instead of measuring the same words all afternoon

Fixed

Report photos now reach every selected copy, past the old 600-photo limit; failed downloads are reported and photos stay with their book

Improved

Imported covers upload together; background cover jobs remember where they left off

Improved

An updated AI model behind book scanning, photo enrichment, invoice reading and translation, with shared cost tracking

Fixed

AI-recognized ISBNs and legal deposit numbers find their own fields; conflicting values wait for your review

Fixed

AI reviews survive closing the panel, generation preserves unsaved edits, and condition and valuation histories keep their zero values

Fixed

Search stays in the chosen library, opening a catalog description keeps your place, and long descriptions remain fully visible

Fixed

Invoice reading keeps discounts and credits, minus sign included

Added

Free import help for large collections, offered in the empty library and by email to eligible accounts; the typing need not all be yours

Added

Admins can track completed imports and large-collection onboarding, and stop recurring billing while keeping the paid period intact

1.15.1

The Logbook

·1 change

A collection keeps a diary of its own: the book you added on Tuesday, the tag you renamed, the valuation you wrote down. Shelvd shows the last ten entries on your statistics page. Between them, though, sat lines nobody had written — book.form_opened, scan.started — the notes the software makes to itself while you work. They were never meant to be read. The diary now holds only what you actually did to your books.

Fixed

The recent activity on your statistics page lists only what you did with your books; the notes the software makes to itself no longer sit between the entries

1.15.0

The Little House

·4 changes

The dealer profile asked how collectors visit and offered three answers, none of which said "we ship". That was a question from a world where a bookshop was a door on a street. A dealer who sells from a webshop and also keeps a room you can come to now says both, because they are not alternatives. And every profile can carry one photograph of the place the books actually live: the shop, the reading room, the barn at the end of the garden. Shelvd redraws whatever you upload, which keeps the page fast and quietly throws away the metadata, so the GPS in a picture taken at your own front door never leaves your computer.

Added

A dealer can sell through their own online shop and receive visitors: the two answers sit beside each other instead of replacing one another

Added

One photograph of the premises heads a dealer profile, and appears on the card in the guide

Added

Uploaded photographs are redrawn server-side to a standard size, which strips the camera metadata, GPS included

Fixed

A verified association membership now shows as verified in the guide; it was recorded correctly but the list never read it

1.14.0

The Guide

·7 changes

A collector looking for a dealer in Antwerp who handles early travel books has no good way to find one. Association lists are national and alphabetical, search engines return marketplaces, and the dealer who would have had the book never hears about it. So every dealer now gets a page: who you are, what you deal in, where you can be visited, which associations you belong to. Your email address is never on it. A collector writes through a form, the message reaches you with their address as the reply-to, and from your first reply you correspond directly. Your street appears only if you ask for it. And the list of dealers stays shut until eight profiles are published, because a directory of one reads as though it were the whole trade.

Added

A public profile for dealers (Dealer plan): business name, city, the year you started, how you can be visited, up to twelve specialisms, the periods and languages you work in, how often you issue catalogues, website and telephone

Added

Trade association memberships, printed as a claim until someone at Shelvd has checked them against the association's own register

Added

A contact form that never shows your email address: the message arrives with the collector as reply-to, and your answer goes straight to them

Added

Your street and postal code stay off the page unless you tick the box; without it the page shows your city and country and nothing more

Added

A guide at /dealers that filters on country, specialism and period, and opens once eight profiles are published

Added

Saving and publishing are separate, the first publication is checked by Shelvd, and taking your page offline is always one click

Improved

The privacy statement has a section on the data you choose to publish, and says what the contact log keeps and for how long

1.13.0

The Schedule

·8 changes

An insurer settling a claim establishes three things: that you owned the copy, that it had the value you claim, and that it was in the condition you describe. Shelvd has recorded all three for a while. It can now put them in one document, with the totals, the highest values a policy has to cap, and a declaration that says where every figure came from. You choose the basis, market, replacement or agreed, because that is the first thing an insurer reads. And an issued report is frozen: rename a book tomorrow, sell it next year, and last week's report still says what it said, which is exactly why it counts as evidence.

Added

Insurance and valuation reports (Dealer plan): a PDF over your whole collection, one collection or one tag, with identification, condition, value with its source and date, provenance, photographs and the documents that prove each copy

Added

Three bases of value, market, replacement with a percentage on top, or agreed, printed on the title page and explained in the declaration

Added

A summary with totals, value bands and the highest values, the ones a policy caps per item

Added

A spreadsheet with the same lines and the same total, for the insurer who wants a table rather than a document

Added

A readiness check before you issue: how many copies have no value, how many values are older than three years, how many have no photograph, how many have no document proving them

Added

Issued reports are kept and frozen: each line holds what the book said that day, so a report does not change when the book does

Added

Thirteen document languages, the same as the catalogue generator, with the declaration translated in full

Improved

Amounts in other currencies are converted the way the statistics page does it, and the report names the day the rates are from

1.12.0

Read the Receipt

·6 changes

A receipt is a list of books with prices, and typing it out twice is a waste of an evening. Hand one to Shelvd and Claude reads it: the shop, the town, the date, the reference and every line. Each line is then matched against your own library, on the ISBN first, then a catalogue number, then the title with the author. You confirm line by line, and only then does the purchase land in the provenance of that copy, with the paper as its evidence and the price as a valuation. The magazine and the postage on the same receipt are shown, and cannot be ticked: a receipt carries more than your collection.

Added

Read a receipt or an invoice with AI (Dealer plan, one AI credit): the counterparty, the date, the reference, the total and every line, out of a PDF or a photograph

Added

Every line is matched against your library, and you confirm line by line; nothing is written before you do

Added

A confirmed line records the purchase in that book's provenance, with the shop and town, the date and the price, and the document as its evidence; a price also becomes a valuation

Added

Lines that are not books, a magazine, postage, a discount, are shown but cannot be applied

Added

PDF documents now show their first page as a preview, on the book and in the documents list

Improved

The credit is only charged after a usable answer, and a document reaches Claude only when you ask for it

1.11.0

Paper Trail

·8 changes

A copy is worth what you can prove about it. The dealer invoice, the auction settlement, the certificate, the appraisal your insurer asked for: that paper is the difference between a good story and a provenance. Until now it sat in a drawer, or in a folder nobody else can find. Shelvd keeps it with the copy from now on, and with the exact line it proves: the purchase in the provenance, the valuation, the condition report. The files are private. They have no public address, and nobody opens them but you.

Added

Document Storage (Dealer plan): keep invoices, receipts, auction settlements, certificates, appraisals, licences and correspondence with the copy they belong to

Added

Twenty document types in ten groups, with date, counterparty, reference, amount and expiry date; one document can hang on several books

Added

Link a document to the provenance entry, valuation or condition event it proves, and mark it as the evidence for that entry

Added

Private by construction: a document has no public address, every file is served to its owner alone, and support cannot open your files while helping you

Added

A Documents page that searches title, counterparty, reference and notes, and filters by kind, year, expiry and whether a document is linked to a book

Added

Upload from the book page or from Documents, straight from a phone camera as well; PDF and photographs up to 25 MB, with a preview, a page count and a warning when you upload the same file twice

Added

Download everything as one ZIP, filed by year and kind, with a spreadsheet listing every document and the books it belongs to; the archive keeps working if your plan changes

Improved

The SQLite export now carries the documents and their links to books, entries, valuations and condition events

1.10.0

House Style

·8 changes

The Dealer plan has promised a catalogue generator since the day it went on sale. It exists now, and it was not built from a blank page: we sat down with real catalogues, continental and English dealers, a fair list, an auction house, a Parisian catalogue de luxe, and set each template the way that tradition sets its entries. Pick your books, pick a house style, and Shelvd hands you a Word document that already reads like a catalogue. Every part uses a named style, so the last word on the typography stays yours.

Added

Catalog Generator (Dealer plan): build a catalogue from your books, in sections and numbered, and download it as a Word document

Added

Six templates modelled on real dealer and auction catalogues: Scholarly, London, Fair, Auction, Paris and Short List

Added

A catalogue note per item with a small markup: a first line starting with "# " becomes the hook line above the entry; bold, italic and quotations work as well

Added

Thirteen document languages, the same as the catalogue entry generator, with contact block, foreword, indices on item numbers, a separate price list and a colophon

Added

Photographs as boxes, thumbnails or plates; an item without a photograph gets a numbered plate you replace in Word without disturbing the layout

Added

Add books to a catalogue from the book page or from the selection bar on Books; price labels, price overrides, estimates and an entry text per catalogue

Added

Your logo on the cover and your own conditions of sale, kept once in the Dealer section and printed in every catalogue; a sample text in the ILAB tradition is a click away, and Shelvd imposes none of its own

Improved

The Trade catalogue entry now exposes its parts, so a document can set heading, description, provenance and references separately. The text entry itself is unchanged

1.9.0

Price Clipped

·5 changes

A collector wrote in with two questions a spreadsheet could not answer: where does the price I paid go, and how do I record a dust jacket that is a later printing than the book it wraps? Neither had a home. Both do now. What a copy cost you travels in with your import and lands where a purchase belongs, on the book's own history, and the jacket is finally described as the separate printed object it is.

Added

The import template carries what you paid: price, currency, who you bought it from, when, and how it was acquired

Improved

An imported purchase becomes a real acquisition on the book's provenance timeline, with the seller and the date beside the amount — so an imported library shows a true profit and loss instead of an empty one

Added

Dust Jacket Impression: a first edition in a third-impression jacket can finally say so. Searchable, exported, and printed on the PDF catalog sheet

Fixed

Prices written the European way now import correctly — 45,50 was read as 4550, quietly multiplying a valuation by a hundred

Fixed

A column named "Purchase price" maps to what you paid instead of your asking price

1.8.0

Settling Accounts

·10 changes

Two weeks of subscription plumbing, and one uncomfortable discovery: deleting your account did not actually delete it. Both are dealt with. Billing can now be repaired from inside Shelvd — swap a card, pay a renewal that failed, keep a plan you had cancelled — and an account you delete really goes, minus the payment records the bookkeeping rules insist on.

Added

Change the payment method of a running subscription — a new card or bank account, without cancelling and starting over

Added

Pay again after a failed renewal: your plan stays for 14 days, and one button charges that same period again

Added

Changed your mind after cancelling? Keep the subscription running instead of waiting for it to lapse

Fixed

Deleting your account now really deletes it — account, login, images and book data. It used to report success while the login survived, so you could sign back in to an empty library

Fixed

A cancelled or deleted account can no longer keep being charged: every subscription the payment provider still knows is stopped first

Fixed

A failed renewal no longer decides your plan on its own — it neither keeps the paid plan forever nor takes it away on the spot

Fixed

A declined upgrade no longer leaves the billing page reloading endlessly

Fixed

A repeated notification from the payment provider can no longer charge you twice or undo a cancellation

Fixed

Closed a gap that let a signed-in account change protected fields on its own profile, such as its plan or admin rights

Improved

Deleting your account keeps only the payment records bookkeeping law requires: the amount and the date, with no name or email attached

1.7.1

Loose Sheets

·4 changes

A collector pointed us at an EndNote export, and we found the tab-delimited text it produces had never made it through the door: the importer quietly tried to read every text file as an Excel workbook. It reads them as text now — and we tidied a few things we noticed on the way.

Fixed

CSV, TSV and tab-delimited .txt files now import — they were being parsed as Excel workbooks and rejected; UTF-16 exports from EndNote and Windows Excel are decoded too

Fixed

Dropping a .txt file onto the import page no longer bounces it — the file picker and the drop zone finally agree

Improved

Old binary .xls files are no longer offered for import; save them as .xlsx first

Fixed

Tightened database permissions on the library search function: only signed-in sessions may call it (anonymous callers never got rows, but the door was unlocked)

1.7.0

Shelf Marks

·6 changes

Every library has its own way of saying where a book lives. German academic libraries write it in Regensburg notation, Soviet printers put it straight in the colophon, and EndNote keeps its authors and editors in separate columns. Shelvd now reads all three — and sorts your ISBNs while it is at it.

Added

RVK and BBK classification fields — the Regensburg notation of German-language academic libraries and the ББК printed in Soviet-era colophons, next to DDC, LCC, UDC and NUR. Searchable, importable, exported, and on the PDF catalog sheet

Improved

NUR now travels through the import template, the XLSX, CSV, JSON, XML and SQLite exports and the PDF catalog sheet, and UDC can be picked when mapping columns in the template import

Added

Spreadsheet import keeps contributor roles from separate Authors, Editors, Translators, Illustrators, Compilers and Introduction By columns — reference-manager exports such as EndNote go in without hand-editing

Improved

A mixed ISBN column is sorted into ISBN-13 and ISBN-10 by length on import; "ISBN" labels and "(pbk.)" qualifiers are dropped on the way

Fixed

Imports respect your plan's book limit — when a file overshoots, the preview says how many rows still fit before anything is written, instead of quietly importing past the ceiling

Improved

The import guides list every accepted format — .xlsx, .csv and .tsv, plus .xml in Import from File — instead of Excel only

1.6.0

First Impressions

·9 changes

In the book trade, a first impression costs a fortune. Ours was merely costing us members: new collectors walked into an empty library, looked around, and left. Shelvd now greets you at the door — 25 free AI scans, one clear next step, and a small celebration when your first book reaches the shelf.

Added

25 free AI scans for every new collector — up from 10. Existing trials were topped up too; fair is fair

Added

A welcome series by email — four notes across ten days, then we leave you alone. One-click unsubscribe included

Improved

Onboarding leads with one clear next step — plus example books, a small celebration for your first save, and a way back to abandoned drafts

Added

Shelvd installs on your phone — after your first scan it offers to join your home screen, which is where the shelves are

Improved

Faster cataloging by ISBN — the lookup field is pre-focused for your scanner, Save & Add Another loops straight back for the next book, and your preferred search site is remembered

Fixed

Barcode scanners on AZERTY keyboards typed çè!çàé("& instead of an ISBN — scanner gibberish is now translated back into digits

Added

Goodreads, LibraryThing and StoryGraph exports import directly, and imported books fetch their own covers

Improved

Wishlist books wear a real Wishlist status now — and cataloging one you were hunting earns congratulations instead of a duplicate warning

Fixed

Portrait photos are stored uncropped again, a first payment can no longer charge twice, and a search that finds nothing suggests near matches

1.5.1

A Faster Press

·4 changes

We replaced the printing press: Next.js 16 with Turbopack now builds Shelvd. Same books, same shelves — the pages just come off the press quicker.

Improved

Upgraded to Next.js 16 with Turbopack — builds compile in seconds instead of minutes

Fixed

Clicking through from the public site to your library no longer hits an error page

Fixed

Every page shed a hidden 229 kB of accidentally bundled translation catalogs

Added

Release notes on this page now read in Dutch, French and German too

1.5.0

Hardened Foundations

·8 changes

No new shelves this time — we reinforced the building. Locks on every back door, faster corridors, and a test librarian who now walks every aisle before each release.

Improved

Database security — every administrative function now checks credentials at the door

Improved

The public site is pre-rendered in four languages and served from the CDN: noticeably faster, everywhere

Added

A strict Content-Security-Policy across the whole site

Added

Automated tests that walk all seven core user journeys — from first book to billing — on every change

Improved

Every dependency current, zero known vulnerabilities, reproducible builds

Improved

Lighter pages — the barcode scanner, photo upload and enrichment panels load only when used

Fixed

A dead book link now shows a tidy not-found page instead of an error

Improved

Dozens of new database indexes — lists stay snappy as collections grow

1.4.4

The Summer Acquisitions

·8 changes

Six weeks of steady collecting, catalogued in one entry. Valuations grew up, search got sharper eyes, and Belgian books finally feel at home.

Added

Legal deposit number field (Depot nr.) — for the D/2026/… numbers in Belgian books

Added

Boekenbank lookup provider and Boekwinkeltjes valuation source — stronger coverage for the Low Countries

Added

Physical copy search filters (binding, format, cover, dust jacket) plus last-changed filters and live result counts

Added

Multilingual book language details and library-aware statistics

Added

More cataloging quick inserts, including reprint and facsimile statements, and PDF insert note toggles

Improved

AI valuation — runs in the background, respects your cataloging language, retries flaky sources, reports failures honestly, and costs two credits

Improved

Speed — faster books page, faster saves, faster book detail, and your scroll position survives the trip back from a book

Fixed

A shelf of cataloging papercuts — localized dropdowns, disambiguated condition grades, preserved paragraph breaks, contributor roles that behave, and orphaned photo files cleaned up

1.4.3

Sharper Enrichment, Safer Shelves

·9 changes

This release tightens the AI and cataloging work that landed in 1.4.2. AI enrichment now has stronger bibliographic extraction, language controls, diagnostics, and apply analytics. Catalog IDs can be scoped per library, book search moved closer to the database, and the scanner can turn ownership evidence into provenance entries. Around the edges: faster search openings, clearer AI timeout handling, cleaner price input, better lightbox crops, and fewer small form annoyances.

Added

AI output language controls and language labels — enrichment can now respect the cataloging language you actually want

Added

AI scan provenance entries — ownership marks, purchase evidence, and association notes found during scanning can become structured provenance instead of loose remarks

Added

AI enrichment diagnostics and acceptance analytics — admins can see empty results, field acceptance, manual edits, skipped fields, and parser rejections without spelunking logs

Improved

AI bibliographic enrichment quality — stricter field contracts, normalized vision images, better prompts, read-only eval summaries, and safer save/apply handling

Improved

Catalog IDs are now library-scoped — next IDs, duplicate checks, bulk image matching, and conflict handling understand which shelf a number belongs to

Improved

Book search moved to the database and got faster paths for catalog IDs, autocomplete, provenance text, and opening books from search results

Fixed

AI and valuation edge cases — numeric enrichment proposals, slow valuation estimates, single-anchor valuation evidence, blocked search domains, and vision timeouts are handled more clearly

Fixed

Cataloging papercuts — comma decimal prices, provenance price formatting, semicolon-separated contributors, normalized topic separators, paginated storage suggestions, wider bibliographic fields, and draft creation from AI scans

Fixed

Interface polish — field help leaves keyboard tab order alone, edit breadcrumbs wrap earlier, selected enrich photos are highlighted, history icons match Shelvd, AI scan controls are calmer, and landscape lightbox images crop correctly

1.4.2

More Eyes, Less Fuss

·9 changes

Since 1.4.1, Shelvd picked up public pricing and FAQ pages, AI valuation estimates, phone-assisted AI photo capture, a professional catalog entry generator, configurable catalog IDs, normalized uploads, support email threading, and audited support impersonation. The book form, import flows, and history editors were split into smaller tested pieces too, which is less glamorous than a new button but exactly the kind of shelf tightening that keeps future work from wobbling.

Added

Public pricing and FAQ pages — fewer mysteries, fewer “so what does this cost?” emails

Added

AI valuation estimates — comparable-sale research, stricter evidence rules, feature gating, config handling, and cost logging, all without pretending one auction result is a market

Added

AI photo book capture — start on desktop, finish on your phone by QR, review duplicate matches, adjust source images, then add the book without juggling image files like circus props

Added

Professional catalog entry generation — stronger ISBD-minded output, reusable catalog rules, and clearer wiki/reference coverage for book form options

Added

Support email threading and audited impersonation — help can now be hands-on without becoming spooky

Added

Catalog ID preferences and Ex Libris image labels — automatic next IDs, configurable prefixes, and a proper home for bookplates

Improved

Image upload and scan capture flow — normalized images, direct upload completion, cleanup guards, calmer mobile capture, and safer Next.js patch pinning

Improved

Book forms, imports, history editors, activity metadata, and lookup helpers split into smaller tested modules after the fallow cleanup pass

Fixed

Daily cataloging papercuts — broader global search, stable image reordering, cleaner collection filters, Belgian formatting, saved app locale reloads, admin user deletion, and tidier AI status chips

1.4.1

The Polyglot Shelf

·9 changes

Shelvd now speaks English, Dutch, French, and German across the interface, website, blog, and wiki. Public pages get proper /nl, /fr, and /de routes, the app keeps stable URLs with a language setting where it belongs, and the header now uses an actual language picker instead of shouting EN NL FR DE like airport signage. Also: AI scan/enrich got sharper, E2E tests got a foundation, and iPad landscape stopped being treated like an exotic manuscript format.

Added

Full i18n infrastructure — runtime messages, locale registry, strict copy scanner, validators, and PO/POT handoff for translators

Added

Dutch, French, and German website routes — homepage, blog, wiki, legal pages, roadmap, changelog, and about now understand /nl, /fr, and /de

Added

Localized blog and wiki content — 23 blog posts and 49 wiki pages translated per language, because “see English version” is not a strategy

Added

App language preference in Settings — stable app URLs, localized buttons and labels. Civilized.

Improved

Language chooser redesigned as a real picker with full language names and a checkmark, no more alphabet soup in the header

Improved

AI scan and AI enrich review flows — better field review, richer search-result details, stronger Roman-year handling, and fewer mysterious “trust me” moments

Improved

Settings page split into focused sections — account, billing, lookup, cleanup, links, subscription, and configuration each got their own desk

Added

E2E testing foundation — Playwright config, personas, fixtures, and smoke-test docs are ready for proper browser-level guardrails

Fixed

About page location updated to Bruges, Belgium — geography matters, even on the internet

1.4.0

The Great Split

·5 changes

The books page — the heart of Shelvd — has been completely restructured without changing a single pixel. The original 2,597-line monolith is now a clean 475-line orchestrator backed by 12 focused components and 4 custom hooks. AI scan results now correctly land in your Library collection, and all 70 unsafe type casts have been removed from the codebase.

Improved

Books page split into 16 focused modules — types, helpers, 10 UI components, 4 hooks. 81% less code in the main file

Improved

Zero unsafe type casts remaining — 70 "as any" casts replaced with proper TypeScript types across the entire codebase

Improved

Export dropdown refactored — 7 individual buttons replaced by a data-driven list. Sort headers in list view now generated from column definitions

Fixed

AI scan saved books but never added them to your Library collection — scanned books now appear in Library immediately

Fixed

Five orphan books (created by earlier AI scans) were invisible in the catalogue — found and added to their owners' Library collections

1.3.1

The Bug Sweep

·9 changes

Nine fixes focused on data integrity and chart accuracy. Valuation charts now correctly sort mixed date formats. Duplicate entries no longer multiply on repeated saves — the root cause (stale isNew flags surviving router.refresh) is eliminated. Same-date valuations are averaged into a single chart point. All three history editors (valuation, provenance, condition) got drag-to-reorder replacing the confusing chevron buttons. Search filters are hardened against special characters in book titles. Import pages got the same autocomplete limit fix the add/edit pages received last release.

Added

Same-date valuations are averaged into a single chart point — tooltip shows "Market Research (avg of 2)" when multiple entries share a date

Improved

Drag-to-reorder for valuation, provenance, and condition history editors — GripVertical is now a real drag handle, confusing chevron arrows removed

Improved

Date sort utility extracted to shared module — consistent date parsing across chart and timeline

Fixed

Valuation chart showed wrong order with mixed date formats — "01.03.2026" sorted before "2018" alphabetically. Now uses smart date parsing

Fixed

Duplicate valuation entries multiplied on every save — stale isNew flags caused re-inserts. State now resets from DB after save. 109 existing duplicates cleaned up

Fixed

Search and prev/next navigation broke on book titles with commas or parentheses — PostgREST filter strings now properly escaped

Fixed

Import pages truncated autocomplete lists at 1000 rows — same .limit(10000) fix applied to import and custom import pages

Fixed

Wiki articles all showed "12 February 2026" — hardcoded date removed, wiki pages are reference docs not blog posts

Fixed

Duplicates page book count stayed stale after deleting books — count now updates immediately

1.3.0

The Detail Sweep

·19 changes

Twenty fixes and features that make the daily cataloging workflow faster and less annoying. Contributors are now inline-editable with autocomplete from your existing entries. The edit page stays open after saving, Catalog ID got a uniqueness check, and the valuation chart finally reads left-to-right. Asking Price is now always asking price — the actual sale price belongs in Provenance. You can toggle browser spellcheck off for book forms, and the publisher/place autocomplete actually includes all your books now, not just the first thousand.

Added

Inline contributor editing — change name and role directly in the form without deleting and re-adding

Added

Contributor name autocomplete — suggests names from your existing books as you type

Added

XML and Apple plist import — drag in an XML file from other book collector apps and Shelvd maps the fields automatically

Added

Catalog ID in book detail header — visible right under title, author, and status badge, with copy button

Added

Catalog ID uniqueness enforcement — database constraint prevents duplicates, forms show real-time warning with link to the conflicting book

Added

Spellcheck toggle — disable browser spell check in book forms from Application Settings

Added

Last Page book part — available as image label alongside First Page, Chapter Page, and all other parts

Improved

Edit page stays open after Save — no more bouncing back to the detail page. "Done" button takes you back when you're finished

Improved

New books redirect to edit page — image upload zone is immediately available after creating a book

Improved

Catalog ID is now the first field in Title & Series on add and edit forms — because it's usually the first thing you enter

Improved

Asking Price is always "Asking Price" — no more "Sold For" label. The actual sale price belongs in Provenance

Improved

Image upload progress bar — replaces the pulsing book icon with actual upload count, percentage, and per-file status

Improved

Detail page image upload simplified — removed the label selector UI, all uploads default to "detail" type

Fixed

Valuation chart ran right-to-left — now correctly shows oldest on the left, newest on the right

Fixed

Publisher, place, and other autocomplete lists stopped updating after ~1000 books — Supabase default row limit now overridden

Fixed

Contributors could only be reordered or deleted, not edited — name and role were static text

Fixed

Bulk image import: cancel button was wrong color, drop zone required double-click, uploads failed after idle tab

Fixed

Stale books displayed after switching collections — race condition where slow fetch overwrote current results

Fixed

Pending contributor lost on save — if you typed a contributor but didn't click Add, it vanished on submit

1.2.1

Under the Hood

·6 changes

The version where sorting actually works, buttons stop running away, and Facebook finally shows our face. Server-side author sorting replaces the old client-side shuffle that only sorted whatever page you happened to be on. The bulk image import page got a proper layout — action buttons next to the title instead of hiding below 200 photos. Facebook's sharing preview stopped showing a blank because we replaced a broken edge function with a boring PNG that just works. Oh, and hasFeature() now asks two questions instead of four.

Added

Server-side author sorting — your entire library sorts A–Z by author, not just the current page. Powered by a generated column that updates itself

Improved

Bulk image import redesign — action buttons pinned to the header row, subtle phase dots, friendlier copy, bordered preview table

Improved

Import dropdown labels shortened — Spreadsheet, Photos, Custom File. Context does the rest

Improved

hasFeature() performance — 4 sequential database queries reduced to 2. Every gated page loads faster

Improved

AI enrichment errors now show the actual problem instead of a generic "please try again"

Fixed

Facebook sharing preview showed blank image — 0-byte cached response from broken edge function replaced with static PNG

1.2.0

Your Move

·19 changes

Sixteen UX improvements, dark mode, and the free tier just got interesting. Infinite scroll replaces the old "Load More" button. Save your favorite searches as bookmarks. Drag contributors into the right order. Bulk-assign tags and statuses. Dark mode works everywhere thanks to 220 semantic design token replacements across 31 files. Free users now get 10 trial AI scans and 100 MB of image storage — enough to fall in love before upgrading. Oh, and we fixed that embarrassing bug where books appeared twice in grid view.

Added

Dark mode — Sun/Moon toggle in the app header. All 220 hardcoded color classes replaced with semantic design tokens. Works across every page

Added

Saved searches — bookmark complex filter combinations and recall them with one click. Badge shows count, hover to delete

Added

Infinite scroll — books load automatically as you scroll down. No more "Load More" button

Added

Bulk tag assignment — select multiple books and assign tags in one action

Added

Bulk status change — select multiple books and change their status simultaneously

Added

Drag-to-reorder contributors in add and edit forms — grab handles to set the display order

Added

Draft recovery — unsaved changes in add and edit forms persist in localStorage. Resume where you left off

Added

Free tier: 10 trial AI scans and 100 MB image storage — try the AI scanner before committing to a plan

Added

Image URLs in exports — all export formats now include a column with links to every uploaded image

Improved

Prev/next navigation preserves your filter context — collection, tag, and search query carry through

Improved

Status badge is clickable everywhere — change status directly from the book detail page

Improved

External links grouped by category (bibliographic, marketplace, auction, etc.) on the detail page

Improved

Collection and tag dropdowns in advanced search — no more typing exact names

Improved

Field-level validation for ISBN-13, ISBN-10 (check digit), OCLC (digits only), and URL format

Improved

Navigation: removed confusing "Search" link from main menu (search lives on the books page)

Improved

Marketing header button renamed from "Collection" to "Your Library" for consistency

Fixed

Duplicate books appearing in grid view — race condition in infinite scroll where the same page was fetched twice

Fixed

AI Scan gave 404 for free users — redirect now goes to the upgrade page instead of a non-existent route

Fixed

Status badge on detail page showed fewer options than the edit form — now both show all 14 statuses

1.1.0

Found by Google

·12 changes

The one where we realized having 76 pages means nothing if Google only knows about one. Full SEO overhaul: structured data on every public page, ItemList schemas for blog and wiki indexes, BreadcrumbList on every article, FAQ schema targeting real collector queries, OpenGraph article tags by category, JSON-LD for changelog and roadmap, and an llms.txt for the AI crawlers. Also fixed duplicate detection (broken since the contributor simplification) and tidied up the book detail page.

Added

llms.txt — AI-crawler-friendly site summary with feature descriptions, comparisons, and all public URLs

Added

FAQ schema on homepage — five questions targeting real book collecting search queries (cataloging without ISBN, provenance tracking, collection valuation)

Added

ItemList structured data on blog index — all 22 articles as ListItems for rich snippets

Added

ItemList + CollectionPage structured data on wiki index — all 46 knowledge base articles

Added

JSON-LD structured data on changelog and roadmap pages

Added

BreadcrumbList JSON-LD on every blog post and wiki article for search result breadcrumbs

Improved

Homepage JSON-LD — added featureList, sameAs (ProductHunt), SearchAction, applicationSubCategory, and pricing description

Improved

Blog OpenGraph tags — article:section and article:tag per category for better social sharing and search categorization

Improved

Canonical URL fix — absolute URL instead of relative on homepage

Improved

Book detail page — status badge moved from title row to below contributors, cleaner layout

Improved

Book detail buttons reordered — Delete (neutral) → Print Insert → Edit (red, prominent). Edit is the primary action, Delete is de-emphasized

Fixed

Duplicate detection broken since contributor simplification — ISBN-13, ISBN-10, and title matching now use books.contributors JSONB instead of dropped tables

1.0.0

The One

·22 changes

Fifty-one UX improvements in a single weekend. Every screen touched, every rough edge smoothed. The books list gained quick-filter tabs, visual status badges, and value averages. Book detail got copy-to-clipboard identifiers, collection-aware breadcrumbs, and set-as-cover from the gallery. The edit form auto-detects link types when you paste a URL. Search learned date ranges and notes fields. The scanner shows step-by-step progress. Mobile got responsive activity cards and swipe-to-close navigation. This is v1.0.0 — the version where Shelvd stopped being a project and started being a product.

Added

Quick-filter tabs on books list — one click to filter by status (Available, Sold, Reserved, etc.) without opening advanced search

Added

Visual status badges — colored dots and backgrounds replace plain text labels across list, grid, and detail views

Added

Value summary averages — see average acquired and estimated value per book alongside totals

Added

Date range filter in advanced search — filter by when books were added to your library

Added

Search in notes and bibliography fields — four text columns searched simultaneously

Added

Copy-to-clipboard on all identifiers — ISBN-13, ISBN-10, OCLC, LCCN, Catalog ID with one-click copy

Added

Collection-aware breadcrumbs — navigating from a collection filter shows the collection name in the breadcrumb trail

Added

Set as cover in image gallery — click any uploaded image and set it as the book's cover photo

Added

Paste-to-detect link types — paste a URL and the link type auto-selects based on the domain (Goodreads, WorldCat, etc.)

Added

Step progress indicator for AI scan — Upload → Analyze → Done with animated transitions

Added

Password strength meter on signup — four-level indicator with real-time feedback

Added

App footer with Wiki, Support, Changelog, Privacy, Terms links and version number

Added

Swipe-to-close mobile navigation drawer

Added

Humorous empty states across activity, tags, lookup, and search — consistent tone with helpful guidance

Improved

AI enrich now fills language and original language — detects translation cues like "traduit de" and "vertaald uit"

Improved

Books list — skeleton loading, responsive cards, "clear search" on empty results, drag-to-reorder columns

Improved

Book detail — expandable long descriptions, metadata sections for physical description and condition, external links sorted by category

Improved

Settings — client-side tab routing (no full page reload), loading skeleton, styled delete-account modal with type-to-confirm

Improved

Import preview table now shows all mapped columns dynamically instead of fixed five columns

Improved

Activity table — responsive card layout on mobile, audit results cached in localStorage with "scanned X ago" timestamp

Improved

Dark mode toggle on book detail and edit pages

Fixed

Numerous small layout fixes — consistent section spacing, field alignment, skeleton proportions across all pages

0.34.0

Second Look

·5 changes

You already photographed your books. Now Shelvd can re-read those photos to fill in what you missed. Hit AI Enrich on any book with images and Claude examines your title page, cover, and colophon — same vision engine as the scanner, but without re-photographing anything. Results appear in the familiar enrich diff panel where you pick field by field what to keep. Also: the AI now understands that ALL CAPS on a title page is a design choice, not a cataloging instruction.

Added

AI Enrich from Photos — one click on any book with uploaded images. Claude re-reads your title page, cover, and colophon to extract missing bibliographic data. Results shown in the enrich diff panel: green for new fields, amber for different values, you decide what stays. Uses your existing scan credits, no new photos needed

Improved

AI title normalization — the scanner now converts ALL CAPS titles to proper casing. English gets title case (The Old Man and the Sea), French and Dutch get sentence case (De ontdekking van de hemel). No more shouting book titles

Improved

AI scanning spotlight moved to a more prominent position on the landing page, with a new photo gallery section showcasing the image features

Fixed

Existing book photos are now protected during AI scanning — a bug in the scan endpoint would delete your uploaded images if the AI processing failed. Fixed with a cleanup guard that preserves existing photos on error

Fixed

Signup and login pages now show feature numbers (32 library sources, 76 book formats, 7 export formats) instead of live database counts that broke on cold starts

0.33.0

Take It With You

·4 changes

Your entire library in a single file. Export everything — books, collections, tags, valuations, provenance — as a portable SQLite database. Open it in DB Browser, query it with SQL, back it up to a USB stick. Also: the custom import finally saves your books, and seventeen buttons learned to stand at attention.

Added

SQLite export — download your complete library as a .db file with nine relational tables: books, languages, conditions, bindings, formats, collections, tags, valuation history, and provenance entries. Foreign keys intact, contributors stored as JSON. Opens in DB Browser for SQLite, DBeaver, or anything that speaks SQL

Fixed

Custom import now actually saves — the "Import from File" flow with field mapping was missing its save logic entirely. Books now insert with JSONB contributors, collection assignment, valuation history, provenance entries, activity logging, and a progress bar that means something

Fixed

Button heights normalized across the books page — toolbar buttons (list, grid, select, import, export, duplicates, add) now share a consistent height, and search bar buttons match the input field beside them. Small thing, but it was driving us mad

Improved

Dead code removed — three unused TypeScript interfaces (Contributor, BookContributor, BookContributorEntry) cleaned out after the JSONB migration. The codebase is lighter

0.32.0

Cover Me, I’m Going In

·8 changes

Point your phone at a title page — any title page, in any language, from any century — and Shelvd reads it for you. Three photos, five seconds, and up to thirty-one fields filled in. No ISBN required. No typing required. No other book app does this.

Added

AI Book Scanning — photograph a book’s cover, title page, and colophon. Claude reads the text, cross-references between the photos, and extracts title, subtitle, author, translator, publisher, place, year, edition, impression, ISBN, language, original title, dedication, and the full colophon text. Works on a 2020 paperback and a 1776 leather-bound folio alike

Added

Scan credits — Pro subscribers get 10 scans per month, Dealers get 50. Need more? Buy credit packs (25, 100, or 500 scans) that never expire. Your monthly credits reset automatically, purchased ones stay forever

Added

Confidence indicators — every extracted field shows a green dot for high confidence, so you know at a glance what to trust and what to double-check

Added

All scan photos saved — cover, title page, and colophon are stored with your book. The cover becomes the thumbnail, the rest goes to the image gallery. No photos lost

Improved

Titles transcribed exactly as printed — including trailing punctuation, diacritics, and typographic conventions. If the title page says “À propos.” with a period, that’s what you get. ISBD would approve

Added

Email change in Settings — click Change next to your email, enter a new address, and confirm via both your old and new inbox. Dual confirmation keeps your account secure

Improved

Contributors simplified — authors, translators, illustrators, and all other contributor roles are now stored directly on each book instead of in separate database tables. Faster page loads, no more duplicate contributors on import, and the full 69-role MARC Relator Code list is available in every dropdown

Added

Data cleanup in Settings — one-click removal of orphaned publishers, contributors, and tags that are no longer linked to any book. Keeps your dropdowns clean

0.31.0

Final Proofs

·5 changes

A new import system that reads any spreadsheet in six languages, a full visual consistency pass across every page, and accessibility improvements that make every screen easier to read. Also: your books now live in a library, not a collection. As they should.

Added

Free import with field mapping — drop any Excel, CSV, or TSV file and Shelvd auto-detects your columns using multilingual fuzzy matching (English, French, German, Dutch, Spanish, Portuguese). A mapping step lets you assign each column to a Shelvd field with grouped dropdowns and sample data preview. Shelvd templates are auto-detected and skip the mapping entirely

Improved

Terminology standardized — “Collection” is now “Library” throughout the app, navigation, and marketing pages. Collections (Library, Wishlist, custom) keep their name as a feature — but your books live in your library, not a generic collection

Improved

Accessibility — text contrast meets WCAG AA across all pages, priority indicators use labels alongside color, and the search page now matches the visual language of the rest of the app

Improved

Cover image sync — changing an image label to Front Cover now actually updates the book's thumbnail. First image uploaded to a book auto-becomes the cover

Improved

Navigation — scroll position is remembered across pages, and save or cancel on the edit form reliably returns to the book detail page

0.30.0

Trust, but Verify

·5 changes

Your first real payment went through, and then it went through again. That's the kind of bug that ages you. This release fixes the duplicate charge, adds a Billing tab so you can see your payment history, gives admins a refund button, and makes admin accounts immune to tier limits. Because the person debugging the payment system shouldn't also be locked out of their own books.

Added

Billing tab in Settings — payment history table with dates, amounts, methods, and status badges. Auto-renewal banner showing your next charge date and amount. Cancellation warning when your plan is ending

Added

Admin refund — one-click refund per payment in the admin user detail page. Creates Mollie refund, updates payment status, logs the action. For when the system charges someone twice and you need to fix it in seconds, not days

Added

Admin limit bypass — admin accounts now skip all tier limits (books, tags, storage, features). The tier stays real, but enforcement steps aside. No more fake subscriptions to test your own product

Added

Quota exceeded indicator in admin user list — red text with count/limit when a user has more books than their tier allows. Instant visibility into who got caught by a downgrade

Improved

Mollie subscription timing fix — first payment now correctly covers the initial period, with the recurring subscription starting one month later. Previously, Mollie would charge immediately on subscription creation, resulting in a double charge on day one

0.29.0

Show Me the Money

·7 changes

The free tier was never the whole plan. Shelvd now takes payments — iDEAL, Bancontact, credit cards, SEPA direct debit — through Mollie. Click upgrade, pay, done. Subscriptions manage themselves: auto-renewal, cancellation with grace period, lazy downgrade when the period ends. The admin panel tracks every payment, and your activity feed knows exactly when you became a paying customer.

Added

Mollie payments — upgrade to Collector Pro or Dealer with iDEAL, Bancontact, credit card, or SEPA direct debit. One-click checkout, redirect back, subscription active. Monthly recurring payments handled entirely by Mollie

Added

Subscription management in Settings — see your plan, next billing date, payment method. Cancel anytime, access continues until the end of your billing period. No surprise cutoffs

Added

Upgrade page — plan comparison with feature lists, pricing, and a single "Proceed to payment" button. Clean enough that even your accountant would approve

Added

Admin subscription overview — dedicated page with MRR, active subscribers, and a sortable table of all subscriptions. User detail pages show subscription status, billing period, and full payment history with Mollie dashboard links

Added

Smart tier resolution — your effective tier is the highest of your membership, lifetime benefits, invite code trial, and active subscription. Cancelled subscriptions downgrade lazily at period end, not before

Added

Signup with plan intent — pricing buttons on the landing page now send new users through signup with a plan param. After email confirmation, you land directly on the upgrade page. No friction, no lost intent

Improved

Subscription events in activity feeds — started, renewed, payment failed, cancellation requested, expired. Amber dots in both user and admin activity pages, with a dedicated Subscription filter tab

0.28.0

Fine. You Win.

·3 changes

We held out as long as we could, but apparently typing thirteen digits is "too many digits." So now your camera can read ISBN barcodes. Point it at the back cover like it's 2012 and you're at a self-checkout. Works on phones, laptops, even that dusty webcam on your iMac. Meanwhile, the admin panel learned to count storage, collections remembered how to sort, and your view preferences finally survive a page refresh.

Added

ISBN Barcode Scanner — tap the camera icon next to any ISBN field in Lookup or Enrich, point at a barcode, done. Uses native detection on Chrome and ZBar WASM (the gold standard C barcode library) on Safari. Because manually typing 9780140449136 is nobody's idea of a good time

Added

Admin storage tracking — the Users list now shows per-user storage bars with color coding (green/amber/red) and exact percentages. User detail pages get a full storage section. When users hit 90%, the upload API whispers a warning

Improved

View and sort preferences now persist — switch to grid view, sort by catalog number, navigate away, come back. Still grid. Still sorted. Revolutionary

0.27.0

Dewey, Meet Your Friends

·9 changes

You know those cryptic numbers on library spines — 823.912, PR6039, 02? They have names now. Type a Dewey code and see "English fiction." Type a Library of Congress range and see "English literature." Four classification systems, 12,535 entries, and a search that works in both directions. Plus three new export formats, because apparently six ways to get your data out still wasn't enough for some people.

Added

Three new export formats — BibTeX for academics who live in LaTeX, RIS for Zotero and Mendeley users, and XML for anyone who thinks JSON is too modern. Six formats total: take your pick

Added

Subject Classification — type a Dewey, LCC, UDC, or NUR code and instantly see what it means. Or type a description and find the code. Works both ways, like a proper reference book

Added

Smart classification matching — when Library Lookup returns "823.912," Shelvd now tells you that's English fiction. Even partial codes get matched to the nearest category

Added

NUR codes — all 682 entries for the Dutch and Belgian book trade. If you're selling books in the Low Countries, you need this

Added

Four wiki articles on DDC, LCC, UDC, and NUR — with more history than strictly necessary, and full lookup tables for each

Improved

Previous/Next navigation now follows your sort order — sorted by year? You'll browse by year. No more jumping back to alphabetical

Added

Bulk Image Import — drop hundreds of photos named by catalog number and Shelvd matches them to your books. Preview table shows exactly what will be uploaded before you commit. Duplicates skipped, mismatches exportable. Dealer only

Added

Newsletter — sign up from the landing page, blog, or footer. Occasional updates on new features and the odd literary digression. No spam, no schedule

Improved

Catalog provenance now shows how a book was acquired ("Purchased from Antiquariaat X, 2012") instead of the meaningless "Current owner" it used to show

0.26.0

Thirty-Two Libraries, Five Continents

·6 changes

From Poland's 4.7 million records to the National Library of Israel's trilingual collections, from Luxembourg's 90 libraries to Brazil — your Book Lookup now reaches thirty-two sources across twenty-seven countries. At this point, if a book exists and has an ISBN, we'll probably find it.

Added

Nine new library sources — Portugal, Poland, Luxembourg, Israel, Brazil, and eight Southeast European countries (Slovenia, Serbia, Bosnia, and more). Plus Europeana: 200 million records from 49 European countries, for when national libraries aren't enough

Added

Image relabeling — uploaded a photo as "cover" when it's really the spine? Click it, pick the right label. No re-upload needed

Added

Two new wiki articles — photo labeling guide and trade catalog conventions

Improved

Library Lookup dropdown redesigned — providers grouped by language with record counts, so you know where to look first

Improved

Tooltips no longer vanish behind the edge of your browser

Improved

Full catalog audit against ABAA, ILAB, and IFLA standards — confirmed coverage of 76 formats, 49 cover types, 65 bindings, 69 contributor roles, and 283 other things librarians care about

0.25.0

Thirteen Languages, One Standard

·8 changes

Your catalog entries just learned thirteen languages and two international standards. Generate a Trade Catalog entry the way ILAB dealers do it, or a formal ISBD entry the way librarians do it — in English, French, German, Dutch, Spanish, Portuguese, Italian, Swedish, Danish, Norwegian, Belgian French, Belgian Dutch, or Latin. Yes, Latin. Because some books demand it.

Added

Two catalog entry styles — Trade Catalog (how dealers describe books at fairs) and ISBD Formal (how librarians describe them in catalogs). Pick your audience, pick your format

Added

Thirteen languages — each following the conventions of its national trade association. French entries follow SLAM rules, German ones follow VDA, and so on. The details matter when you're selling to a collector in Stockholm

Added

Nineteen more fields in catalog entries — depth, paper type, edge treatment, endpapers, text block condition, dust jacket, signature details, protective enclosure, dedication, colophon. The kind of detail that makes a bibliographer's heart sing

Added

Signature details — a new field that appears when you mark a book as signed, because "Signed" alone never tells the whole story

Added

Google Books added as a lookup source

Improved

Cover types expanded from 11 to 49 — Quarter Morocco, Three-Quarter Vellum, Limp Boards... if a bookbinder ever made it, it's in the list now

Improved

Condition grades corrected to ABAA standard — "Mint" is now "As New" (nobody in the trade says Mint), and "Fair" fills the gap between Good and Poor where most honest books live

Improved

Every field tooltip rewritten for the book trade — with examples like "Connolly 78" and "Wing S2926" instead of "enter a value"

0.24.0

Photographs

·11 changes

A book catalog without photographs is just a spreadsheet with pretensions. Upload images from your phone or desktop — cover, spine, title page, whatever tells the story. Pinch to zoom, swipe to browse, drag to reorder. Your collection finally has faces.

Added

Image uploads for Pro and Dealer — drop files or snap photos directly from your phone. Accepts JPEG, PNG, WebP, even HEIC from your iPhone

Added

Photo gallery on every book — with type labels, a lightbox that does pinch-to-zoom and swipe navigation, and keyboard arrows for the mouse-averse

Added

Drag to reorder your photos — cover first, foxing detail second, whatever makes sense for the listing

Added

Covers sync everywhere — upload a cover and it appears in your list view, grid view, and search results

Added

Duplicate warning — start typing a title and Shelvd tells you if you already own it, with a link. For the 3 AM cataloging sessions

Added

Save confirmation toast — a small but reassuring message after every edit, because "did I actually save that?" was keeping people up at night

Added

Unsaved changes dot (●) in your browser tab — the universal sign for "don't close this yet"

Added

Catalog number search — find books by your own numbering system, not just by title or ISBN

Added

Custom 404 page — "Ex Libris Nobody." We had to

Improved

Back to collection returns you to your exact scroll position instead of the top. Small thing, big relief

Improved

Grid view sorting — eight sort options that actually work across all pages

0.23.0

Now Works on Phones

·3 changes

Turns out people own phones. The entire app — every page, every form, every table — now works on screens narrower than a duodecimo. Plus a valuation bug that was quietly making your collection look cheaper than it is.

Added

Mobile navigation — a proper slide-out menu instead of a desktop nav bar that runs off the edge of your screen

Added

Book list on mobile — compact cards with cover, title, and author instead of a twelve-column spreadsheet that requires a magnifying glass

Improved

Every page audited — settings tabs scroll, forms stack, touch targets are actually touchable. Fingers are not mouse pointers, it turns out

0.22.0

Welcome to Shelvd

·4 changes

First impressions matter — especially when a blogger sends you traffic. A welcome wizard that asks the right questions with the right amount of humour, a getting-started checklist that adapts to your profile, and empty pages that actually tell you what to do instead of staring blankly.

Added

Welcome wizard — four screens: who you are, how many books you own, what system you're escaping from, and what matters most. Your answers shape the rest of the experience

Added

Getting started checklist — four steps to get you going (add a book, try Library Lookup, grade a condition, create a collection) plus bonus steps if your profile warrants them. Checks itself off as you go

Added

Smart empty states — six pages that used to show blank tables now show personality and a clear next step. An empty library is an invitation, not a dead end

Added

Returning user nudge — come back after a few days and a gentle toast points you to your next uncompleted step. Persistent, not pushy

0.21.0

The Dashboard

·4 changes

Numbers for the people who run the platform. Growth charts, data health scores, and an activation funnel that shows exactly where new users get stuck. You'll probably never see this page — but it's why problems get fixed before you notice them.

Added

System dashboard — total users, total books, books per user, data completeness, and activity trends. The kind of dashboard that makes you either proud or nervous

Added

Data health checks — seven quality scores (ISBN filled in? Condition set? Cover photo?) sorted worst-first. The platform now knows where the gaps are

Added

Activation funnel — from signup through 1 book, 10 books, 100 books, 1,000+ books. With conversion percentages, because hope is not a strategy

Added

Per-user journey tracker — six steps from "signed up" to "actually uses the platform." Visible to admins, invisible to you. As intended

0.20.0

The Shelvd Wiki

·4 changes

A complete knowledge base: 35 articles across 8 categories, covering everything from your first book to the 69 MARC relator codes. Written with the same care we'd give a first edition, and considerably more humour than the average user manual.

Added

Wiki — 35 articles across 8 categories: Getting Started, Cataloging, Provenance, Search, Data & Export, Settings, Glossary, and For Dealers. The answers to questions you didn't know you had

Added

Glossary — 150+ terms from "foxing" to "t.e.g." to "association copy." For when the dealer's description reads like a foreign language (it is)

Added

Reference guides for all 76 book formats, 69 contributor roles, binding styles, and condition terminology

Improved

Blog promoted to its own navigation link, because burying 22 articles in a dropdown felt inhospitable

0.19.0

Before the Ink Dried

·3 changes

Three new sources for the serious collector. CERL's Heritage of the Printed Book covers European books from 1455 to 1830 — the kind that come with provenance notes and binding descriptions. HathiTrust brings 13 million digitised volumes. DanBib adds the complete Danish union catalog. Twenty-six sources, nineteen countries.

Added

CERL Heritage of the Printed Book — 6 million records of European rare books, 1455–1830. Includes printer names, former owners, and binding notes. For when your book predates the country it was printed in

Added

HathiTrust — 13 million digitised volumes from 200+ research libraries, with links to the digital versions. Handy when you want to check if page 47 is really missing

Added

DanBib — the complete Danish union catalog, 14 million records. Your Danish first editions just got easier to verify

0.18.0

Helsinki to Tokyo

·5 changes

Five new library catalogs across four continents. From Finland's open archives to Japan's National Diet Library, from Italy's 6,300 libraries to the Koninklijke Bibliotheek. Your Book Lookup now works in languages you can't read — which is oddly satisfying.

Added

Finland — 460+ archives, libraries, and museums in one search. Includes the really obscure stuff

Added

Italy — 6,300 Italian libraries, 17 million records. Good luck finding a Venetian first edition that isn't in here

Added

Japan — the National Diet Library, the largest library in Japan. First Asian source in Shelvd

Added

Australia — National Library of Australia. First source in the Southern Hemisphere

Added

Netherlands (KB) — the Koninklijke Bibliotheek, complementing the existing Dutch coverage

0.17.0

Fjords and Waltzes

·2 changes

Norway and Austria join the lookup network. Fifteen sources, thirteen countries. We're running out of continents.

Added

Norway — academic and research libraries. Useful for those Ibsen first editions

Added

Austria — the Österreichische Nationalbibliothek. Because Vienna has always taken its books seriously

0.16.0

Brussels to Bern

·4 changes

Three more national libraries and a tool that tells you what's missing from your catalog. Belgium, Spain, and Switzerland bring the total to twelve sources across ten countries.

Added

Belgium (Unicat) — 19.5 million records from the Belgian union catalog: KBR, university libraries, and three major networks. Impressive for a country of 11 million

Added

Spain (BNE) — the Biblioteca Nacional de España

Added

Switzerland (Swisscovery) — 500+ Swiss academic and research libraries in one search

Added

Collection Audit — a health score for your catalog. Ten checks (ISBN? Condition? Publisher? Photo?) sorted worst-first, with one-click links to fix each book. For Pro and Dealer accounts

0.15.0

What's It Worth?

·6 changes

Every book now remembers what it cost, what it was appraised for, and what it sold for at auction. Track values over time and see the trend — up, down, or stubbornly sideways.

Added

Valuation timeline on every book — see how its value changed over time, with the source and appraiser for each entry

Added

Value trend chart — appears automatically when a book has two or more valuations. Finally, a chart that goes up and to the right (hopefully)

Added

Seven valuation sources — self estimate, professional appraisal, auction result, dealer quote, insurance valuation, market research, and acquisition cost

Added

Provenance auto-sync — when a provenance entry includes a price, a matching valuation is created automatically. Edit one, the other follows

Improved

Collection statistics now use the full valuation history instead of a single price field — more accurate totals, better trends

Improved

Old pricing fields removed — the four separate price fields on the edit form are gone, replaced by the timeline. Less clutter, no data lost

0.14.0

Three Kinds of Collector

·4 changes

Shelvd now has a business model. Three tiers: Collector (free, always), Collector Pro (€9.99/month), and Dealer (€49/month). The first hundred users get Collector Pro for life. Because being early should count for something.

Added

Three tiers with transparent pricing — see exactly what each level includes, no surprises, no "contact sales"

Added

Early Access benefit — the first 100 users get lifetime Collector Pro, stated clearly everywhere it matters

Added

New profile fields — phone, company name, and website. Dealers need a business card, not just a username

Improved

Sensible limits — Dealer gets 100,000 books and 1,000 tags instead of "unlimited." Real numbers you can plan around

0.13.0

Activity Feed & Invite Codes

·4 changes

Your collection now has a memory. Every book added, every edit, every enrichment — tracked and browsable. Plus: invite codes for sharing Shelvd with the world.

Added

Activity feed — see everything you've done: edits, enrichments, imports, collection changes. Available in the main navigation and on your stats page

Added

Book timeline — every book shows its own change history: when you added it, what changed, when you enriched it

Added

Invite codes — shareable promo codes for bloggers, bookfairs, and friends. Codes can grant trial days or lifetime Collector Pro

Improved

Profile pages now show more detail across the platform

0.12.0

Cover Images & Enrich Everywhere

·6 changes

Your books finally have faces. Cover images from Google Books and Open Library, plus Enrich now works everywhere — not just the edit form.

Added

Cover images — found automatically via Enrich, or paste your own URL. Shown on detail pages, list thumbnails, and grid cards

Added

Click any cover to view it full-size

Added

Enrich now available when adding a new book and directly from any book's detail page

Added

Lookup moved to the header — search for books from anywhere in the app

Improved

Covers follow through the entire flow: search → select → add to library. No more disappearing images

Improved

Navigation stays visible while scrolling

0.11.0

Print Inserts & Polish

·6 changes

Your digital collection meets paper. Print vintage catalog cards and professional catalog sheets for any book.

Added

Printable PDF inserts — generate a vintage 3×5" catalog card or a full catalog sheet from any book's detail page

Added

Catalog card with authentic library aesthetic: red line, typewriter font, punch hole. Decorative and clean versions included

Added

Catalog sheet available in 6 paper sizes (A4 through US Half Letter) with Swiss typography

Added

Live stats and literary quotes on login and signup pages

Improved

Form sections reordered to match how collectors actually think about their books

Improved

Support simplified to two forms: Bug Report and Message

0.10.0

Support, Blog & Navigation

·5 changes

Report bugs, read 22 articles about book collecting, and find everything through a proper user menu.

Added

Feedback & Support — report bugs or send a message directly from the app, with status tracking

Added

Marginalia blog — 22 articles on ISBN history, condition grading, provenance, book formats, and more

Added

Public roadmap — see what's shipped, in progress, and planned

Added

User menu with quick access to Settings, Support, Blog, Roadmap, and Changelog

Improved

Cleaner header and navigation throughout the app

0.9.0

The Website

·8 changes

Shelvd now has a public face. And opinions.

Added

Landing page — hero, 12-feature showcase, 4 visual spotlights, 3-tier pricing, and more personality than most enterprise software

Added

Privacy Policy — GDPR-compliant, 11 sections, written by a human (you can tell because it contains jokes)

Added

Terms of Service — 14 sections of readable legal text, which may constitute a minor miracle

Added

About page — the origin story, featuring a broken spreadsheet and 28,000 books

Added

Changelog — you're reading it

Added

Announcement banners — dismissible messages for updates, maintenance, and news

Added

Collapsible form sections — because nobody needs to see all 76 formats at once

Added

Locale & number formatting — pick your locale (en-US, nl-BE, de-DE, fr-FR, etc.) and all numbers and dates adjust automatically

0.8.0

Enrich, Provenance & Valuation

·5 changes

The update that turned Shelvd from a catalog into a proper bibliographic tool.

Added

Enrich Mode — search library databases and merge new data field-by-field: green for new, amber for different, you decide what stays

Added

Provenance tracking — visual timeline with 10 owner types, 14 association types, evidence sources, and acquisition records

Added

Currency & valuation — home currency setting, multi-currency support, live ECB exchange rates, profit/loss tracking per book

Added

Provenance in ISBD entries — your catalog entries now include the ownership chain

Added

Provenance import/export — bring your provenance data in and out via Excel/CSV

0.7.0

Collections & Tags

·7 changes

Organize your books the way your brain works, not the way a database does.

Added

Multiple collections — Library, Wishlist, and unlimited custom collections with drag-to-reorder

Added

Custom colored tags — create, rename, recolor, and filter by tag

Added

Bulk collection actions — add to or remove from any collection in one click

Added

Collection chips on book detail — toggle collections directly from any book page

Added

"Move to Library" — one-click button for promoting books from Wishlist

Added

Tags management in settings

Improved

All 14 book statuses now with proper labels and colors

0.6.0

Library Lookup

·5 changes

Nine libraries, one search box. Your local rare book dealer doesn't stand a chance.

Added

Library lookup — Library of Congress, BnF, DNB, K10plus, SUDOC, LIBRIS, Open Library, Google Books, and more coming

Added

Multi-field search — title, author, publisher, year, ISBN across all providers simultaneously

Added

Duplicate detection — fuzzy matching with adjustable threshold to find books you cataloged twice at 3 AM

Added

External links from lookup — source URLs automatically saved to your book record

Added

Draft status — for books pending review before entering your collection

0.5.0

Admin & Settings

·4 changes

The boring infrastructure that makes everything else possible.

Added

Admin dashboard — user management, book counts, platform overview

Added

User settings — profile, password, preferences, address, subscription management, delete account

Added

External links — configurable link types per user with auto-fill URLs (WorldCat, OpenLibrary, Google Books, etc.)

Added

Items per page — separate settings for list view (up to 500) and grid view (up to 100)

0.4.0

Statistics Dashboard

·3 changes

More charts than a stockbroker's office. All of them about books.

Added

Statistics dashboard — key metrics, status & condition breakdown, content & origin, physical & storage, time & growth charts

Added

Export selected books — choose which books to include in your export, not just "all or nothing"

Added

Landing page with features list and early access offer

0.3.0

Import & Export

·3 changes

Your data is yours. We mean it.

Added

Excel import — smart field mapping, validation, and error handling for bulk uploads

Added

Multi-format export — Excel, CSV, JSON, one click each

Added

Swiss Design header with navigation

0.2.0

Search & Edit

·7 changes

Finding your books is now almost as satisfying as buying them.

Added

Global search — instant filtering across your entire collection as you type

Added

Advanced search — 14 fields with query-by-example, empty field search, and recent search history

Added

Contributors — add and edit with 69 MARC roles (author, illustrator, translator, binder, cartographer…)

Added

Manual book entry — full add page with all fields

Added

Sortable columns and bulk delete with checkbox selection

Added

ISBD catalog entries — professional entries generated in 4 languages (EN/FR/DE/NL)

Added

76 historical book formats and BISAC subject codes with searchable dropdowns

0.1.0

Foundation

·5 changes

The one where we stopped using Excel.

Added

Authentication — sign up, sign in, password reset

Added

Books listing — list and grid views with pagination

Added

Book detail page — every field visible at a glance

Added

Book editing — inline edit with autocomplete dropdowns

Added

Previous/next navigation between books

Version 0.0.0 was an Excel spreadsheet. It broke on a Sunday afternoon somewhere around row 2,300. The rest is history.

Want to know the full story? Read the About page.