rrradio.org · privacy

Privacy

Effective 2026-05-02 · Last updated 2026-05-02

Short version. rrradio doesn't ask for your name, email, or any account. The web app uses cookieless privacy-friendly analytics to count plays per station; the iOS app does no analytics. Favorites and recents stay on your device. When you play a station, your device connects directly to that broadcaster's server — same as opening their URL in a browser — so their privacy policy governs that connection.

Who runs this

rrradio is a non-commercial side project by Markus Steinbrecher. The source code is open on GitHub; every change is in public git history. Contact: open an issue on GitHub or email redsukramst@gmail.com.

What the web app collects

The web app at rrradio.org uses GoatCounter for anonymous usage analytics. GoatCounter is privacy-friendly by design: no cookies, no user IDs, no cross-site tracking, IP addresses are hashed and discarded. We use it to count:

None of this is linked to any identifier we could later use to recognize you. We see "Switzerland: 589 visits" — not who those visits were from.

What the iOS app collects

The iOS app does no analytics at all. It does not phone home, does not track sessions, does not record any usage data anywhere outside your device.

What stays on your device

The following are stored locally and never sent to any server we control:

On the web this lives in your browser's localStorage; on iOS in the app's local storage. Clearing your browser's site data (web) or deleting the app (iOS) wipes it instantly.

Connections to broadcaster servers

When you play a station, your device opens an audio stream directly to that broadcaster's server (BR, WDR, BBC, SRG SSR, and so on — see the catalog for the full list). That server receives your IP address — the same as if you typed their stream URL into a browser yourself. We have no access to and no insight into what those broadcasters log. Their privacy policies apply to that connection, not ours.

The same is true for now-playing metadata fetched directly from broadcasters whose APIs allow cross-origin requests (SRG SSR, MDR, SWR, FFH, Klassik Radio, laut.fm).

Cloudflare Worker proxy

For broadcasters whose now-playing APIs don't allow cross-origin requests, the app routes those metadata fetches through a small Cloudflare Worker we operate (rrradio-stats.markussteinbrecher.workers.dev). Cloudflare's standard infrastructure logging applies to those requests (typically: IP address held briefly for abuse prevention, then discarded). The Worker itself stores nothing; it just forwards the broadcaster's JSON back to your browser.

The same Worker also fronts the GoatCounter stats endpoint that backs the app's "Stats" sheet — the API token stays on the server side so the public page never sees it.

What we don't do

Cookies

The main app does not set cookies. A separate admin dashboard at /dashboard.html (used only by the operator) holds an admin token in localStorage; ordinary visitors don't see it.

Your rights

Because we don't collect personally identifiable information about app users, we have nothing to link to you and nothing to delete on request. The data we do see is aggregate ("<station> was played <n> times"), which doesn't identify any individual.

If you have a question or concern, open an issue on GitHub or email the address above. We'll respond.

Data retention

Changes to this policy

If we change something materially (add a different analytics provider, accept user accounts, integrate any kind of tracking, etc.), we'll update this page with a new "Last updated" date. The full edit history is visible in git on GitHub.