Minimalny, mobile-first odtwarzacz polskich stacji radiowych. Klikasz stację — i gra. Jasna, „redakcyjna” szata (bez kiczu). Zbudowany na Val Town (React + Hono).
25 stacji, pogrupowanych w lib/stations.ts:
| Grupa | Stacje | Format |
|---|---|---|
| RMF | RMF FM, RMF MAXX, RMF Classic, RMF24 | MP3 (HTTPS) |
| Polskie Radio | Jedynka, Dwójka, Trójka, Czwórka, Polskie Radio 24 | AAC · HLS (hls.js; w Safari natywnie) |
| Niezależne | Radio Nowy Świat, Radio 357 | MP3 / AAC (HTTPS) |
| Agora | TOK FM, Radio Złote Przeboje, Radio Pogoda, KISS FM | MP3 (HTTPS) |
| ZPR Media | Eska, Eska 2, Eska Rock, VOX FM | MP3 (HTTPS) |
| Eurozet | Radio ZET, Antyradio, Chillizet, Meloradio, Radio Plus | MP3 (HTTPS) |
| Regionalne | Radio Lublin | MP3 (HTTPS) |
Strona ma manifest PWA (/manifest.webmanifest) i ikony (/icons/*, źródło w lib/icons.ts):
w Chrome na Androidzie „Dodaj do ekranu głównego” / „Zainstaluj aplikację” daje ikonę z falami
radiowymi i uruchamia odtwarzacz w osobnym oknie, bez paska adresu.
Rendering mermaid diagram...
ended albo braku postępu przez
10 s odtwarzacz łączy się ponownie (rosnący odstęp, maks. 6 prób). Po 2 nieudanych
próbach bezpośrednich przełącza się na proxy./stream/:id — zapasowe; obsługuje też czysty http://
(bez blokady „mixed content”). User-Agent = VLC, bo serwery SHOUTcast oddają
przeglądarkom HTML strony statusu zamiast strumienia./logo/:id — zgrywane raz do blob storage vala; zmiana adresu w
lib/stations.ts automatycznie odświeża kopię. Typ obrazka rozpoznawany po zawartości.index.ts ← Hono: /api/stations, /logo/:id, proxy audio /stream/:id
lib/stations.ts ← stacje (nazwa, monogram, kolor akcentu, strumień)
frontend/
root.tsx ← HTML shell (jasny motyw, Google Fonts)
index.tsx ← entrypoint React
components/App.tsx ← lista stacji + przyklejona belka odtwarzacza
Remix szablonu react-hono-starter.