Clayton BorgesDESENVOLVEDOR
← ← All Projects
Client: DSRPTV Records

DSRPTV Records – Music Platform

2023
Creative Commerce Platform

Music e-commerce and streaming platform. Stripe + Mercado Pago dual checkout, Spotify API, AWS S3 asset storage, Three.js visuals. Built with Raphael Palmer (DISCLAYMER).

Media
Overview

DSRPTV Records is a music e-commerce and streaming platform for an independent Brazilian record label. It lets fans buy and stream music through a single experience — handling both Brazilian and international payment flows, audio asset delivery, and a distinctive Three.js visual identity that reflects the label's aesthetic.

Problem

The label needed to monetise their catalogue directly — without splitting revenue with distributors — while reaching both Brazilian and international audiences. No existing off-the-shelf platform supported dual-currency checkout with Spotify integration and a custom visual identity.

Goal

Build a complete music commerce platform with streaming, digital purchases, dual-payment checkout, and a visual identity strong enough to function as a standalone brand experience.

My Role
  • ◈Co-developer with Raphael Palmer (DISCLAYMER studio)
  • ◈Frontend, Three.js visuals, payment integration
Stack
ReactTypeScriptViteThree.jsFirebaseAWS S3StripeMercado Pago
Technical Decisions
  1. 01Stripe for international payments, Mercado Pago for Brazil — both with webhook-verified purchase fulfillment. A shared purchase event model normalises both providers into a single fulfilment flow, so downstream audio delivery doesn't care which gateway fired.
  2. 02Spotify API for catalogue sync and embedded playback — keeping the in-platform listening experience consistent with what fans already know, rather than building a custom audio player from scratch.
  3. 03AWS S3 with signed URL delivery for purchased audio files — time-limited URLs mean purchased files cannot be shared or hotlinked after the window expires.
  4. 04Three.js for visual identity — the label's aesthetic is central to the product, not an afterthought. WebGL allowed motion and depth that static CSS could not achieve.
What I Learned
  • →Dual payment providers means dual webhook handlers. The critical insight is to normalise both into a provider-agnostic purchase event as early as possible — downstream fulfillment (audio delivery, DB write) should never contain if-Stripe / if-MercadoPago branches.
  • →Spotify embed tokens expire silently. Without a proactive refresh mechanism, playback breaks mid-session. Silent background token refresh triggered before expiry is table stakes for Spotify-integrated apps.
Status

Live