Building the reading app that fits how I read
I like to log the books I read, not because I'm racing anyone to see who's read the most by the end of the year, but because I'm reading so much again that I want to remember what I read and when. I also want to see what kinds of books I've been reading, which authors, and all the small details you forget once you read a lot.
I first logged my books on Goodreads. It was the obvious place to start and easy to use, but it didn't tell me much beyond how many books I'd read. So I tried StoryGraph, which has the stats I wanted: moods, pace, pages, genre breakdowns, charts you can actually spend time with.
The problem was the map
StoryGraph has many ways into every part of the app: a link inside one section would drop me somewhere else entirely, and getting back meant retracing my steps until something looked familiar.
Funnily enough, this got me thinking about technical writing, where a big part of the job is information architecture: deciding where things live and how someone finds their way from one to the next. Every screen in StoryGraph was fine. But the map just didn't work for me.
Goodreads, to me, had the opposite balance: a plain map and thin stats. So I wondered: what if I built my own app with the best features from both?
One job per tab, one level deep
The app I've built has four tabs, and each does one thing. Reading is where it opens: the books I'm in the middle of, each with a Finish and a Stop button. Library holds everything I've read, want to read or gave up on. Add searches two book databases by title, author or ISBN. Stats is the StoryGraph-like part, with books and pages per year, pages per day, and charts for genre, format, mood, pace and rating (I tag mood and pace myself when I finish a book).
The rule that shaped every interface decision is simple: one level deep. Tapping a book opens its page on top of the tab I was on, and closing it puts me back exactly there: same scroll position, same filters. Nothing on a book page links anywhere else. Author names aren't links. There are no "similar books". I can edit the book, start it again or delete it, and that's it.
I built it the way I built my budget app: I describe what I want to an AI agent, it lays out the options, I decide, and then I poke at it on my phone until it behaves. Same small setup underneath, even. The first working version took a couple of days.
Poking at it turned up things I needed to fix. That first version had a menu button that was just three dots, and on the phone it didn't read as a menu at all. Now it's an icon with the word "Menu" next to it.
Bringing my history with me
None of this would have been worth much if I'd had to start from zero. Fortunately, Goodreads lets you export your history, so my app imports that file, previews it before saving anything, and can take a newer export later without creating duplicates. It exports everything back out as a file too. I didn't want my reading history locked into something I built myself either.
The last piece: covers
When I opened my library, I realized almost a third of the books had the same plain cloth placeholder. Goodreads had covers for them, but the two free databases my app searches didn't know a lot of my books, mostly one Kindle-only series and a handful of Portuguese editions. Uploading covers by hand worked. It was also slow: find the cover on the web, save it on the phone, upload it, next book.
So I gave the app a way to find covers for me.
The page of any book without a cover now has a Find cover button, which starts a Claude task in the cloud on the plan I already pay for. It searches the web, pulls down candidates through a script with strict limits, drops anything that isn't cover-shaped, and looks at each image to weed out other books, other editions and mock-ups. If a site makes it clear it doesn't want scripts, the finder leaves it alone instead of working around it. About a minute later the book page shows me up to three suggestions, and nothing is saved until I tap one.
In an early dry run on 28 books it found the right cover for 25, and across all my testing it hasn't once picked a different book.
Did I need this?
No, of course not. StoryGraph does far more than my app ever will. But with an assistant that's good at coding, a small itch like this is cheap to scratch, and this one was specific: I wanted to stop getting lost.
The cover finder was the real test. It's the most complicated thing in the app, and it still fits on one book page: I tap a suggestion, and I'm still exactly where I was. If a future feature can't do that, it doesn't go in.
A note: this isn't a copy of either app. I took inspiration from the parts I liked from each and built something private that only I use.