
Melodía Stereo has been on the air in Bogotá since 1967. Many of its listeners are older people, and many live in parts of Colombia with weak mobile internet and old Android phones. The station’s current WordPress site downloads 2.2 MB in 123 files before it can be used, with sliders, several player plugins and jQuery loaded three times.
This project is an unofficial proposal for what the site could look like. It is not the station’s official page. It reads everything from the existing WordPress site and plays the station’s own stream, so nothing on the station’s side has to change.
Astro builds plain HTML pages. Small Preact parts fetch the news, bulletins and comments from the WordPress API in the browser. WordPress takes about 2 seconds to answer, so every section shows a grey placeholder and a line such as “Cargando noticias de melodiastereo.com…” to make clear where the wait comes from. Nothing is cached between visits, so the site always shows exactly what the original site shows. If a request fails or takes more than 15 seconds, only that section shows an error with a “Reintentar” button.
One shared player owns the single <audio> element. It lives in the bottom bar, which Astro keeps alive across page changes. The live stream, the hourly bulletin and any audio clip inside a story all go through it, and only one plays at a time. If a bulletin starts while live radio is on, live pauses and comes back at the present moment when the bulletin ends.
The live stream is HLS. Browsers that play HLS on their own get the stream address directly. hls.js is downloaded only when the browser cannot play it, which keeps the first visit at about 30 KB of code. If the stream drops, the player shows “Reconectando…” and retries with growing waits.
Story text arrives from WordPress as HTML. It is cleaned against a short list of allowed tags before it reaches the page. Embedded videos become plain links and audio clips become a play button for the shared player. Web addresses in listener comments go through a warning page before leaving the site.


