← AI Engineering / Case study 03

DropOperator.

An AI-powered music release planner, "because every drop deserves an operator". Give it a song and it gives you a full release strategy with dates, pitches and a task board.

Role
Solo build, from architecture to deployment
Context
Ironhack AI Engineering, final project
Year
2026, still developing
Status
Live on Vercel + Render

Business pitch deck · use ← → or swipe

The problem

I managed releases for a rock band for years, and every single one meant the same scramble: when to pitch Spotify editorial, which radio stations to email, what to post and on which day. Independent artists rarely have a manager to plan this, so good songs come out with no plan at all.

What I built

  • Song in, strategy out. Upload an MP3/WAV or paste a YouTube URL. The app transcribes the lyrics, detects the genre and builds a release plan with dates.
  • A LangGraph ReAct agent with 6 tools decides what it needs: audio analysis, lyrics, Spotify data, and a Pinecone RAG knowledge base of music-marketing know-how (512 chunks).
  • Plans become work. Every step syncs into a calendar and a to-do board in Supabase. Each task has its own assistant for writing Spotify pitches, radio emails and captions.
  • Beyond single releases: concert and social-campaign project types, band profiles and per-project memory.

Architecture

  • Python 3.11
  • FastAPI
  • LangGraph / LangChain
  • xAI Grok + GPT-4o
  • OpenAI embeddings
  • Pinecone
  • Supabase Postgres
  • Essentia (400-class genre model)
  • AssemblyAI
  • yt-dlp · Spotipy
  • Next.js 14 · TypeScript · Tailwind
  • Vercel · Render

Genre detection uses Essentia's Discogs-EffNet model locally. On the free Render tier I swapped it for a lighter librosa pipeline so the live app stays fast. That's a real production trade-off, not just a demo.

Evaluation

I wrote an automated evaluation suite that scores the agent's plans. The latest run passed 4 of 5 test cases with an average score of 0.79, and the failing case shows me what to fix next.

Demo

See it work

Next projectReviewReply →