Dec 1, 2024
I built a Goodreads Wrapped app!
Every December, I wait in anticipation for my Spotify Wrapped to uncover my listening patterns for the year and share the joy of these insights with others. But when I check my Goodreads Year in Books, I am greeted by an uninspiring interface that captures none of the joy of my reading journey. So I built my own Goodreads Wrapped.
I’ve torn down and restarted this project several times over the past three years, but this time I’ve cracked it! And I think I know why.
Think hard, act fast
Since joining BlueDot, I've read many product and strategy books, and one that really clicked for me was How Big Things Get Done by Bent Flyvbjerg and Dan Gardner. The book researched megaprojects and found that over 90% of them experienced cost overruns or schedule delays. One of the key reasons is that these projects don't think hard enough about what they are building before they start building, and when they do start building, they spend too much time in the building process. In short, they needed to think hard and act fast.
For example, the Empire State Building was completed in 13 months — a feat that would usually have taken a similar project at the time years to do. The project succeeded because they made incredibly detailed plans before they started building and, once they started, worked quickly to avoid “Murphy’s Law” — random events like weather conditions, inflation, etc. from derailing the project.
So, I cleared the slate again and sat down to plan out every single aspect of my web app before I touched any code: colours, fonts, API calls, response parsing, the folder structure and the user experience on each screen. It took me two whole days to get it all down. But once I had my plan, I bashed through the code at lightning speed (~1 week cumulatively).
Focus on simplicity
Having a good plan only works if you stick with it! A problem I’ve had in previous iterations of this project was getting distracted by shiny new features and then getting lost when I was hours in and realised the feature wasn’t necessary.
For example, I previously considered the sharing to Instagram feature as vital to the app, similar to how you could share your Spotify Wrapped. I spent hours designing (on code!) the shared page. But when I tried to deploy it, I realised the Instagram integration wasn’t possible. Users would have to save and upload manually which made sharing less exciting.
If I had started with a goal and fleshed out a plan before I started coding, I would have realised much sooner that this feature wasn’t serving my goals which were to:
- Create a sense of excitement and joy
- Reflect on my reading patterns this year
This realisation inspired a feature I’m especially proud of — the ability to share your entire Goodreads Wrapped with a single link. No need for multiple screenshots or trying to compress the whole experience onto a single image. Your friends can experience your Goodreads Wrapped exactly as you did.
With clear goals guiding my decisions, I avoided unnecessary distractions and focused on building something simple and impactful — not just in design, but also in how I wrote the code.
Learning to use AI tools well
Keeping the code aligned with those goals was just as important as the design. In the past, I’d auto-accept AI suggestions when I was frustrated or lazy, often leading to messy, over-complicated code. This time, I approached coding differently.
Using Cursor, an AI code editor, saved me countless hours. The tool could suggest inline edits to my code with my entire codebase in mind, which was a major step up from copying code snippets into ChatGPT.
But the real game-changer wasn’t just using AI tools — it was learning to use them well. Having clear goals gave me a framework to evaluate every suggestion. Before accepting anything, I asked myself, "Does this serve my goals?” That small habit made all the difference.
I’m really proud of the foundation I’ve built and can’t wait to continue improving this app so it gets closer to the magical Goodreads Wrapped experience I’ve always envisioned.
If you’re ready to reflect on your reading journey, I’d love for you to try out Goodreads Wrapped! And if you spot any pesky bugs, feel free to email me at lilianang999@gmail.com —I’m still squashing them, and live testers like you are a huge help :)