Mohamed BardouniAI Expert & Product Engineer

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
Shabablik Radio: Youth Digital Radio, Live Stream & Podcast Hub

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 source
Disclosure: Public demo deployment; no listener analytics or audience claims are made.

Need something similar?

Send me the problem, the users, and the expected scope.