January 23, 2023 · 3 min read

Building an AI project in a Single Day

Artificial intelligence has rapidly advanced in recent years, with OpenAI leading innovation and development. With new AI projects popping up on social media platforms like Twitter every day, I couldn't help but feel inspired to take on a challenge of my own.

This week, I set out to build a new side project as quickly as possible, and I'm excited to share my journey and results with you in this blog post.

The Idea

I've always had problems discovering new (and old) music to listen to in my free time. I have a unique taste or mood that I look for when listening to music. For the past year, I started reading books. Mostly fiction. While reading some of these books made me think of how awesome it would be if they were a movie. And with that movie, a soundtrack.

Because of this, I got an idea. What if I could draw a playlist based on the story and mood of my favorite books?

From Idea to Product

It's set in stone that I'll be building the project using OpenAI's GPT model—creating a new account grants you $18 of free credit. Experimenting with it became no problem at all.

For the UI, I'll be using Next.js coupled with Tailwind CSS. The missing piece is a library of components to help me develop this as fast as possible. Luckily, a few days ago, I came across Precedent, which provided me with the building blocks I needed for this project.

All I need to do is to use Spotify as my provider for NextAuth API, create a couple of custom components, and layout the design. Pretty easy, right?

The Outcome

Building the application took me a single day. The website comes with a simple input field where a user can input their favorite books and it produces an output of five tracks.


The Landing Page of Fandom

In terms of suggesting songs, it's perfect. It provides you with the songs and explains why that song is relevant to the story of your favorite book, movie, or tv show.

What's next

As of now, I have open-sourced the project at GitHub. I've been meaning to add some features that enhance users' experience. However, I've been busy with a new project of mine. Something more large-scale. But if you want to contribute, I'll gladly receive your help.

If you have questions, email me. Thank you for taking the time to read. I hope you found it interesting. I appreciate your support!