I’ve been using Goodreads for years. It holds my want-to-read list, all the books I’ve read, and a fair amount of ratings. But it has been bugging me for a while: it’s slow, it hasn’t meaningfully changed in ages, and it’s owned by Amazon. As part of my ongoing effort to rely less on big Big Tech, I decided to replace it with something of my own.

Meet Lesestoff.

Scope Link to heading

I didn’t want to rebuild Goodreads. I wanted the parts I actually use:

  • A want-to-read list with a note per book: why I want to read it, or where I heard about it
  • Start and end dates, progress in pages or percent, my own rating and book notes
  • A place that would accumulate all the highlights I’ve taken in my ebooks
  • Book data from open sources instead of typing everything myself
  • Fast, mobile-friendly, and no tracking whatsoever

So, over the weekend my robot intern and I set out to give it a go. Under the hood, it’s a single Go binary with SQLite. There’s no JavaScript, no external fonts or scripts, and covers are proxied through my own server, so the browser never talks to anyone else. It currently runs on my Uberspace, and every merge to main deploys a new release automatically. Full disclosure: I don’t speak Go. But I guess these days it’s not required to speak a programming language anymore.

Where it stands Link to heading

I did not make this public yet, and I don’t know if I ever will, but I’m using it every day. The Goodreads import matched 298 of my 309 books with Open Library and the German National Library. For the remaining ones, I can link them by hand or create them manually.

Beyond the basics, it has grown a few things along the way: Tags instead of custom shelves, a shelf for books I didn’t finish, the format I’m reading in (print, ebook or audiobook), sorting, and author pages with a short bio from Wikipedia and a bibliography. Most recently, I added editions. My German copy of a book can now point to the original English work without pretending to be the English edition.

What’s next Link to heading

My list of ideas keeps getting longer:

  • Yearly reading goals
  • Statistics: how long a book takes me on average, what I read per tag, format or language
  • Collections and series, showing which volumes I have and which ones are still missing
  • More data sources, since German editions are still hit or miss
  • Highlights from my e-reader, and maybe reading progress synced automatically

And at some point, a native app. For now, I’m just happy to have my books back in a place I control.