Show HN: I made a table comparer to quickly find a new book to read

nextread.info

51 points by HerChip 5 months ago

After a few weeks of programming a few minutes at the time, next to my full time job, I created this tool that helps you pick your next book from your long(er) want-to-read list. In essence, it is a table with filters and column sorters.

My problem was that the Goodreads website does not allow you to filter multiple columns at a time. That is why I created an alternative way to go through your books.

Unfortunately, Goodreads no longer shares API keys, so it relies on its export functionality for a csv file. Not all the required information for your book search is present in this CSV file. To solve this, the website scrapes Goodreads based on the book ID from the CSV file for the extra info.

Using the tool you can filter your want-to-read list. For example, I usually only read books that have been out for a few years, have an okay rating and have some reviews. Basically, a new book that has survived the hype and is still interesting.

I had the most trouble creating the front page and informing visitors what they could expect. I'm a more technical developer and found this part more difficult. I'm curious about your guy's feedback.

I hope there are some goodreads users as I was not sure if attaching a sample csv file was okay/possible.

For now, this website version is a basic trial version. It does not save any data in a database or in-memory. If people would find this useful, I could extend it.

Lastly, as I'm new to posting to hacker news, and wanted to share it. I read somewhere that you could add the "Show HN:" in front of it. I did this sadly after I posted this post earlier. So this is basically a repost, sorry about that. I have hide my previous (as deletion does not seem possible)

hombre_fatal 5 months ago

For this kind of project, you really need a "View live demo" link that shows us an example of the results. Take the tool output and paste it into /demo.

OR at least take a screenshot of it and place it above the fold on the homepage.

People are seldom likely to do work unless they think it will be worth their time.

  • HerChip 5 months ago

    Good tip! Do you mean for hackernews or for the homepage of for both?

    • sphars 5 months ago

      A demo on your website would be more beneficial I think. Not that I don't trust you, but I like to see what the results look like before I go and download my Goodreads days and upload it to yours.

      • HerChip 5 months ago

        Yeah, just to save time.

        I do like websites that have this as well. It feels like some effort, more than is needed for a MVP. However, to get people using it is also very important.

        Thanks for the suggestions

rnjailamba 5 months ago

Just tested with 7000 books in the want-to-read list so passes the scalability test. Recommendations in decreasing priority: 1. Age > 75 is important, many older but super valuable books didn't show up as a result. Upto 200 years ago is good enough but we'd still miss Aristotle etc. 2. Ratings and Reviews should also have a higher or infinite upper bound, I'm not sure how the front end would look.

  • HerChip 5 months ago

    ah cool that you uploaded 7000 books: did not do that myself. A good tip for next time :)

    What do you mean by "decreasing priority"?

    I was struggling with the filters UX: - the age is capped at 75 years - Ratings/reviews take the 90th percentile (like a median) of your book set This last one ensured the filters would be more dynamic. If you had a book with 100k ratings, it would have been hard to use the slider (as this was linear). Any suggestions to change the UX?

    Before you could only target a lower limit. But for more functionality, I had the idea to add a max and min. However, this combination does now work

bwb 5 months ago

Very cool! I tried it out, and it worked like a charm.

How did you build the genre list? I was curious how you got that data.

(I wish Goodreads would fix their API; so disappointed in them for killing off access)

I've been playing with something similar to help people find books... for example, here is a filter page that is searching science fiction books for all books with AI from newest to oldest (but limited to only the books in our DB that someone has recommended): https://shepherd.com/bookshelf/science-fiction?topics=Q11660...

I'm working on a TBR tool for this year as well. Going to try to really make everyone's TBR pile come to life in some cool ways.

  • HerChip 5 months ago

    Ah thanks for your reply, this is my first tool and post: highly appreciated.

    When you go to the book's dedicated webpage, you can see the corresponding genres. I'm using a web scraper to get this information, which enriches the existing book data.

    Yeah, now uploading your CSV is a bit cumbersome, using their API would have been much nicer. Do you have any suggestions for using the website more often?

    I looked at your shepherd tool. Nice website, seems nice. For me personally, I don't need any more recommendations as I already have a too-long TBR.

    Cool. I'm curious about your plans. I have a long TBR list (800 books), so that is why I started with NextRead.

    • bwb 5 months ago

      Ah, nice, very cool on scraper :)

      The CSV part was smooth and quick, so there were no problems there.

      >Do you have any suggestions for using the website more often?

      For users, I think the ability to come back and not have to re-upload. Once I came back, I couldn't really access my previous data without it (but guessing you know this). I wasn't sure if I missed it, but being able only to upload one shelf might help readers who use Goodreads to dump their TBR pile into.

      > Cool. I'm curious about your plans. I have a long TBR list (800 books), so that is why I started with NextRead.

      Right now, I am trying to get some stuff in place for this feature, such as building a database of all books (so that we can easily add them to their list) and fixing our genre/topic system to improve accuracy using AI. I am also working to add some of the Book DNA elements I collect from readers to the system (mood, tropes, themes, etc.).

      Once those are in place, I will launch the TBR feature. I want to make it easier to sort through your list based on those Book DNA elements to figure out what you want to read next and get suggestions for books you will love based on other readers who share your Book DNA. I also loving knowing how I met a book and I want to add that to the mix.

      So a bit of a really powerful sorting tool with elements to help you see what similar readers loved. And with some of the Book DNA review data, things like "show me science fiction books on my TBR list that people loved for characters."

      I'd also love to build a Chrome extension so that readers can easily add books to their TBR pile from any website, but I am not sure if we have time or resources this year.

      Rough sketch...

      • bwb 5 months ago

        why -1? kinda blown away i got downvoted on HN.

    • bwb 5 months ago

      Are you manging your TBR list in Goodreads for now? I've been using a spreadsheet and was curious there.

      • HerChip 5 months ago

        Yeah, so adding a local storage would be a step 1? Or would you prefer to use the standard google/facebook/etc instead?

        Sounds cool! I like those ideas. I hope it works for people. As explained to me the TBR feature would be the best, so I will definitely try to use it :)

        • bwb 5 months ago

          I always prefer Google logins as they are easy to remember and have no steps. I often don't sign up if they want me to manage all that.

          Nice, ya happy to chat anytime if you want to talk shop too.

deivid 5 months ago

Excited to try it, but I don't have a goodreads account. Could I import data from my calibre library directly?

  • HerChip 5 months ago

    I have uploaded my own library csv to a wetransfer link, then you could try it.

    https://we.tl/t-LdjdBPbVRK

    Im not familiar with calibre sadly. Creating a GoodReads account and adding some books is quite easy (if you are willing to create another account).

    Thanks for taking the time to take look

saidhasyim 5 months ago

Very cool. Does it offer manual search? for those who don't maintain "to read" list in GoodRead?

eulgro 5 months ago

I got zero recommendations, or it takes >5 min to load.

  • HerChip 5 months ago

    What kind of csv did you upload and what filters did you use? How many books were in that csv? Were it a lot of books?

    As explained, the website scrapes multiple book webpages to enrich the csv data. The csv does not have all the data which I think is nice to find a new book

    If you have time, maybe you can share your csv via e.g. wetransfer?

    Thanks for taking time to look

Fudgel 5 months ago

It only showed me a single book recommendation. :-(

  • HerChip 5 months ago

    What kind of csv did you upload and what filters did you use? How many books were in that csv?

    If you have time, maybe you can share your csv via e.g. wetransfer?

    Thanks for taking time to look

    • Fudgel 5 months ago

      I just uploaded my goodreads csv. No filters applied. Yeah I don't mind sharing the csv. Here it is: https://pastebin.com/nUJH4urN

      • HerChip 5 months ago

        Hey Fudgel, I have looked into your CSV. It is working as I originally intended: it only displays books that are on your "to-read" bookshelves, as the idea is that you want to find a book that is not on your read list. You only have one book that is not on your read list.

        Would you want/expect any other functionality? I assume you then mainly use GoodReads to keep track what you have read and not what you would like to read in the future?

      • HerChip 5 months ago

        Cool thanks, I will take a look at it