Dewey — Dima Perkis

Active July 2026

Dewey

Paste a reading list or ask for recommendations. Dewey checks live local-library availability and gives you call numbers for your branch or nearby.

Try Dewey↗ Read the story ↓

What Dewey Does

Dewey makes a library run concrete before you leave home. Paste a whole reading list—or ask for recommendations—pick a supported local branch, and it checks the live catalog in one pass. The result shows what is on the shelf, what is checked out, and the call number that gets you to the right aisle.

Catalog support: Dewey currently supports the listed library systems using BiblioCommons, plus the DeKalb County Public Library Polaris catalog in beta (print titles only). View the public source on GitHub.

The model recommends. The library catalog verifies. If Dewey is unsure it found the right title or edition, it labels the uncertainty instead of pretending.

Why I Built It

Bedtime was getting repetitive, and I realized I wasn’t frustrated with reading—I was frustrated that I didn’t have the right books. Recommendations were easy. The painful part was checking every title against the library one search at a time.

One night I searched for funny bedtime books, found almost nothing available locally, went to the library anyway, and grabbed a book with an award-winning-looking cover. Halfway through bedtime I discovered it was The Cat Man of Aleppo—a worthwhile true story set during the Syrian Civil War, and profoundly different from the silly bedtime experience I thought I was bringing home.

That was the trigger. The missing feature was bulk search: check the whole list, see what is actually on the shelf, and stop gambling on a library trip.

The First Library Run

The first real test came before a trip: I checked availability for a list of Mexico books, walked into the branch with call numbers, and went straight to the shelves. The whole pickup took about four minutes. Jesse joked that I looked like I worked at the library.

So far, Dewey has been used for two library runs, with another list in progress. There is no formal time-savings measurement. The useful change is confidence: I am more likely to stop at the library because I know what is there and where to walk.

How It Avoids Confident Wrong Answers

Fulton County’s catalog runs on BiblioCommons. It has no public API, but its front end talks to an undocumented JSON gateway. Finding a reliable path through it took some scar tissue:

The design principle is simple: label uncertainty instead of hiding it. A wrong “on shelf” answer costs a trip; a flagged result costs one click.

Why “Dewey”

He finds things in libraries.

What Problem Should We Try Next?

The best small tools often begin as one stubborn, specific annoyance. If you have one, I would love to hear it.

Have a stubborn problem like this? Tell me about it.

Models, agents, tools, and infrastructure

Next.js

The live web app, including the list checker, recommendations, wishlist, and server-side catalog routes.

Claude Code

Helped build and test the catalog engine, matching logic, and Library Nostalgia interface.

BiblioCommons JSON gateway

The catalog's own undocumented front-end API — live shelf status without auth.

OpenRouter

Generates recommendations; Dewey verifies each result against the library catalog before calling it available.