January 20, 2025

Spite Driven Programming

angry programmer

I was (am) a big fan of a music discovery application called crabhands . It was an excellent mobile and web app built by a generous developer that used the Spotify API to notify users of new music releases. It was a great way for me to find new artists and songs that I wouldn't have come across otherwise.

As with many good things, it became a paid service. I was annoyed but understood the developer's decision. It had to be costly! I decided, out of spite more than anything, to build my own version of the basic services using the Spotify API. I wanted to see if I could replicate the functionality of updating a playlist daily and learn more about the Spotify API in the process. The documentation is great, so why not give it a go.

I set about creating a full-stack app using React.js, Typescript, and Vite for my the frontend, and choosing Express.js, and MongoDB on the backend. I focused mostly on the backend, using a well-structured code architecture to guide me. My end goal was to let me sign in with my Spotify account, and then have the app automatically update a playlist with new releases from my saved artists using a CRON job.

🏆 End goal achieved!

Right now, I have a working application deployed to Railway which hosts my server and the static frontend files, and updates a playlist if any of my saved artists release new tracks that day. I have a lot of ideas for this project, including adding notifications of new releases, but I'm happy with what I have so far.

So even though I could get a superior service for a small fee, I have my own version that I can tinker with and improve. That's pretty cool. I'm also happy that I have a new project to add to my portfolio. "Why did you build this?" "Because I was annoyed at a paid service and wanted to see if I could do it myself."

Github Link