Inspiration

I listen to music a lot, and sometimes I imagine a song with a specific kind of background music, atmosphere, or electronic vibe that I cannot find anywhere. That made me think: why not let AI create the music I have in my imagination?

At the same time, I realized that music already exists in many forms, but people may want to experience it differently or create something inspired by a particular sound, mood, or style. This became the starting point for Musora.

As I explored how AI could make this possible, I became interested in understanding how music-generation models actually work and how far they can go. I also discovered that there are already AI systems in the market that can generate full music tracks, sometimes even with lyrics and more advanced production capabilities. However, based on my current understanding and skills, I focused on what I could realistically build and learn from.

Building Musora was therefore not about competing with those advanced systems, but about exploring generative AI for music at my level—understanding models like MusicGen, experimenting with their capabilities, and learning what is possible when AI and music are combined.

What it does

Musora is an AI-powered music platform that combines the experience of a music streaming application with AI-powered music creation and audio transformation.

Users can create their own profile, discover and listen to music, follow artists and other users, and interact with the music they enjoy. They can like songs, save them to playlists, and leave comments to share how they feel about a particular track. Musora also includes notifications to keep users updated about activity on the platform.

Beyond the social and streaming experience, Musora allows users to generate music using AI from their own ideas and prompts. It also provides AI-powered audio separation to help users create karaoke versions by separating vocals from instrumental music.

The idea is to bring listening, creating, sharing, and transforming music together in one platform.

How we built it

I built Musora as a full-stack web application using a MERN-style architecture, with one major difference: instead of MongoDB, I used Microsoft SQL Server as the database (with Azure SQL used for production deployment).

For the frontend, I used React with Tailwind CSS for the UI. I also used TanStack Router for client-side routing, TanStack Query for handling server-state and API data, GSAP for animations, and Lucide Icons for the interface icons. I also used AI tools like Gemini to help design the UI, choose color themes, and refine animations and visual styling.

For the backend, I used Node.js and Express.js to build REST APIs and handle authentication, users, music, playlists, likes, comments, follows, notifications, and other application functionality. I implemented authentication using JWT (JSON Web Tokens). I also used several backend libraries including Multer for image uploads, Cloudinary SDK for media storage, and SQL-related libraries for interacting with the database. I also used utilities like generate-uri-component to convert buffer data into string format when needed.

For the AI functionality, I integrated MusicGen to generate music from text prompts. I also used Demucs for audio source separation to create karaoke versions by separating vocals from instrumental audio.

I used Cloudinary for storing and serving uploaded media, while the different parts of the application communicate through APIs to create a complete music platform.

A major part of this project was also built with the help of AI tools like Trae AI, GitHub Copilot, ChatGPT, and Gemini. I used them to speed up development, generate backend and frontend logic, debug issues, and explore features that were difficult to find tutorials for. Since this type of full-stack + AI music platform is not commonly available in tutorials, these AI agents helped me understand and implement complex parts of the system more efficiently.

Overall, I built Musora by combining a modern React frontend, a Node.js/Express backend, SQL Server with Azure production database, cloud storage, AI music models, and multiple AI-assisted development tools into a single integrated application.

Challenges we ran into

One of the challenges I faced while building Musora was working with SQL Server data. Unlike the JSON structure I was more familiar with, some of the data returned from SQL Server required additional formatting and transformation before it could be used effectively in the frontend. Understanding the structure of the returned data and handling it correctly took some time.

However, the biggest challenges came from integrating the AI features.

When I first started exploring MusicGen, I tried to manually set up the entire AI environment by installing the required Python libraries and dependencies myself. At that point, I only had basic knowledge of Python and had very little experience with PyTorch and other AI/ML libraries. Understanding the model, its dependencies, and how everything worked together became a major challenge.

After exploring different approaches, I discovered Gradio, which provided a much easier way to run the AI model as a service and communicate with it from my application. This allowed me to integrate MusicGen into Musora without having to manage the entire AI environment directly inside my Node.js application.

I faced a similar challenge when integrating Demucs for the karaoke feature. Initially, I was able to run Demucs manually through the command line inside a Python virtual environment, but connecting that environment directly with my Node.js backend was difficult. The virtual environment and the AI process were not being triggered correctly when requests came from the Node.js application.

After spending a significant amount of time investigating the problem, I decided to use Gradio as a separate AI service for Demucs as well. This approach allowed my Node.js backend to communicate with the AI service through an API, making the integration much more manageable.

These challenges took a significant amount of time, but they also became one of the most valuable parts of the project. I learned that integrating AI into a real application is not only about using a model—it is also about understanding environments, dependencies, APIs, services, and how different technologies communicate with each other.

What we learned

Building Musora taught me much more than just how to build a music application. It helped me improve my understanding of both frontend and backend development and, most importantly, taught me how to turn an idea into actual application logic.

While developing different features, I learned how to think about the complete flow of a feature from the user's perspective to the backend and database. For example, when a user wants to add a song to their library or playlist, I had to understand what should happen in the frontend, how the request should reach the backend, how the data should be stored, and what the user should see after the action is completed. Building these features helped me become much more confident in creating application logic.

I also learned how to build responsive and animated user interfaces, focusing not only on making the features work but also on making the application feel smooth and user-friendly.

One of my biggest learning experiences was AI integration. Before Musora, most of my experience with AI was with conversational AI and chat-based models. Working with MusicGen introduced me to a completely different type of AI model—generative AI for music. I learned how these models can be integrated into a real application and the challenges involved in running and communicating with AI services.

I also learned about production-level development and deployment, including working with Azure SQL, cloud services, environment configuration, and deploying different parts of a full-stack application.

Most importantly, Musora taught me how to learn technologies while actually building something with them. There were many things I did not know when I started, but solving those problems one by one helped me grow significantly as a developer.

What's next for Musora

The future of Musora is closely connected to my own growth as a developer. As I move further from web development into AI development, I want to take Musora closer to the original vision I had when I started the project.

Currently, Musora uses generative AI to create music from prompts. In the future, I want to make it much more intelligent—more like an AI music agent that can understand a user's complete musical idea and create a song around it.

My goal is for Musora to eventually generate not only background music, but also lyrics, suitable instruments, melodies, and arrangements that a singer could actually perform. I want users to be able to describe the kind of song they imagine, and have Musora turn that idea into a complete musical experience.

When I started building this project, I wanted AI to create music that felt closer to something made by a human. As I explored the technology, I realized that achieving that level of quality is much more difficult than I initially understood, especially with my current knowledge and resources.

So I see Musora as an ongoing journey. As my skills in AI and machine learning grow, I want the capabilities of Musora to grow with them—and eventually bring that original vision much closer to reality.

The production link provided with this project is a fully functional demo of Musora. Users can create an account and use the core features of the platform, including listening to music, uploading music, creating playlists, liking and commenting on tracks, following users, and customizing their profiles with information and profile pictures.

The AI music generation and karaoke features are currently not enabled on the deployed version due to the resource limitations of the current Railway hosting plan. Running the AI services requires significantly more computational resources than the current production environment provides.

The AI features were successfully developed and tested during the project, but for this hackathon submission, the deployed website is primarily being provided as a working prototype/demo of the complete platform.

For full transparency and evaluation purposes, I have also included the GitHub repository containing the complete source code as well as a demo video showcasing the AI features and overall functionality of the platform.

As Musora moves toward a production-ready application with appropriate infrastructure and resources, I plan to make these AI features available directly to users as well.

Built With

Share this project:

Updates

Submission history