Building BookBuddy: Personalized Book Discovery for Every Reader
BookBuddy is a full-stack web application designed to help readers discover book recommendations tailored to their interests and moods. Whether you're an avid bookworm or a casual reader looking for your next great read, BookBuddy makes finding the perfect book simple, personal, and enjoyable.
This project was built as part of my journey at ALX. I developed BookBuddy solo, serving as the Full Stack Developer, handling both frontend and backend responsibilities. The project took two weeks to complete and includes continuous improvements.
BookBuddy was designed for English-speaking users aged 18–45 who want to skip the endless scroll and discover books that align with their reading habits. My personal focus was to improve the user experience by integrating an intuitive interface, dynamic search, and personalized data retrieval from the Google Books API.
🧑💻 Author: Rabie Haddar
2. Why BookBuddy? My Personal Story
As a child growing up in a quiet Moroccan town, books were my window to the world. I remember sneaking into the library after school to read about adventures, history, science — anything I could get my hands on. But without guidance or recommendation tools, I often felt overwhelmed by the choices. I'd pick up books at random, and many times, they wouldn’t resonate.
Fast forward to today, I’m an aspiring Software Engineer and a lifelong learner. I still love reading, and now I have the skills to build the tool I wish I had as a kid — a smarter way to discover books that match your taste and mood. BookBuddy is not just a project; it’s the fusion of my love for books and my passion for technology.
3. What We Built
BookBuddy is a personalized book recommendation app that:
Fetches book data from the Google Books API
Allows users to add books to a MongoDB database
Displays personalized suggestions through an intuitive UI
🛠 Technologies Used
Frontend: Vite + React + Tailwind CSS
Chosen for speed, component-based design, and modern styling.Backend: Node.js + Express + MongoDB
Chose Express for a lightweight API layer and MongoDB Atlas for flexible NoSQL data storage.Third-Party APIs: Google Books API
Enables us to fetch a wide variety of books with reliable metadata.
✅ Features Completed
Book Recommendation UI: Shows personalized books by fetching data from Google Books and MongoDB.
Add a Book Form: Users can manually add their favorite books via a form.
Responsive Design: The app is mobile-friendly and adapts to all screen sizes.
4. My Hardest Technical Challenge
While integrating Tailwind CSS and PostCSS with Vite for the frontend, I encountered a serious blocker that nearly derailed my entire build.
Situation: Tailwind stopped working midway through setup. The error said the PostCSS plugin had moved to another package, and none of the standard fixes worked.
Task: I had to make Tailwind functional again to style my entire interface. The clock was ticking, and this issue halted all frontend progress.
Action: I read Tailwind v4+ release notes, realized the PostCSS integration had changed, and adjusted my setup manually. I created a custom postcss.config.cjs file instead of using the default one. Then I downgraded Tailwind to v3.4.3, reinitialized the project with a fresh Vite + React setup, and manually configured Tailwind and autoprefixer.
Result: After hours of frustration and debugging, I got Tailwind working again and built a sleek, fully functional interface. This taught me the value of understanding build tools — not just using them.
5. What I Learned
Technical Growth: I deepened my understanding of Vite, build tooling, Tailwind, and full-stack deployment.
Problem Solving: Fixing the Tailwind/PostCSS error gave me confidence to face real-world debugging.
Self-Discovery: I thrive in challenges. Solving problems end-to-end and building something meaningful gave me the motivation to keep improving as a developer.
Teamwork Potential: Even though I built this solo, I see clearly how valuable team support and shared knowledge would be in future projects.
👨💻 About Me
I'm Rabie Haddar, a full-stack developer and lifelong learner based in Morocco. I’m passionate about solving problems using code and building digital tools that empower others. I'm currently pursuing opportunities where I can grow in collaborative, respectful, and innovative environments.
Thanks for reading, and happy coding! 💙