Real emulator cores, on demand
Five emulator cores compiled to WebAssembly decode your music locally. Backends are lazy-loaded, so only the format runtime you actually open is ever fetched and initialized.
Self-hosted · WASM emulation · No installs
Trackify is a self-contained web player for video game music. PSF, SPC, NSF, USF, VGM and more — decoded by real emulator cores compiled to WebAssembly and streamed from your own PocketBase-backed catalog, with cover art, playlists and favorites.
Features
From the first browse to the ten-thousandth track, Trackify covers the whole listening ritual — in a browser tab.
Five emulator cores compiled to WebAssembly decode your music locally. Backends are lazy-loaded, so only the format runtime you actually open is ever fetched and initialized.
Games with cover art, per-game track lists, collections and instant search — served by a small PocketBase backend that keeps the whole library tidy.
Seek, volume, shuffle, next/previous — plus lock-screen and media-key control via the browser's Media Session, and a now-playing bar that keeps up with long soundtracks.
Heart the tracks you love and gather them in one place. Build playlists across games, reorder them, and keep your soundtrack rotation fresh.
Audio and cover art are served straight from your PocketBase file storage. Nothing to download, nothing to mount — open the browser and press play.
One PocketBase application serves the UI, the API, and your audio files. Run the Docker image with a single volume — your library, your hardware, your rules.
Formats
The player auto-selects a backend by file extension — from console sound-format rips to streamed audio.
| System | Extensions | Backend core |
|---|---|---|
| PlayStation · PSF | .psf .minipsf .psf2 .minipsf2 .psflib |
Highly Experimental |
| Super Nintendo · SPC | .spc .rsn |
Game Music Emu |
| NES, MSX & friends | .nsf .bgm .opx .sng .kss |
NEZplug++ |
| Nintendo 64 · USF | .usf .miniusf .usflib |
LazyUSF2 |
| Chip music logs · VGM | .vgm .vgz .cmf .dro |
VGMPlay |
| PlayStation CD-XA | .xa |
Native JS decoder |
| Streamed audio | .genh .mp3 |
Native JS decoders |
Self-hosting
Trackify ships as one Docker image: PocketBase serving the built web app, the catalog API, and your audio files. Everything that matters lives in a single data volume.
npm install && npm run build # produces build/dist/
docker build -t trackify .
docker run -d --name trackify \
-p 8090:8090 \
-v trackify-data:/pocketbase/pb_data \
trackify
The prebuilt release image currently lives in a private registry — build your own with the commands above. Create a superuser in the container, import your library, and you're listening.