Shabablik Radio: Youth Digital Radio, Live Stream & Podcast Hub
An Arabic digital radio and podcast platform with a persistent live-stream player that never drops audio across page navigations, paired with a show schedule and editorial CMS.
Next.jsSQLiteLive AudioArabic RTL

Context
Many radio websites break the listener experience by reloading the page — and cutting off the live audio stream — the moment someone clicks an article or checks the program schedule.
Scope I disclose publicly
- Persistent audio player mounted in the Next.js root layout so live radio and podcast playback continues uninterrupted while browsing articles and show pages.
- Dynamic program schedule with an 'On Air Now' indicator, host profiles, and episode archives.
- Editorial admin panel for publishing articles, managing show timetables, and curating podcast episodes.
Decisions and trade-offs
- Lifting audio state into a persistent client provider above route transitions so navigation never unmounts the HTML5 audio pipeline.
- Backing the CMS with Prisma and SQLite for zero-maintenance operational simplicity.
- The trade-off: mobile browser autoplay policies require explicit user interaction before starting the live stream.
The live platform is accessible at mbardouni.dev/shabablik/.
Check the public sourceDisclosure: Public demo deployment; no listener analytics or audience claims are made.
