What the client needed
MicDrop is a consumer music app for the US market, playback, karaoke recording, playlists, and social sharing on iOS and Android. The product team needed a backend that could keep up with new features without breaking mobile releases every other week.
Search was the hard part. Keyword-only lookup does not work well for how people actually look for music and moments in an app like this. The client wanted smarter discovery without bolting on a demo AI layer that would fail in production.
Mobile apps were built by a separate iOS/Android team. That meant stable REST contracts, clear versioning, pagination, and APIs that stayed predictable while the catalog and social features grew.
How SparkScribe approached it
Before build, SparkScribe worked with Micdrop to translate their Consumer App goals into an actionable plan — not an off-the-shelf template.
Discovery & planning
- Gave content teams admin autonomy to publish tracks, playlists, and featured collections without deploys.
- Versioned REST contracts and pagination patterns so the Flutter client stayed stable as the catalog grew.
- Modeled rights-sensitive metadata fields needed for licensed soundtrack management.
Our engagement covered API development, Admin portal, Media metadata modeling, scoped in phases with staging parity and admin self-service so Micdrop could run day-to-day operations without waiting on engineering.
How we solved it
SparkScribe joined as the backend engineering partner in 2023. I own the Django REST layer that powers the mobile apps: tracks, playlists, karaoke flows, user libraries, follows, sharing, and the supporting auth and media metadata paths.
For discovery we added LLM-assisted indexing and Qdrant vector search so users can find content beyond exact title matches. The pipeline was built for production: indexed metadata, sensible fallbacks, and APIs the mobile team could integrate without guessing response shapes.
We version REST endpoints and keep pagination consistent as the catalog grows. Async jobs handle heavier work off the request path. I stay in direct contact with the US client (Slack, sprint rhythm) and review changes before they hit production.
How we helped the client
MicDrop has remained a live US product with an active backend engagement since 2023, not a one-off MVP handoff.
- Stable mobile APIs: Versioned Django REST contracts support iOS and Android releases without constant breaking changes.
- Smarter discovery: LLM indexing plus Qdrant vector search improved music discovery beyond basic keyword lookup.
- Production focus: Karaoke, playlists, and social features run on backends built for real usage, not demo traffic.
- Long-term US partnership: Direct client relationship with ongoing backend ownership and US timezone overlap.
Technologies we used
Technologies we used
- Django
- REST
- PostgreSQL
- Qdrant
- Generative AI
How we applied the stack
Django REST serves catalog, user libraries, favorites, and playback metadata to the Flutter mobile app. A web admin portal lets editorial teams manage releases and featured collections. API versioning keeps mobile clients predictable as content volume increases.
- Mapped iOS/Android API contracts early so mobile releases did not wait on undocumented backend changes.
- Designed LLM + vector search as a production pipeline (Qdrant indexing, API fallbacks), not a one-off script.
- Kept karaoke, playlist, and social endpoints consistent under load with versioning, pagination, and async jobs where needed.
Django REST Framework powers catalog, playback metadata, karaoke recording flows, playlists, follows, and sharing for iOS and Android clients built by a separate mobile team. PostgreSQL holds core app data; Redis supports caching and session-heavy paths. Qdrant stores vector embeddings for discovery; LLM tooling helps index and enrich searchable metadata. APIs are versioned with predictable pagination as the catalog grows.