← Work

Case Study

Composer Catalog: Purpose-Built SaaS for Music Rights Management

How we architected a specialized SaaS platform for professional music composers — managing 15,000+ compositions with intelligent import and on-demand metadata embedding.

The Challenge

Music composers face a persistent operational challenge: managing extensive catalogs across multiple projects, clients, and distribution channels. Our client needed a specialized platform that could handle the unique workflows of professional composers — from tracking individual compositions and their various recordings to managing rights information and distributing files with proper metadata embedded. Off-the-shelf tools either lacked music-specific features or came bundled with unnecessary DAW integrations that composers didn't need.

Technical Approach

We architected Composer Catalog as a modern SaaS application using Next.js 14, leveraging its App Router for optimized data fetching and server components where appropriate. This choice provided the performance characteristics needed for handling large file lists while maintaining a responsive interface for catalog browsing.

Database Architecture

PostgreSQL served as the foundation, selected for its robust handling of relational data and JSONB support for flexible metadata storage. We implemented Prisma ORM rather than a heavier solution like Prisma, giving us more direct control over query optimization — critical when dealing with complex joins across compositions, recordings, and rights information. The schema design separated core composition data from recording instances, allowing composers to track multiple performances or arrangements of the same work without data duplication.

Authentication and Access Control

Clerk authentication provided enterprise-grade security without the maintenance burden of building our own auth system. We extended Clerk's role-based access control to implement a tiered permission system where composers could designate assistants, publishers, or clients with granular access to specific catalog segments. This was implemented through a junction table architecture that maps users to catalog access scopes.

Key Technical Features

Intelligent CSV Import

The import system became a significant engineering challenge. Composers often maintain partial records in spreadsheets, and naive importing would create duplicates. We built a multi-pass reconciliation engine that fuzzy-matches on composition titles, ISWC codes, and composer names, then presents potential duplicates in a review interface before final import. The matching algorithm uses weighted scoring across fields, tunable based on data quality patterns we observed in real composer catalogs.

Audio Metadata Embedding

A critical requirement was ensuring downloaded audio files contained complete metadata. Rather than storing pre-tagged files, we implemented on-demand tag writing using a server-side audio processing pipeline. When a composer downloads files, the system reads metadata from PostgreSQL, then writes ID3v2 tags (for MP3) or Vorbis comments (for FLAC/OGG) directly into the binary stream. This approach keeps storage requirements minimal while guaranteeing metadata accuracy at download time, even as catalog information is updated.

The implementation uses Node.js streams to handle large files efficiently, piping the original file through a tag-writing transform before delivery to the client. This architecture supports files up to several hundred megabytes without excessive memory consumption.

Dashboard Performance

The dashboard aggregates data across thousands of catalog entries, requiring careful query optimization. We implemented cursor-based pagination with prefetching and used React Server Components to render initial table data on the server, reducing client-side JavaScript overhead. For frequently accessed views, we added PostgreSQL materialized views that refresh on catalog updates, trading write latency for dramatically improved read performance.

Infrastructure

Render provided a straightforward deployment path with managed PostgreSQL and automatic SSL. We configured separate staging and production environments, with preview deployments for pull requests. Background jobs for file processing run as separate Render workers, isolating long-running tasks from the web application process.

Results

The platform now manages over 15,000 compositions across its user base, processing hundreds of file downloads daily with metadata perfectly intact. The CSV import system has processed legacy catalogs spanning decades, with the duplicate detection reducing manual cleanup work by an estimated 80%. Composers report that the specialized workflow matches their actual business processes in ways general-purpose tools never could.

Start a conversation

Building something similar?

We have deep experience building specialized SaaS platforms. If you have a product that needs the same level of domain-specific thinking, let's talk.

Get a proposal