Hey Dev.to! ๐ I'm Apoorv Karanwal, a 14-year-old student developer from India. Over the past year, I've been building Melody Master โ an AI-powered music learning platform that helps people learn piano, guitar, and music theory with neural AI guidance.
Today I want to share how I built it, the tech stack I used, the challenges I faced, and what I learned along the way.
๐ต What is Melody Master?
Melody Master is a full-stack, AI-powered web application for learning music. It's not just another tutorial app โ it features:
๐ง AI Neural Guidance โ Personalized learning paths that adapt to each user
๐น Interactive Piano & Guitar Lessons โ With real-time audio feedback using the Web Audio API
๐ฎ Gamified Learning โ XP points, levels, streaks, achievements, and a competitive Music Arena
๐ Verifiable Certificates โ Earn certificates with unique verification codes
๐ Immersive 3D Interface โ A Spline 3D robot on the landing page with GSAP animations
๐ 120+ Progressive Levels โ From beginner to advanced
๐ Analytics Dashboard โ Track your progress and performance over time
๐ Check it out live: https://melodymasterapp.vercel.app
๐ ๏ธ The Tech Stack
Here's what I used to build Melody Master:
Layer Technology
Frontend React 18, TypeScript, Vite
Styling Tailwind CSS, shadcn/ui
Animations GSAP (ScrollTrigger, timelines), Framer Motion
3D Spline 3D (for the landing page robot)
Backend Supabase (Auth, PostgreSQL, Row-Level Security)
Audio Web Audio API for real-time instrument analysis
Charts Recharts for analytics/progress visualization
Hosting Vercel
Why This Stack?
I chose React + TypeScript because type safety saved me from so many bugs during development. Vite because it's insanely fast โ hot reload in under 100ms. Supabase because it gave me auth, database, and row-level security without needing to build a custom backend.
For the 3D experience, I used Spline because I wanted the landing page to feel premium โ not like a typical "student project." The 3D robot that greets users on the homepage was designed to make a statement: this is not just another app.
๐๏ธ Architecture Overview
Melody Master
โโโ Landing (3D Spline + GSAP animations)
โโโ Auth (Email/Password + Guest Mode via Supabase)
โโโ Dashboard (personalized learning hub)
โโโ Practice (interactive instrument sessions)
โโโ Learn (theory courses with gamification)
โโโ Arena (competitive music challenges)
โโโ Live (real-time jam sessions)
โโโ MelodyRings (rhythm game)
โโโ Progress (analytics + performance tracking)
โโโ Certificates (verifiable achievement certs)
โโโ Leaderboard (global rankings)
โโโ Profile (settings + stats)
Every route is lazy-loaded with React.lazy() and wrapped in Suspense for optimal performance. Protected routes use a custom ProtectedRoute wrapper that checks Supabase auth state.
๐ก Biggest Challenges I Faced
- WebGL Context Crashes The Spline 3D robot was causing WebGL context crashes on mobile devices. The GPU was running out of memory, and the entire landing page would go blank.
Solution: I implemented explicit WebGL context management with fallback to a Lottie animation when WebGL fails. I also added a deviceMemory check to skip 3D entirely on low-end devices.
- Performance Optimization My initial Lighthouse score was 37 on mobile. Painful. ๐
After weeks of optimization, I brought it up to 90+ by:
Code-splitting every route with React.lazy()
Preloading critical assets with
Non-blocking font loading with media="print" + onload
Compressing all images to WebP
Removing unused dependencies
Real-Time Audio Analysis
Getting the Web Audio API to accurately detect which note a user is playing (especially on guitar) was the hardest technical challenge. Different microphones, background noise, overtones โ it's a genuinely difficult signal processing problem.Gamification That Doesn't Feel Cheap
I wanted the XP/leveling system to feel meaningful, not just "+10 XP" spam. Each of the 120+ levels has carefully designed progressive difficulty, and certificates are verifiable with unique codes.
๐ธ What It Looks Like
The UI design follows a dark mode + glassmorphism aesthetic with amber/gold accents. Every interaction has micro-animations via GSAP. The landing page features a full 3D experience.
๐ See it yourself: https://melodymasterapp.vercel.app
๐ฏ What I Learned
Ship it, then iterate. I spent too long trying to make everything perfect before launching. Just ship.
Performance is a feature. Users don't care how cool your 3D robot is if the page takes 8 seconds to load.
TypeScript saves lives. I can't imagine building this in plain JavaScript. The type safety caught hundreds of bugs before they reached production.
SEO matters. Even the best app is useless if no one can find it. I learned JSON-LD structured data, Open Graph tags, sitemap optimization, and Google Search Console the hard way.
Age is just a number. If you have a vision and the will to learn, you can build anything.
๐ Thank You
If you made it this far, thank you for reading! I'm Apoorv Karanwal, the creator of Melody Master. I built this entire platform from scratch as a solo developer.
If you're interested in the project, you can:
๐ Try it: https://melodymasterapp.vercel.app/
๐ป GitHub: https://github.com/updeshkaranwal151-hash/
๐ฌ Questions? Drop a comment below โ I'd love to chat!
If you found this interesting, a โค๏ธ or ๐ฆ would mean the world to me. Thanks for reading, and keep building! ๐
โ Apoorv Karanwal, Creator of Melody Master
Top comments (0)