No backend at all
The site is a static build. Audio decoding and processing happen in your browser with the Web Audio API and AudioWorklet, so no server ever receives your stream or your settings.
Most free web audio tools pay for themselves with accounts, tracking pixels and ad profiles. This one cannot: there is no server, no database and no analytics script — so there is nothing to sell or leak.
Most “free” web apps have a backend. That backend is where accounts live, where usage is measured and where a breach eventually happens. This player has no backend. It is a static HTML, CSS and JavaScript bundle; the audio pipeline is built in your browser from Web Audio API nodes and two AudioWorklet processors.
That architecture is what makes the privacy claim checkable rather than a promise:
Volume, theme, FX order, AutoEQ selection, imported AutoEQ profiles, your six station presets, the last station you played, a small album-art cache and the offline app shell. All of that is in your browser’s localStorage and Cache Storage, and all of it is listed with its key names in the privacy policy.
Clearing site data for this domain removes every trace of your use. Nothing is synced, because there is nowhere to sync to.
| What | When | Who sees it |
|---|---|---|
| The radio stream | When you press play | The broadcaster you chose |
| Station search | When you search | radio-browser.info (public API) |
| Stream metadata | While playing some stations | The broadcaster’s public metadata endpoints |
| CORS proxy | Only if a stream blocks direct playback | A third-party proxy, sees the stream URL |
| Album art | If the lookup is enabled and a track changes | MusicBrainz and Cover Art Archive |
| Ad frame | When an ad slot is in view | A-ads, anonymous and cookie-free |
Nothing else leaves the browser. There are no fonts from a font CDN (the two typefaces are self-hosted), no analytics beacon, no error-reporting service, no social embed.
The site itself is tracking-free. The radio streams you play are third-party infrastructure: their CDNs, their metadata servers and the ad frame outside our control may log IP addresses, and we cannot audit or control that. That is why the privacy page names each one instead of promising a blanket “no third parties”.
Hosting is a static build on Codeberg Pages, which runs its own hardware in Berlin, Germany. Codeberg processes standard delivery logs as the host; we do not receive or store them. Codeberg publishes no verifiable renewable-energy figure, so the site does not claim to be “100% green” — only EU-hosted, static and tracking-free.
Because it is an installable Progressive Web App, you can add it to your home screen or a tablet’s dock. The app shell is cached for offline start-up; the streams are live and need a connection. No app store, no sign-up, no account — and uninstalling it leaves nothing behind on the device except the data you cleared yourself.
The site is a static build. Audio decoding and processing happen in your browser with the Web Audio API and AudioWorklet, so no server ever receives your stream or your settings.
There is nothing to sign up for, no cookie is set, and no analytics or fingerprinting script is loaded anywhere on the site.
Volume, presets, theme and imported AutoEQ profiles live in your own browser. Clearing site data deletes everything, permanently and completely.
Stream, station search, metadata APIs, optional CORS proxy, optional album-art lookup and the anonymous ad frame. The privacy policy lists each one.
The page is served by Codeberg Pages from Berlin, Germany. We run no servers and collect no logs; Codeberg processes ordinary delivery logs as the host.
No. There is no backend that could log anything. Your browser connects directly to the radio station you pick, so the station sees a normal stream request from your IP address — exactly as if you had opened the stream URL yourself.
The broadcaster whose stream you play, the public radio-browser.info API for station search, a CORS proxy if a stream blocks direct browser playback and you leave the fallback enabled, MusicBrainz/Cover Art Archive if you enable album-art lookup, and the anonymous A-ads frame. Each is described in the privacy policy.
The one ad slot is served by A-ads as an anonymous, cookie-free frame; it is not tied to a profile of you. If the frame itself sets anything, that is between the ad network and your browser, which is why it is disclosed in the privacy policy rather than hidden.
A settings object (theme, volume, FX order, AutoEQ selection, imported profiles), your station presets, a small album-art cache and the service-worker cache of the app's own files. All of it is listed with its localStorage key in the privacy policy. See the privacy policy for the exact keys and requests.
Yes, mostly: disable the CORS proxy and album-art lookup in settings, and play only streams that send proper CORS headers. Ads are part of the free edition, but they are anonymous and cookie-free.