Search. Press Play. Endless Music.
Live Canadian radio stations — browse by genre or province,
play community Top-50 favorites, and keep listening. 100% free forever.
→ Open Radio.Mixy · → Switch to Music
Radio.Mixy is a minimal live radio player for Canadian stations. No accounts. No clutter. Open the site, pick a station (or let Top-50 roll), press play, listen.
Catalog: ~1,500 Canadian stations synced from the public Radio Browser directory (countrycode=CA), organized into ~200 genres and all provinces & territories.
Radio.Mixy does not host audio files. Streams come from each station’s own public URL. Radio.Mixy is not affiliated with those broadcasters.
Sister site: Mixy — SoundCloud playlists & tracks.
Tap the Radio.Mixy title (search) → Genres. Type a genre name (country, classic rock, news, jazz…), tap a result, and Radio.Mixy starts a continuous queue of stations in that genre.
Same search panel → Provinces. Browse by Canadian province or territory (Alberta, Quebec, British Columbia, …). Tap one to play stations from that region.
Same search panel → Top-50. A live ranking of the 50 most liked Canadian stations.
- Ranked by ♥ likes from listeners (one like per visitor per station)
- Ties fall back to Radio Browser popularity signals
- Filter by station name, tap a row, and it plays immediately
- Default listening mode when you open the site
No spreadsheets — Top-50 is stored on the Radio.Mixy server (MySQL) and updates automatically when people favorite stations.
On the player controls (right of Next): tap the heart to like (or unlike) the current radio station.
- Your vote is tied to an anonymous browser ID (cookie / local storage) — no login
- One like per station per visitor
- Liked stations rise in Top-50
- The heart fills when your like is recorded; tap again to remove it
Hamburger / list control opens the current session queue — previous, now playing, and upcoming stations. Jump to any station in the list.
In the search panel, Switch to Music opens mixy.ca — Mixy’s SoundCloud music sister site.
While a station plays, its cover / favicon fills the page background (dimmed), same visual language as Mixy.
| Scope | Approx. size |
|---|---|
| Canadian catalog (Radio Browser sync) | ~1,500 stations |
| Active genres with stations | ~200 |
| Provinces & territories | 13 |
| Top-50 board | 50 most liked |
Numbers change as Radio Browser updates and as we re-sync playable streams.
| Control | What it does |
|---|---|
| Play / Pause | Start or pause the live stream |
| Previous / Next | Jump to the previous or next station in the session queue |
| ♥ Favorite | Like / unlike the current station → feeds community Top-50 |
| Station list | Open the session queue and jump to a station |
| Progress / LIVE | Live stream indicator (continuous radio, not a fixed track) |
| Radio.Mixy (title) | Opens search — Genres, Provinces, or Top-50 |
| Switch to Music | Opens mixy.ca |
| Status line | Shows Loading, Ready, Playing, Paused, or Error |
- Some station streams are offline or block datacenter IPs — press Next to skip.
- HTTPS pages cannot load plain
http://artwork; Radio.Mixy upgrades favicon URLs when possible. - Genre / province search works best with a short name; recent searches stay in your browser only.
- Browsers block autoplay with sound — you start playback with Play.
- Works on phone and desktop; no app install required.
- Prefer Top-50 for crowd-vetted stations, or pick a province for a local feel.
Listener taps ♥ on station
│
▼
POST /api/radio/like { station_id }
│
▼
MySQL station_reactions
(anonymous_uuid + station_id + 'like')
UNIQUE — one vote per visitor per station
│
▼
Top-50 query
ORDER BY like_count DESC,
Radio Browser votes / clicks
LIMIT 50
- Opening the site creates an anonymous UUID (cookie + local storage).
- ♥ inserts or deletes a row in
station_reactions. - Top-50 counts likes per station and shows the top 50 playable Canadian stations.
- Starting radio in Top-50 mode builds a queue from that ranking so you can skip through favorites.
┌─────────────────────────────────────┐
│ radio.mixy.ca — custom player UI │
│ cover, title, controls, search, ♥ │
└───────────────┬─────────────────────┘
│
▼
┌─────────────────────────────────────┐
│ HTML5 <audio> (+ hls.js when HLS) │
│ Play / pause / next / prev │
└───────────────┬─────────────────────┘
│
▼
┌─────────────────────────────────────┐
│ Station stream URL (HTTPS direct) │
│ or same-origin PHP stream proxy │
│ for HTTP-only port-80 streams │
└─────────────────────────────────────┘
Search / Top-50 / Favorite:
Genres / Provinces → /api/genres, /api/provinces
Start / queue → /api/radio/start, /session/…
Top-50 → /api/radio/top50
Favorite (♥) → /api/radio/like
Catalog sync → Radio Browser API (admin)
- The page shows a custom UI (brand, artwork, transport, favorite, search).
- The API starts a listening session and fills a queue of stations (Top-50, genre, or province).
- The browser plays the station stream with HTML5 audio (HLS via hls.js when needed).
- HTTP streams on standard port 80 may go through a same-origin proxy so HTTPS pages stay secure.
- Favorites write to MySQL; Top-50 reads the same likes table.
This GitHub repo is a public showcase (docs only). The live product is at radio.mixy.ca.
| Piece | Role |
|---|---|
| Static frontend | Next.js app exported to static files (out/), hosted on the web root |
| Player UI | Custom React interface over HTML5 audio / HLS |
| Station catalog | MySQL (stations, genres, provinces, station_genres) |
| Radio API | Node.js app (/api/radio/*, /api/genres, /api/provinces, …) |
| Top-50 | Community likes in station_reactions → automatic ranking |
| Sync | Admin “Sync from Radio Browser” for Canadian stations |
| Music sister | mixy.ca — SoundCloud playlists & tracks |
| SEO | Open Graph, sitemap, robots, JSON-LD |
- Frontend: Next.js (App Router), React, TypeScript, Tailwind CSS
- Playback: HTML5
<audio>+ hls.js for HLS streams - Catalog: Radio Browser API (Canada)
- Top-50 / likes: MySQL (
station_reactions) via Radio.Mixy API - Hosting: Static site + cPanel Node.js API (+ PHP stream proxy when needed)
- Live: https://radio.mixy.ca
- Music (Mixy): https://mixy.ca
- Mixy GitHub: denislopdev/mixy
- Creator / support: Denis Lop
- Station data: Radio Browser
Built and managed by Denis Lop
Canadian radio · sister to mixy.ca