Thang An Radio
Community broadcasting portal for Thang An commune, Da Nang
stack: React, TypeScript, Vite, Tailwind CSS, Cloudflare Workers
What
A commune-level broadcasting web app serving 74 radio and TV channels from local, regional, and national stations in Vietnam. Built with React 19, TypeScript, and Vite 7. Deployed on Cloudflare Workers as a static site with edge API endpoints.
Why
Thang An commune in Da Nang needed a way to make local radio accessible online. The existing broadcast infrastructure had no web presence. This fills that gap with a mobile-first PWA that residents can install and use like a native app.
Notes
- Streams HLS, Shoutcast, YouTube Live, Vimeo, and iframe sources through a unified player interface
- Cloudflare Worker handles CORS proxying for HLS streams and YouTube live status detection
- PWA with offline support, lockscreen media controls (MediaSession API), and installable home screen app
- Features: search modal, keyboard shortcuts, sleep timer, favorites, recently played, mini player, shareable URLs via query params
- HLS.js loaded via CDN with manually typed declarations instead of npm package
- 29 YouTube live TV channels organized geographically north-to-south