A personal browser-based music player that actually doesn't suck.
JSpringAmp is a full-stack Java + Webamp powered music player you run for yourself, in your browser, from your server — because the world doesn’t need another half-baked, GTK-infested Linux desktop player vomiting segmentation faults every time you press "pause."
This is a local-first, single-user cloud music player. It plays music. It does it well. It doesn’t nag you to "go pro" or show you an ad for crypto every 10 seconds. Upload your tracks, then hit play. Simple.
- Upload
.mp3
or.ogg
files via/upload.html
- Tracks are saved to disk with metadata (title + artist)
- Playback via gorgeous retro Webamp interface on
/
- Persistent metadata saved in JSON
- Runs anywhere Spring Boot runs
- Classic pixel style with Java/Solaris-era vibes
- Java 17+
- Maven
- Clone and build:
git clone https://github.com/MARKMENTAL/jspringamp.git
cd jspringamp
mvn spring-boot:run
- Open
http://localhost:8080/upload.html
to upload your music. - Go to
http://localhost:8080
to listen.
Yes, it works over LAN. Yes, you can expose it to the internet and pretend you're your own music service.
Just remember: this is meant for one user — you. If you try turning this into a streaming service or SaaS abomination, you're on your own. No auth system, no permissions, no social, no begging for donations.
- Multi-user support
- Discord integration
- Spotify linking
- OAuth anything
- “Can you make a React frontend instead?” — No.
Fork it and ruin it yourself if that’s what you want. This is a personal music player. I built it for myself first, not as a product.
Because I was sick of bloated music players that:
- Are electron nightmares
- Don't play local files well
- Require 13 steps to upload music
- Have dependencies longer than my Spotify Wrapped
JSpringAmp is minimal, retro, and actually kind of fun.
GPL v3 — because if you’re going to steal this and make it proprietary, I want to make your life legally complicated.
Nope. You run it. You break it. You enjoy it.
- Metadata is stored in
uploads/tracklist.json
- Audio files go in
uploads/
- Backend is raw Java Spring Boot — no ORM, no database needed
- Frontend uses Webamp, Butterchurn, and vanilla JS
- CLI tag editor?
Every push to main
automatically triggers a GitHub Actions workflow that:
- Builds JSpringAmp using Maven
- Packages the latest
.jar
file (JSpringAmp-[version].jar
) - Publishes or updates the Nightly Build in the Releases tab
You can always download the latest successful build straight from the Releases page — no need to clone, compile, or touch a terminal if you don’t want to.
0.0.1-SNAPSHOT
— it runs, it slaps, it still might throw a stacktrace at you if you sneeze wrong.