Contract Engagement
WeGetMusic
Full-stack engineering for a music licensing and sync platform
A platform built by musicians turned music supervisors, helping bands and creators license their music for films, TV shows and commercials - so the platform and the artists both get paid when a track is used.
- Yii2
- Angular 2+
- Bootstrap
- MySQL
- Elasticsearch
- FFmpeg
The problem
Music supervisors needed a fast way to search and license tracks for film, TV and commercials, and there was no software built specifically to help them find music - only tools built to make it.
Business challenge
Build the catalog, licensing and reporting system end to end, including the web services powering the Android and iOS apps.
Research
Chose Elasticsearch over a plain SQL search so supervisors could search a large, growing catalog by mood, genre and usage metadata without slow queries.
Planning
Built as a Yii2 backend with an Angular 2+ front end, catalog search running on Elasticsearch and audio processing - previews, format conversion - handled through FFmpeg.
Architecture
- Yii2 backend exposing catalog, licensing and reporting APIs
- Elasticsearch-backed catalog search across tracks, artists and metadata
- FFmpeg pipeline for audio preview generation and format handling
- Shared web services layer powering the Android and iOS apps
Database design
MySQL for catalog, licensing and account data, with Elasticsearch kept in sync with the catalog as a dedicated search index for fast, faceted search.
API flow
- 1 Supervisor searches the catalog through the Elasticsearch-backed API
- 2 Licensing request is recorded against the track and rights holder
- 3 FFmpeg pipeline serves previews and processes audio assets
- 4 Reporting APIs surface usage and licensing data at multiple levels
Implementation
- Built the application end to end on Yii2 and Angular 2+, from data model to UI
- Wrote the web services layer that also powers the Android and iOS apps
- Delivered reporting at multiple levels - catalog, artist and licensing activity
Key features
- Elasticsearch-backed catalog search
- Track licensing and rights-holder tracking
- Audio preview and processing through FFmpeg
- Web services for the Android and iOS apps
- Multi-level usage reporting
Performance
- Elasticsearch kept catalog search fast as the track and artist count grew
- A shared web services layer let web, Android and iOS run on one backend
Lessons learned
- A search-first product needs a search engine, not a bigger SQL index - Elasticsearch paid for itself immediately.
- Building the mobile web services layer alongside the web app avoided a second backend later.