DEV Community

Cover image for How I Built a Free Creator Audio Platform with PHP, MariaDB, JavaScript and Node.js
Wilder Ruiz
Wilder Ruiz

Posted on

How I Built a Free Creator Audio Platform with PHP, MariaDB, JavaScript and Node.js

Most music websites are either streaming platforms, simple landing pages, or stock-audio marketplaces.

I wanted something different.

I wanted a platform where music, sound effects, fictional artists, albums, metadata, downloads, previews, licensing, and creator tools could all exist inside a single ecosystem.

That project became WildVerse.

https://wildverse.codbiohub.com

The Original Idea

The original concept was surprisingly simple:

Create a place where creators could browse and download audio for:

  • YouTube videos
  • Shorts
  • Podcasts
  • Games
  • Livestreams
  • Mobile apps
  • Social media content

But I didn't want a folder full of MP3 files.

I wanted something closer to a miniature Spotify mixed with a creator asset library.


Architecture Overview

WildVerse currently combines:

  • PHP
  • MariaDB
  • JavaScript
  • HTML5
  • CSS
  • Node.js microservices

The platform is intentionally lightweight.

No heavy frameworks.

No React.

No Vue.

No build pipeline nightmares.

Most pages are rendered through PHP while JavaScript handles the interactive layer.


Project Structure

At a high level the project looks like this:

wildverse/
├── admin/
├── api/
├── assets/
├── audio/
├── databases/
├── hero/
├── includes/
├── nav/
├── personas/
├── node_backend_private/
├── router.php
├── index.php
└── sitemap.xml
Enter fullscreen mode Exit fullscreen mode


`

The architecture is organized around reusable modules rather than page duplication.


Audio Library Engine

The heart of the platform is the Sound Library.

Users can:

  • Search tracks
  • Filter by mood
  • Filter by persona
  • Filter by sound type
  • Sort by popularity
  • Preview tracks
  • Queue tracks
  • Download tracks

The library currently supports:

  • Full tracks
  • Loops
  • Bass drops
  • Intros
  • Ambience
  • Transitions
  • Sound effects

Everything is driven by metadata stored in MariaDB.


Fictional Music Personas

One of the unusual design decisions was organizing music around fictional artists.

Instead of uploading anonymous tracks, every sound belongs to a creative world.

Examples include:

  • Millenova
  • Rodrick Vale
  • Vlralair
  • ObscuraTones
  • CambaAndino
  • VibeCityWalks

Each persona has:

  • Its own visual identity
  • Albums
  • Music styles
  • Moods
  • Story direction

This makes discovery feel more like exploring a universe than browsing a spreadsheet.


Browser-Based Audio Player

I wanted users to stay inside the website.

So I built a browser-based playback system.

Features include:

  • Queue management
  • Auto-next playback
  • Repeat modes
  • Progress tracking
  • Mobile support
  • Album context panels
  • Visual playback indicators

The player behaves more like a lightweight streaming platform than a traditional download site.


API Layer

The public API handles:

  • Track retrieval
  • Likes
  • Downloads
  • Plays
  • Audio ranges
  • Album lookups

Examples:

text
/api/tracks.php
/api/track-play.php
/api/track-like.php
/api/track-download.php
/api/album-tracks.php

This keeps frontend components independent from database logic.


Node.js Microservices

Although most of the platform is PHP-based, some tasks are delegated to Node.js.

Examples include:

  • Audio cutting
  • Media uploads
  • GitHub integration
  • Health monitoring

This hybrid approach allows me to keep PHP handling content while Node.js processes media-related tasks.


Search Engine Optimization

One thing I learned early:

Building a platform is useless if nobody finds it.

WildVerse includes:

  • Structured data
  • Schema.org metadata
  • Open Graph tags
  • FAQ indexing
  • XML sitemaps
  • Search-friendly content blocks

The site generates large amounts of searchable information around:

  • Music
  • Audio production
  • Creator tools
  • Sound effects
  • Licensing
  • Game audio

This dramatically improves discoverability.


The Trick That Saves Storage: Audio Sprites, MariaDB Metadata, and On-Demand Cutting



One of the most unusual parts of WildVerse is that almost all of the downloadable audio files do not physically exist on the web server as individual MP3 files.

To the user, the platform looks like a normal sound library:

  • Click play
  • Preview a sound
  • Download an MP3
  • Browse albums and personas

Behind the scenes, the system works very differently.

Instead of uploading hundreds of separate MP3 files, WildVerse uses large audio sprite files. A single large MP3 can contain many sounds stitched together. Each individual sound is stored in MariaDB as metadata:

  • Sprite source file
  • Start time
  • End time
  • Duration
  • Track title
  • Persona
  • Album
  • Mood
  • Use case
  • Download information

When the user presses Play, the frontend does not load a separate MP3 file. It queries the MariaDB metadata, finds the correct sprite file and timestamp range, then plays only that section of the larger audio file.

When the user presses Download, the system does not fetch a pre-existing individual MP3. A Node.js service hosted on a VPS triggers an FFmpeg-based cutter on demand. The Linux backend extracts the requested timestamp range from the large MP3 sprite and returns it as a downloadable audio file.

This means WildVerse can behave like a library of many separate sounds while only storing and managing a smaller number of large source files.

The offline workflow is also important. I can prepare the large MP3 sprite and its sprite metadata locally, then push the audio sprite and database-ready metadata to the server without manually uploading every single individual MP3. That makes content deployment faster, cleaner, and much easier to scale.

This approach saves storage, reduces file clutter, and avoids creating thousands of tiny files on the hosting account.

That matters because shared hosting limits are not only about gigabytes. They are also about file counts, inode usage, backups, synchronization, and server management overhead.

To the visitor, every sound feels like a separate asset.

To the system, every sound is a timestamped region inside a larger media file.

The Hardest Part

The hardest part was not coding.

It was designing a system flexible enough to support:

  • Music
  • Sound effects
  • Albums
  • Personas
  • Downloads
  • Licensing
  • Metadata
  • Future creator tools

Without rewriting everything every few months.

The architecture evolved many times before reaching its current form.


What Comes Next

Future plans include:

  • More audio categories
  • Better creator workflows
  • Expanded metadata
  • Faster search
  • Additional APIs
  • New personas
  • New audio generation pipelines

The goal is simple:

Build an independent creator ecosystem where music, technology, storytelling, and digital tools can evolve together.


Project

WildVerse:
https://wildverse.codbiohub.com

Built by one developer, one database, too much coffee, and an unreasonable number of audio files.

This article has a much higher chance of getting DEV readers interested because it's framed as a software architecture and product-building story, not as a music promotion post.

Top comments (0)