A cyberpunk-styled internet radio player built as a single HTML file. No build step, no dependencies, no frameworks — just vanilla HTML, CSS, and JavaScript.
- Browse & Search — search by station name or tag, filter by country, codec, and bitrate
- Browse Modes — Top Stations, Most Voted, Recently Played, Recently Updated
- Genre Tag Cloud — one-click browsing across 29 popular genre tags
- Audio Visualizer — real-time frequency bar visualizer via the Web Audio API
- Now Playing Panel — station art/favicon, rotating disc animation, play/stop/prev/next controls, volume slider with mute
- Voting — vote for stations directly from the UI; votes are persisted in
localStorage - Copy Stream URL — copies the resolved stream URL to the clipboard
- Automatic API Failover — discovers live Radio Browser API nodes at startup and falls back to backup nodes on error
- Responsive Layout — three-column desktop view collapses to a mobile layout with a bottom nav bar and floating mini-player
- Retro Aesthetics — CRT scanlines, animated grid background, glitch effects, and neon glow — all pure CSS
Open index.html in any modern browser. No server required.
open index.html # macOS
xdg-open index.html # Linux
start index.html # Windows
The app connects to the Radio Browser API on load, discovers the fastest available node, and immediately shows the top 100 stations.
| Area | Description |
|---|---|
| Header | Logo, API connection status, live clock |
| Sidebar | Search form, browse mode selector, genre tag cloud |
| Station List | Scrollable list of stations with codec, bitrate, country, and vote count |
| Now Playing | Visualizer, station art, playback controls, station metadata |
| Footer | Active API node, currently playing station, status messages |
- Vanilla JS — no frameworks or bundlers
- Web Audio API — audio routing and frequency analysis for the visualizer
- Radio Browser API — open, community-maintained database of internet radio stations
- Google Fonts — Orbitron (display), Share Tech Mono (body)
- CSS custom properties — full theme defined via
--cyan,--green,--bg, etc.
Any modern browser that supports the Web Audio API (Chrome, Firefox, Edge, Safari 14+). CORS is handled by the Radio Browser API itself; no proxy needed.