Shelf Help: Building a Book Recommendation Tool
After successfully creating my digital home library catalog, I found myself wanting more than just a way to track my books. I wanted a tool that could help me discover my next great read based on what I already enjoy. That's how I came up with a book recommendation tool that suggests titles similar to ones you love and I gave it the name Shelf Help.
The Problem
I often found myself in a reading rut, unsure what to read next. While there are plenty of recommendation engines out there, I wanted something that:
- Focused specifically on books I'm interested in
- Was free from the noise of bestseller lists and paid promotions
- Could work directly with my existing library data
- [Future work] Show me why a book was being recommended
The Solution
Shelf Help solves this by leveraging the Google Books API to find books similar to ones you search for. Here's how it works:
- Search for any book - Just type in a title or author
- Get instant recommendations - The tool finds books with similar themes, genres, or by the same author
- Discover new categories - Browse through curated book categories to find your next read
- [Future feature] See why it's recommended - Each suggestion includes the reason it was chosen
How It's Built
Building Shelf Help was a great learning experience in working with an agent-powered IDE, external APIs and creating responsive UIs. Here's a quick technical breakdown:
- AI: Windsurf Editor
- Frontend: Built with React and Next.js for a fast, responsive interface
- Styling: Tailwind CSS for clean, modern design
- Data: Google Books API for book data and recommendations
- Hosting: Deployed on Vercel for seamless updates
One of the more interesting challenges was handling the book data. The Google Books API is powerful but returns a lot of information, so I had to implement filtering to ensure only books with proper cover images and complete metadata are shown. I found the same book was being recommended multiple times, so I also modified the filtering to prevent this from happening.
The Development Process
Like my library project, I took an iterative approach to building Shelf Help:
- Start Simple: First, I built a basic search that could find books by title
- Add Recommendations: Then I added the ability to find similar books
- Enhance UX: Finally, I improved the interface with loading states, error handling, and better visual feedback
What I particularly enjoyed about this project was seeing how small, incremental improvements could turn a simple search into a useful recommendation engine. The ability to search by both title and author, combined with the category browsing, makes it versatile for different discovery needs.
What's Next
I'm already thinking about the next enhancements:
- Adding an agent to provide a recommendation on why you should read a book based on your search querySaving your favorite books and recommendations
- Creating reading lists
- Adding more detailed filtering options
Feel free to try out Shelf Help and let me know what you think! If you have any suggestions for improvements or features you'd like to see, I'd love to hear them.
Technical Details
- Framework: Next.js
- Styling: Tailwind CSS with custom components
- API: Google Books API
- Hosting: Vercel