Skip to main content
Skip to content
All projects

Subscription Platform · 2025 · Live

Music Streaming Platform

role

Full stack engineer

ReactNode.jsExpressMongoDBStripeJWTDigitalOceanRedux
Music Streaming Platform interface

A subscription music platform serving listeners, artists and an admin team from a single MERN stack. Listeners stream a curated catalog and build playlists; the team manages releases, artist profiles and plan entitlements from a purpose-built internal dashboard - all without touching the codebase.

the problem

Streaming products fail on two predictable things: audio that resets when the user navigates, and a subscription state that quietly drifts out of sync with what the user can actually access.

what I built

Audio player state lifted above the router so navigation never interrupts playback. A single entitlement record computed from every Stripe billing event - upgrades, renewals, failures and cancellations all resolve into one authoritative source.

architecture

  • React SPA with persistent audio player mounted outside the route tree - queue and state survive navigation
  • Node.js / Express REST API with JWT auth and RBAC across listener, artist and admin roles
  • MongoDB schemas modelled around playlists, releases and computed subscription entitlements
  • Stripe subscription webhooks processed into one authoritative entitlement record per user
  • Signed, short-lived media URLs preventing hotlinking and unauthorized stream access
  • Admin dashboard: artist CRUD, release scheduling, media uploads, plan management, user controls
  • DigitalOcean deployment with Nginx reverse proxy, PM2, SSL and Cloudflare caching layer

Engineering highlights

01

Playback that never resets

The audio player mounts once, above the router. Navigating the catalog, switching playlists or opening account settings never re-buffers a track or loses queue state.

02

One entitlement record, always correct

Every Stripe event - upgrade, renewal, failure, cancellation - resolves into a single computed access record. No scattered boolean flags, no billing-state drift.

03

Team-owned catalog tooling

The internal dashboard covers artist uploads, artwork, release scheduling and RBAC-gated admin controls. The team ships music without a developer in the loop.

next project

Multi-Vendor Marketplace