Custom Book-Lending Tracker for a Princeton Business

The short version

A solo business in Princeton rents out books and needed a simple way to track which books he owns and who currently has each one — nothing close to a full inventory platform. I built an app that syncs across his devices through his own iCloud account, so there's no server for either of us to run. It looks up each book by ISBN to pull cover art and details automatically, and everything can be exported to or imported from plain JSON, so the data is always his and never locked into the app.

A solo business in Princeton rents out books to people and needed a way to track which ones he owns, and who currently has each one, without adopting an inventory system built for a warehouse.

More than a spreadsheet, less than a platform

A spreadsheet can hold a list of titles, but it can't look up a cover image, and it turns into a mess fast once you're tracking who has which copy and when it's due back. The inventory and library-management platforms that do handle that are built for much bigger operations — multiple staff, multiple locations, reporting nobody here needs — and bill monthly for all of it.

What he actually needed was small: an accurate list of his books, who has each one, and a way to add a new title quickly.

Syncing without a server

The app syncs across his devices through his own iCloud account, so there's no database for me to host and no monthly bill for keeping it running. For one person's book collection, the amount of data is tiny, and Apple is already providing the sync — paying for separate hosting would have been solving a problem that didn't exist.

It's the same reasoning behind the desktop app I built for a Flemington hair salon: when the data is small and stays with one owner, a server is often the part of "custom software" that doesn't need to exist.

Adding a book by its ISBN

Typing in a title, author, and cover image by hand for every book would have made the app annoying to actually use. Instead, entering a book's ISBN looks it up against a public book database and pulls in the cover art and details automatically — a few seconds instead of a few minutes per book.

Owning the data, not just the app

Everything can be exported to plain JSON, and a JSON file in that same shape can be imported back in. That means his book list was never trapped in a proprietary format — he can back it up himself, move it somewhere else, or hand the file to another developer someday, and it's still just readable data.

What happens after it ships

He's come back more than once since with something new he wanted the app to do. Each request got the same treatment as the original build: a price for that specific piece of work, invoiced once it was done. Not a retainer, not a monthly fee that exists whether he asks for anything or not — just the original app, plus whatever he's actually asked for since, each priced on its own.

What this and the Flemington salon have in common

Neither business is paying anyone every month for what they're using. They paid once for software sized to what they actually needed, and they pay again — a fixed amount, agreed up front — only on the months they actually want something changed or added. That's the trade a lot of small businesses don't realize is available: a subscription keeps charging whether you touch it or not, while software built for you costs money exactly when it's doing something new for you.

If your business needs something this specific

Most small, specific tracking problems like this don't need a subscription or a server — they need software sized to what's actually being tracked. If you're running something in Princeton, Hopewell, or Flemington that's outgrown a spreadsheet but doesn't need a full platform, get in touch and we'll go through what it actually needs to do. More on what I build.

← Back to Insights