Skip to content

soufianeoi/global-radio

Repository files navigation

Global Radio

A single-page web app for exploring and playing global internet radio stations on an interactive 3D globe.

Screenshot

Global Radio screenshot

Features

  • 3D Globe — Interactive WebGL globe with station markers using globe.gl
  • Live Radio Data — Fetches 300 top-clicked stations from radio-browser.info with client-side health filtering
  • Station Cards — Three-column grid with country, genre tags, and color-coded status dots with equalizer animation on playback
  • Two-Way Sync — Hover/click a globe marker or a station card; both highlight and scroll in sync
  • Faceted Filters — Country + genre dropdowns with live relative counts that recompute as you filter; persisted in the URL
  • ⌘K Search — Modal search across station names, countries, tags, and states
  • Favorites — Heart stations; persisted in localStorage
  • Dark Mode — Theme toggle with OS preference detection and persistent setting
  • Sleep Timer — 15/30/45/60 minute auto-stop timer
  • Volume Control — Slider with percentage display and mute toggle
  • Audio Visualizer — Real-time frequency bars via Web Audio API AnalyserNode
  • Buffering Indicator — Animated spinner while a stream connects
  • Error Handling — Retry button if the API fails to load
  • Empty State — Clear message and "Clear filters" button when no stations match
  • Recent Stations — Last 30 played stations remembered in localStorage
  • Share Links — Shareable station URLs via hash fragment + native share or clipboard
  • Keyboard Accessible — Full keyboard navigation and screen reader support
  • PWA Ready — Service worker + manifest for installable offline-capable app

Tech Stack

  • Vite (vanilla JS, no React/Tailwind/UI libs)
  • globe.gl (Three.js-based 3D globe)
  • radio-browser.info API

Getting Started

npm install
npm run dev

Open http://localhost:3000.

Build

npm run build

Output goes to dist/.

Deploy

GitHub Pages (already configured)

Push to main — the included GitHub Action builds and deploys automatically.

Live: https://soufianeoi.github.io/global-radio/

Vercel / Netlify

Drop the dist/ folder after building.

License

MIT

About

3D globe internet radio explorer - discover stations worldwide

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors