Open Source Show Hn: Vibe Coding A Bookshelf With Claude Code
I own more books than I can read. Not in a charming, aspirational way, but in the practical sense that at some point I stopped knowing what I owned. Somewhere around 500 books, memory stopped being a reliable catalog.
For years, I told myself I would fix this. Nothing elaborate, nothing worthy of a startup idea. A spreadsheet would have been enough. I never did it, not because it was hard, but because it was tedious.
The gap between intention and execution was small, but it was enough to keep the project permanently parked in the someday pile.
By the end of 2025, I had been working with AI agents long enough that this kind of project finally felt possible. Not because they made things more impressive, but because they removed the part I always stalled on. Execution.
The bookshelf project is where I clearly understood what my role becomes once execution stops being the bottleneck.
I tried the obvious tools first. ISBN scanner apps failed on Romanian editions, and Goodreads could not identify obscure publishers or antiquarian finds. Anything even slightly nonstandard came back incomplete or wrong. Partial data felt worse than no data at all, so every attempt ended the same way: a few entries filled in, followed by abandonment.
What I needed was not a better app, but a way to tolerate imperfection without the whole system falling apart.
Every project starts with bad data, and this one started with worse data. One afternoon, I photographed every book I own: spines, covers, duplicates, and the occasional blurry thumb. Four hundred and seventy photos in total. Once the images were on my laptop, I opened Claude.
The first steps were mechanical. Renaming files. Converting HEIC to JPG. Then I asked for something real: a script that sends each image to OpenAI's vision API, extracts author, title, and publisher, normalizes names, resizes images to avoid wasting tokens, and writes everything to a JSON file.
Claude wrote the script and ran it. It worked. Not perfectly, but well enough to matter.
Source: HackerNews