Spotify Clone
Fun, yet the longest project I’ve built. I tried to replicate as many features as possible from the original one, and I’m still going. This isn’t creating real-world work from scratch, but it was the most enlightening project in terms of knowledge.

Why I build it
I started this project to challenge myself and reach my limitations. But guess what? It opened the door to more learning opportunities as well. But really it pushed my knowledge and I used all of it inside it. So you can tell me just exploring the code base.
Main Features
One of the main features is the library system, it tracks your favorite playlist and artists with sort, search, and select features. Next on is the search page, you can search all in one or individually, I added infinite scroll pagination here. Queue and player systems, are both connected and act as the main role of the application. Remains are general pages such as main, artist, and playlist pages for information.
Tricky Parts
Oh man, every part was tricky respectfully. I guess for the client side, the player + queue system is the hardest most part filled my brain with smoke if it was so rewarding in the end. You can say it's connected to every part of the app, and you can imagine what happened when I introduced a bug there.
For the server side, while trying testing for the first time. It was so hard when starting, bc I was covering every possible return of the API route with production/integration testing. But it was too late when I learned what the mock testing was.
What I learned
It was an amazing teacher to me, for in knowledge and experience. One of the most important things I learned with it was TypeScript, I built the app from zero while learning TypeScript. For the server side, I learned unit and production testing with Jest, Supertest, and node-mocks-http. Lastly, it taught me about thinking in system design learning, optimizing things, and choosing what is correct and what is wrong based on used needs. And the others: Caching system, Optimistic UI.
Whats Next
There are many features I want to add but 2 main goals are right now history feature and recommendation system. History tracks the playlists and the artists the user recently played and shows them on the home screen. While searching history plays also will be shown as recommendations. Next the recommendation system, server automatically generates recommended songs for users based on user interests. I have experimented with Facebook AI Similarity Search and am planning to use it as a micro-service for recommendations.
In short, the project I gave my peace of soul :)