1.3.1
LatestThe Bug Sweep
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.
Same-date valuations are averaged into a single chart point — tooltip shows "Market Research (avg of 2)" when multiple entries share a date
Drag-to-reorder for valuation, provenance, and condition history editors — GripVertical is now a real drag handle, confusing chevron arrows removed
Date sort utility extracted to shared module — consistent date parsing across chart and timeline
Valuation chart showed wrong order with mixed date formats — "01.03.2026" sorted before "2018" alphabetically. Now uses smart date parsing
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
Search and prev/next navigation broke on book titles with commas or parentheses — PostgREST filter strings now properly escaped
Import pages truncated autocomplete lists at 1000 rows — same .limit(10000) fix applied to import and custom import pages
Wiki articles all showed "12 February 2026" — hardcoded date removed, wiki pages are reference docs not blog posts
Duplicates page book count stayed stale after deleting books — count now updates immediately
1.3.0
The Detail Sweep
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.
Inline contributor editing — change name and role directly in the form without deleting and re-adding
Contributor name autocomplete — suggests names from your existing books as you type
XML and Apple plist import — drag in an XML file from other book collector apps and Shelvd maps the fields automatically
Catalog ID in book detail header — visible right under title, author, and status badge, with copy button
Catalog ID uniqueness enforcement — database constraint prevents duplicates, forms show real-time warning with link to the conflicting book
Spellcheck toggle — disable browser spell check in book forms from Application Settings
Last Page book part — available as image label alongside First Page, Chapter Page, and all other parts
Edit page stays open after Save — no more bouncing back to the detail page. "Done" button takes you back when you're finished
New books redirect to edit page — image upload zone is immediately available after creating a book
Catalog ID is now the first field in Title & Series on add and edit forms — because it's usually the first thing you enter
Asking Price is always "Asking Price" — no more "Sold For" label. The actual sale price belongs in Provenance
Image upload progress bar — replaces the pulsing book icon with actual upload count, percentage, and per-file status
Detail page image upload simplified — removed the label selector UI, all uploads default to "detail" type
Valuation chart ran right-to-left — now correctly shows oldest on the left, newest on the right
Publisher, place, and other autocomplete lists stopped updating after ~1000 books — Supabase default row limit now overridden
Contributors could only be reordered or deleted, not edited — name and role were static text
Bulk image import: cancel button was wrong color, drop zone required double-click, uploads failed after idle tab
Stale books displayed after switching collections — race condition where slow fetch overwrote current results
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
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.
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
Bulk image import redesign — action buttons pinned to the header row, subtle phase dots, friendlier copy, bordered preview table
Import dropdown labels shortened — Spreadsheet, Photos, Custom File. Context does the rest
hasFeature() performance — 4 sequential database queries reduced to 2. Every gated page loads faster
AI enrichment errors now show the actual problem instead of a generic "please try again"
Facebook sharing preview showed blank image — 0-byte cached response from broken edge function replaced with static PNG
1.2.0
Your Move
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.
Dark mode — Sun/Moon toggle in the app header. All 220 hardcoded color classes replaced with semantic design tokens. Works across every page
Saved searches — bookmark complex filter combinations and recall them with one click. Badge shows count, hover to delete
Infinite scroll — books load automatically as you scroll down. No more "Load More" button
Bulk tag assignment — select multiple books and assign tags in one action
Bulk status change — select multiple books and change their status simultaneously
Drag-to-reorder contributors in add and edit forms — grab handles to set the display order
Draft recovery — unsaved changes in add and edit forms persist in localStorage. Resume where you left off
Free tier: 10 trial AI scans and 100 MB image storage — try the AI scanner before committing to a plan
Image URLs in exports — all export formats now include a column with links to every uploaded image
Prev/next navigation preserves your filter context — collection, tag, and search query carry through
Status badge is clickable everywhere — change status directly from the book detail page
External links grouped by category (bibliographic, marketplace, auction, etc.) on the detail page
Collection and tag dropdowns in advanced search — no more typing exact names
Field-level validation for ISBN-13, ISBN-10 (check digit), OCLC (digits only), and URL format
Navigation: removed confusing "Search" link from main menu (search lives on the books page)
Marketing header button renamed from "Collection" to "Your Library" for consistency
Duplicate books appearing in grid view — race condition in infinite scroll where the same page was fetched twice
AI Scan gave 404 for free users — redirect now goes to the upgrade page instead of a non-existent route
Status badge on detail page showed fewer options than the edit form — now both show all 14 statuses
1.1.0
Found by Google
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.
llms.txt — AI-crawler-friendly site summary with feature descriptions, comparisons, and all public URLs
FAQ schema on homepage — five questions targeting real book collecting search queries (cataloging without ISBN, provenance tracking, collection valuation)
ItemList structured data on blog index — all 22 articles as ListItems for rich snippets
ItemList + CollectionPage structured data on wiki index — all 46 knowledge base articles
JSON-LD structured data on changelog and roadmap pages
BreadcrumbList JSON-LD on every blog post and wiki article for search result breadcrumbs
Homepage JSON-LD — added featureList, sameAs (ProductHunt), SearchAction, applicationSubCategory, and pricing description
Blog OpenGraph tags — article:section and article:tag per category for better social sharing and search categorization
Canonical URL fix — absolute URL instead of relative on homepage
Book detail page — status badge moved from title row to below contributors, cleaner layout
Book detail buttons reordered — Delete (neutral) → Print Insert → Edit (red, prominent). Edit is the primary action, Delete is de-emphasized
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
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.
Quick-filter tabs on books list — one click to filter by status (Available, Sold, Reserved, etc.) without opening advanced search
Visual status badges — colored dots and backgrounds replace plain text labels across list, grid, and detail views
Value summary averages — see average acquired and estimated value per book alongside totals
Date range filter in advanced search — filter by when books were added to your library
Search in notes and bibliography fields — four text columns searched simultaneously
Copy-to-clipboard on all identifiers — ISBN-13, ISBN-10, OCLC, LCCN, Catalog ID with one-click copy
Collection-aware breadcrumbs — navigating from a collection filter shows the collection name in the breadcrumb trail
Set as cover in image gallery — click any uploaded image and set it as the book's cover photo
Paste-to-detect link types — paste a URL and the link type auto-selects based on the domain (Goodreads, WorldCat, etc.)
Step progress indicator for AI scan — Upload → Analyze → Done with animated transitions
Password strength meter on signup — four-level indicator with real-time feedback
App footer with Wiki, Support, Changelog, Privacy, Terms links and version number
Swipe-to-close mobile navigation drawer
Humorous empty states across activity, tags, lookup, and search — consistent tone with helpful guidance
AI enrich now fills language and original language — detects translation cues like "traduit de" and "vertaald uit"
Books list — skeleton loading, responsive cards, "clear search" on empty results, drag-to-reorder columns
Book detail — expandable long descriptions, metadata sections for physical description and condition, external links sorted by category
Settings — client-side tab routing (no full page reload), loading skeleton, styled delete-account modal with type-to-confirm
Import preview table now shows all mapped columns dynamically instead of fixed five columns
Activity table — responsive card layout on mobile, audit results cached in localStorage with "scanned X ago" timestamp
Dark mode toggle on book detail and edit pages
Numerous small layout fixes — consistent section spacing, field alignment, skeleton proportions across all pages
0.34.0
Second Look
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.
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
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
AI scanning spotlight moved to a more prominent position on the landing page, with a new photo gallery section showcasing the image features
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
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
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.
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
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
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
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
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.
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
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
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
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
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
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
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
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
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.
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
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
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
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
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
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.
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
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
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
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
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
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.
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
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
Upgrade page — plan comparison with feature lists, pricing, and a single "Proceed to payment" button. Clean enough that even your accountant would approve
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
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
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
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.
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.
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
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
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
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.
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
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
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
NUR codes — all 682 entries for the Dutch and Belgian book trade. If you're selling books in the Low Countries, you need this
Four wiki articles on DDC, LCC, UDC, and NUR — with more history than strictly necessary, and full lookup tables for each
Previous/Next navigation now follows your sort order — sorted by year? You'll browse by year. No more jumping back to alphabetical
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
Newsletter — sign up from the landing page, blog, or footer. Occasional updates on new features and the odd literary digression. No spam, no schedule
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
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.
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
Image relabeling — uploaded a photo as "cover" when it's really the spine? Click it, pick the right label. No re-upload needed
Two new wiki articles — photo labeling guide and trade catalog conventions
Library Lookup dropdown redesigned — providers grouped by language with record counts, so you know where to look first
Tooltips no longer vanish behind the edge of your browser
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
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.
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
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
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
Signature details — a new field that appears when you mark a book as signed, because "Signed" alone never tells the whole story
Google Books added as a lookup source
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
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
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
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.
Image uploads for Pro and Dealer — drop files or snap photos directly from your phone. Accepts JPEG, PNG, WebP, even HEIC from your iPhone
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
Drag to reorder your photos — cover first, foxing detail second, whatever makes sense for the listing
Covers sync everywhere — upload a cover and it appears in your list view, grid view, and search results
Duplicate warning — start typing a title and Shelvd tells you if you already own it, with a link. For the 3 AM cataloging sessions
Save confirmation toast — a small but reassuring message after every edit, because "did I actually save that?" was keeping people up at night
Unsaved changes dot (●) in your browser tab — the universal sign for "don't close this yet"
Catalog number search — find books by your own numbering system, not just by title or ISBN
Custom 404 page — "Ex Libris Nobody." We had to
Back to collection returns you to your exact scroll position instead of the top. Small thing, big relief
Grid view sorting — eight sort options that actually work across all pages
0.23.0
Now Works on Phones
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.
Mobile navigation — a proper slide-out menu instead of a desktop nav bar that runs off the edge of your screen
Book list on mobile — compact cards with cover, title, and author instead of a twelve-column spreadsheet that requires a magnifying glass
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
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.
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
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
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
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
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.
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
Data health checks — seven quality scores (ISBN filled in? Condition set? Cover photo?) sorted worst-first. The platform now knows where the gaps are
Activation funnel — from signup through 1 book, 10 books, 100 books, 1,000+ books. With conversion percentages, because hope is not a strategy
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
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.
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
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)
Reference guides for all 76 book formats, 69 contributor roles, binding styles, and condition terminology
Blog promoted to its own navigation link, because burying 22 articles in a dropdown felt inhospitable
0.19.0
Before the Ink Dried
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.
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
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
DanBib — the complete Danish union catalog, 14 million records. Your Danish first editions just got easier to verify
0.18.0
Helsinki to Tokyo
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.
Finland — 460+ archives, libraries, and museums in one search. Includes the really obscure stuff
Italy — 6,300 Italian libraries, 17 million records. Good luck finding a Venetian first edition that isn't in here
Japan — the National Diet Library, the largest library in Japan. First Asian source in Shelvd
Australia — National Library of Australia. First source in the Southern Hemisphere
Netherlands (KB) — the Koninklijke Bibliotheek, complementing the existing Dutch coverage
0.17.0
Fjords and Waltzes
Norway and Austria join the lookup network. Fifteen sources, thirteen countries. We're running out of continents.
Norway — academic and research libraries. Useful for those Ibsen first editions
Austria — the Österreichische Nationalbibliothek. Because Vienna has always taken its books seriously
0.16.0
Brussels to Bern
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.
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
Spain (BNE) — the Biblioteca Nacional de España
Switzerland (Swisscovery) — 500+ Swiss academic and research libraries in one search
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?
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.
Valuation timeline on every book — see how its value changed over time, with the source and appraiser for each entry
Value trend chart — appears automatically when a book has two or more valuations. Finally, a chart that goes up and to the right (hopefully)
Seven valuation sources — self estimate, professional appraisal, auction result, dealer quote, insurance valuation, market research, and acquisition cost
Provenance auto-sync — when a provenance entry includes a price, a matching valuation is created automatically. Edit one, the other follows
Collection statistics now use the full valuation history instead of a single price field — more accurate totals, better trends
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
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.
Three tiers with transparent pricing — see exactly what each level includes, no surprises, no "contact sales"
Early Access benefit — the first 100 users get lifetime Collector Pro, stated clearly everywhere it matters
New profile fields — phone, company name, and website. Dealers need a business card, not just a username
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
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.
Activity feed — see everything you've done: edits, enrichments, imports, collection changes. Available in the main navigation and on your stats page
Book timeline — every book shows its own change history: when you added it, what changed, when you enriched it
Invite codes — shareable promo codes for bloggers, bookfairs, and friends. Codes can grant trial days or lifetime Collector Pro
Profile pages now show more detail across the platform
0.12.0
Cover Images & Enrich Everywhere
Your books finally have faces. Cover images from Google Books and Open Library, plus Enrich now works everywhere — not just the edit form.
Cover images — found automatically via Enrich, or paste your own URL. Shown on detail pages, list thumbnails, and grid cards
Click any cover to view it full-size
Enrich now available when adding a new book and directly from any book's detail page
Lookup moved to the header — search for books from anywhere in the app
Covers follow through the entire flow: search → select → add to library. No more disappearing images
Navigation stays visible while scrolling
0.11.0
Print Inserts & Polish
Your digital collection meets paper. Print vintage catalog cards and professional catalog sheets for any book.
Printable PDF inserts — generate a vintage 3×5" catalog card or a full catalog sheet from any book's detail page
Catalog card with authentic library aesthetic: red line, typewriter font, punch hole. Decorative and clean versions included
Catalog sheet available in 6 paper sizes (A4 through US Half Letter) with Swiss typography
Live stats and literary quotes on login and signup pages
Form sections reordered to match how collectors actually think about their books
Support simplified to two forms: Bug Report and Message
0.10.0
Support, Blog & Navigation
Report bugs, read 22 articles about book collecting, and find everything through a proper user menu.
Feedback & Support — report bugs or send a message directly from the app, with status tracking
Marginalia blog — 22 articles on ISBN history, condition grading, provenance, book formats, and more
Public roadmap — see what's shipped, in progress, and planned
User menu with quick access to Settings, Support, Blog, Roadmap, and Changelog
Cleaner header and navigation throughout the app
0.9.0
The Website
Shelvd now has a public face. And opinions.
Landing page — hero, 12-feature showcase, 4 visual spotlights, 3-tier pricing, and more personality than most enterprise software
Privacy Policy — GDPR-compliant, 11 sections, written by a human (you can tell because it contains jokes)
Terms of Service — 14 sections of readable legal text, which may constitute a minor miracle
About page — the origin story, featuring a broken spreadsheet and 28,000 books
Changelog — you're reading it
Announcement banners — dismissible messages for updates, maintenance, and news
Collapsible form sections — because nobody needs to see all 76 formats at once
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
The update that turned Shelvd from a catalog into a proper bibliographic tool.
Enrich Mode — search library databases and merge new data field-by-field: green for new, amber for different, you decide what stays
Provenance tracking — visual timeline with 10 owner types, 14 association types, evidence sources, and acquisition records
Currency & valuation — home currency setting, multi-currency support, live ECB exchange rates, profit/loss tracking per book
Provenance in ISBD entries — your catalog entries now include the ownership chain
Provenance import/export — bring your provenance data in and out via Excel/CSV
0.7.0
Collections & Tags
Organize your books the way your brain works, not the way a database does.
Multiple collections — Library, Wishlist, and unlimited custom collections with drag-to-reorder
Custom colored tags — create, rename, recolor, and filter by tag
Bulk collection actions — add to or remove from any collection in one click
Collection chips on book detail — toggle collections directly from any book page
"Move to Library" — one-click button for promoting books from Wishlist
Tags management in settings
All 14 book statuses now with proper labels and colors
0.6.0
Library Lookup
Nine libraries, one search box. Your local rare book dealer doesn't stand a chance.
Library lookup — Library of Congress, BnF, DNB, K10plus, SUDOC, LIBRIS, Open Library, Google Books, and more coming
Multi-field search — title, author, publisher, year, ISBN across all providers simultaneously
Duplicate detection — fuzzy matching with adjustable threshold to find books you cataloged twice at 3 AM
External links from lookup — source URLs automatically saved to your book record
Draft status — for books pending review before entering your collection
0.5.0
Admin & Settings
The boring infrastructure that makes everything else possible.
Admin dashboard — user management, book counts, platform overview
User settings — profile, password, preferences, address, subscription management, delete account
External links — configurable link types per user with auto-fill URLs (WorldCat, OpenLibrary, Google Books, etc.)
Items per page — separate settings for list view (up to 500) and grid view (up to 100)
0.4.0
Statistics Dashboard
More charts than a stockbroker's office. All of them about books.
Statistics dashboard — key metrics, status & condition breakdown, content & origin, physical & storage, time & growth charts
Export selected books — choose which books to include in your export, not just "all or nothing"
Landing page with features list and early access offer
0.3.0
Import & Export
Your data is yours. We mean it.
Excel import — smart field mapping, validation, and error handling for bulk uploads
Multi-format export — Excel, CSV, JSON, one click each
Swiss Design header with navigation
0.2.0
Search & Edit
Finding your books is now almost as satisfying as buying them.
Global search — instant filtering across your entire collection as you type
Advanced search — 14 fields with query-by-example, empty field search, and recent search history
Contributors — add and edit with 69 MARC roles (author, illustrator, translator, binder, cartographer…)
Manual book entry — full add page with all fields
Sortable columns and bulk delete with checkbox selection
ISBD catalog entries — professional entries generated in 4 languages (EN/FR/DE/NL)
76 historical book formats and BISAC subject codes with searchable dropdowns
0.1.0
Foundation
The one where we stopped using Excel.
Authentication — sign up, sign in, password reset
Books listing — list and grid views with pagination
Book detail page — every field visible at a glance
Book editing — inline edit with autocomplete dropdowns
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.