Case study

Revolver USA

Independent music distributor · ~100K-product catalog · ongoing engagement, 20+ years

Revolver is one of the larger independent music distributors in the United States, with a catalog that leans heavily toward punk, metal, experimental electronic, and the kind of releases that major distributors don't touch. The relationship predates most of my public work — I've been their engineer for the better part of two decades, and the current platform is an evolution of a store architecture I originally built for my own record label before adapting it for their scale.

The problem

Revolver's catalog lives across two realities that don't naturally want to talk to each other. The canonical metadata — artist names, album titles, descriptions, stock levels, everything — lives in FileMaker, because that's how it has always lived and the operational team is not moving off it. The storefront, the search, the customer-facing everything lives in a Postgres-backed web platform. Between those two systems sits every asset in the catalog: images at multiple resolutions for different devices, MP3 previews, FLAC and MP3 product files, and thousands of small encoding and formatting decisions that have to be made consistently or the catalog breaks in ways customers notice.

Two things made this harder. First, audio previews: the platform needs a 90-second preview for each track, centered on the musical middle of the song rather than the literal middle, with silence avoidance, fade-in and fade-out, and volume normalization. Second, genre classification: a ~100K-product catalog with no genre taxonomy is effectively unsearchable in the ways customers actually want to search, and adding genres by hand across a catalog that size isn't a realistic ask.

What I built

The content ingestion pipeline handles the FileMaker-to-Postgres sync, the asset normalization across image sizes and audio formats, and the encoding and metadata validation at every step. The preview generation logic finds the musical center of each track, adjusts around silences rather than sitting on top of them, applies appropriate fades, and normalizes volume — the kind of detail work that turns a generic preview pipeline into one customers don't notice, which is the goal.

The NLP classification system was built specifically for Revolver's catalog, not adapted from a generic model. I trained custom models on a large open-source corpus — primarily Discogs, which has the genre/subgenre structure but a catalog distribution very different from Revolver's — and then reweighted heavily to match Revolver's actual mix of punk, metal, electronic, and experimental material. The result collapsed a process that would have taken twelve months of manual work into something running in around six hours, at roughly 90% accuracy.

What changed

The catalog is now searchable by genre across every product. The content pipeline runs without daily intervention. The preview generation is consistent enough that the operational team stopped flagging it as a source of complaints. The FileMaker side of the house stays exactly as it is, which is the point.

Stack

PHP, Laravel, Vue, Python (for the ingestion, audio processing, and NLP), Postgres, Redis, Elasticsearch, Kubernetes, NGINX.

Related

Related services

Have something similar in front of you?

Book an intro call. If we're not a fit, I'll tell you on the call.

Based in Cluj-Napoca, Romania. Available across EU and US time zones.