Deeve Technologies
Client workWeb Application

SonicFlow - Music Player

A self-hosted YouTube music player built in PHP and MySQL. A Spotify-like experience on your own server, no subscription, no ads.

ClientDeeve Technologies
RoleFull-stack developer
Year2026
TypeWeb Application
Updated23 Sep 2026
Screenshot 2
Overview

SonicFlow is a self-hosted music player built on PHP and MySQL, playing YouTube sources through a proper audio interface.

No subscription, no ads, running on your own server.

Built with
PHPMySQL
The problem

What was in the way

Streaming subscriptions stack up, and the music most people listen to is already on YouTube.

The gap is not the catalogue. It is the interface. YouTube is built for video discovery, and it works against you when you want to play an album while working: it autoplays into something unrelated, it stops when the screen locks, it interrupts with recommendations, and its idea of a queue is not a queue.

The features that would fix this are the ones behind the subscription, which is the point of them.

What I built

Four parts, each with a reason

A player interface over YouTube sources

Playlists, a real queue and continuous playback, which is the part YouTube handles badly for audio.

A queue you can see and reorder, that plays to the end and stops, rather than a recommendation engine that decides what comes next.

Self-hosted

Runs on your own server. No subscription, no advertising, and the playlists are yours rather than a licence that can be revoked or a service that can change its terms.

What it is not

It is a personal project, not a product.

It does not host or distribute music, it plays from an existing source. It has no user accounts, no sharing and no mobile application. Adding any of those would make it a different and much larger thing, and there is no reason to.

Listing honest scope matters more on a personal project than on client work, because the temptation to present a weekend tool as a platform is stronger.

Deliberately boring stack

PHP and MySQL so it runs on cheap shared hosting rather than needing a container platform, a build step or a queue worker.

That is a real constraint rather than laziness. A personal tool that requires infrastructure to keep running gets switched off within a year, usually when a hosting bill or a certificate renewal makes somebody reconsider. Something that runs on the hosting you already pay for keeps running.

How it was built

The engineering underneath

PHP and MySQLSelf-hosted and deployed on its own subdomain
Plain JavaScriptThe front end runs against the embedded player API, with no framework
Self-hostedThe library and the player stay on infrastructure I control

PHP with MySQL, deployed on its own subdomain. Front end in plain JavaScript against the embedded player API.

Why it exists

Partly because subscriptions add up. Mostly as a demonstration.

A familiar consumer experience can be rebuilt on a simple stack when the requirements are modest. The parts of a music player that look hard, the playback, the streaming, the codec handling, are not the parts you build. Those belong to the embedded player.

What you actually build is playlist management, queue state and an interface, which is a database, some CRUD and careful front-end work. Recognising that split, what to integrate and what to own, is most of the judgement in a project like this.

It is the same argument as the affiliate page integrating UpPromote and the referral page integrating Bixgrow. Own the experience, integrate the mechanics.

PHPMySQL
More work

Projects like this

All projects
Why it matters for your project

I build software, and I measure whether it works.

The same questions I research are the ones I ask on client builds: is it reliable, is it fast, is it easy to use, and is it secure. Those four drove satisfaction in my ICT portal study, and they shape how I scope and test every project.