XJ music Player

XJ music Player

Mobile Listening App

A mobile companion app for XJ music that puts adaptive, algorithmic music into listeners’ pockets — streaming XJ music channels from a dedicated backend.

What we did

Built and shipped the full product: defined the minimum lovable experience, designed the client application, built the backend API surface, implemented authentication and audio hosting, and operationalized releases via CI/CD pipelines. Full-stack delivery from concept through app store distribution.

Proof

  • Status: Archived — the app served its purpose as a distribution experiment and has been retired
  • Scope: Native mobile client, backend API, authentication, audio hosting, CI/CD pipeline
Focus: Designed to be enjoyed in the background of activities.
Variety: Find the stream that suits your mood, never repeating.
Premium Features: Play in the background. Ad-free.
Live 24/7: Always on. Continuous music with a reliable vibe.

The Experience

Imagine opening an app and tuning into a music channel — like radio, except nothing you hear has ever been played before and nothing you hear will ever be played again. That was XJ music Player.

Behind every channel, real artists were collaborating in real time — composing programs, crafting instruments, shaping sequences. Their work flowed into a live system that continuously assembled those musical building blocks into an endless, never-repeating stream. A composer could push a change, and within moments, listeners on the other side of the world would hear the music evolve. Not a new track dropping. The music itself shifting — new textures, new arrangements, new emotional arcs — while remaining coherent, musical, and unmistakably authored.

Each channel had its own identity: its own artists, its own mood, its own rules for how the music could unfold. Listeners could browse the catalog, pick a channel, and listen for minutes, hours, or days. The stream never looped, never ran out, and never stopped feeling intentional. It was the closest thing to having a composer score your life in real time.

Under the Hood

We built the mobile app with React Native, cross-platform for iOS and Android, consuming a published content catalog to discover live channels and tune into standard HLS streams with native adaptive-bitrate playback. The entire pipeline — from artist collaboration to the moment sound hit a listener’s earbuds — was live, continuous, and automated. The magic ran on a fabrication engine called the Nexus — containerized and deployed as independent Kubernetes pods on AWS, one per channel, each algorithmically assembling audio and encoding HLS segments in real time. Terraform provisioned the EKS cluster, Helm charts declared the services, and Lambda functions handled event-driven tasks like audio asset compression.

What We Learned

The streaming experience was genuinely novel — people loved it. Where we spent too much time was building and maintaining an enterprise-grade API when the team was small enough that a turnkey solution would have freed us to focus on what actually mattered: the music, the listener experience, and finding the business model. The lesson was clear: a tiny team’s most dangerous resource leak isn’t bad code; it’s any code that solves the wrong problem.

Ultimately, the mobile app’s success killed it. We saw user adoption, but costs exploded faster than we could bring in premium-feature subscribers. The cost of content distribution alone is significant for HLS audio streaming at scale. It turns out that successful apps in this space rely on the local device to do the compute work, sparing network bandwidth. This learning led XJ ultimately to do exactly that when we built the desktop XJ music workstation.

Other XJ music Projects

XJ music Logo

About XJ music

Other Interactive Projects

< All Projects