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.3.140 releases

1.3.1

Latest

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.