Airsona: An Open-Source PWA That Blends Podcasts and Internet Radio into Continuous Broadcasting

Airsona is an open-source PWA blending podcasts and internet radio into a personal continuous broadcast experience.
Airsona is an open-source Progressive Web App that reimagines audio consumption by combining podcasts and internet radio on a timeline for continuous, radio-style playback. It dynamically fetches the latest podcast episodes via RSS at play time, requires no account registration, and stores all data locally in the browser. Built as a pure frontend PWA, it uses free CORS proxies to handle cross-origin feed fetching, offering a privacy-friendly personal broadcasting experience.
Airsona: An Open-Source Project Reimagining How We Listen to Audio
In the streaming era, we've grown accustomed to a "queue-based" model of audio consumption — lining up songs and podcast episodes in a playlist, with one automatically following another. But this model carries a hidden cost: you need to constantly "babysit" it, manually adding content, switching sources, and updating subscriptions. A recently surfaced open-source project on Reddit, Airsona, takes a more classical approach to solving this problem — bringing back the continuous playback experience of a broadcast radio station.
The project's creator (GitHub user njf520) says it has been in development for quite some time. The core idea is simple: drag podcast shows and internet radio stations onto a timeline, hit play, and it keeps going like an old-fashioned radio broadcast — instead of a play queue that demands your constant attention.
Core Mechanism: Timeline and Dynamic Content Fetching
A Paradigm Shift from "Play Queue" to "Broadcast Scheduling"
Airsona's most compelling design lies in its scheduling logic. Traditional playlists are static — you play exactly what you add. Airsona, on the other hand, uses a "timeline + block" model: you arrange different podcast shows and live internet radio stations as "blocks" on a timeline, creating your own personal "broadcast schedule."
More critically, it features dynamic content updates: when each podcast block actually plays, it fetches the "latest episode" of that show at that moment. This means you only need to build your broadcast schedule once, and it keeps the content fresh automatically. No more manually updating subscriptions or reorganizing lists every week — play the latest episode of a morning news podcast, transition to a live radio station, then move on to the next show, all configured once and effective long-term.
The underlying technology powering this dynamic fetching capability is the podcast ecosystem's core technical standard — RSS (Really Simple Syndication). RSS is an XML-based content syndication protocol used by virtually all podcast shows to publish metadata for new episodes, including audio file URLs, titles, publication dates, and other key information. When Airsona fetches a podcast's RSS feed at playback time, it's essentially parsing this XML document and extracting the audio resource pointed to by the <enclosure> tag within the latest <item> node. This "fetch at playback" strategy — rather than "cache at subscription time" — turns each podcast block on the timeline into a dynamic pointer that always references the latest content, without requiring background polling or push notification mechanisms.
This design elegantly merges the "on-demand nature of podcasts" with the "continuity of radio," essentially rebuilding a ritual of listening through a "personalized radio station" for each user.
Technical Implementation: A Pure Browser-Side PWA Architecture
A Privacy-Friendly Design with No Accounts and Local Storage
Airsona is a PWA (Progressive Web App), a technical choice that brings several direct benefits.
PWA is a set of web application standards championed by Google around 2015, built on three key components: Service Worker (a background script enabling offline caching and network request interception), Web App Manifest (a JSON file defining the app's icons, name, splash screen, and other metadata), and HTTPS secure transport. PWA apps can be "installed" to a device's home screen just like native apps, with support for offline access and push notifications, but they fundamentally run within the browser engine — no App Store download required.
For Airsona, the first benefit of the PWA architecture is no account registration required — you don't need to log in or hand over personal data to any server. Second, all configurations are stored in the browser's localStorage, keeping your broadcast schedule entirely on your own device. As part of the Web Storage API, localStorage provides approximately 5-10MB of key-value storage — more than enough for broadcast schedule configuration data including JSON-formatted timeline layouts, podcast RSS addresses, radio streaming URLs, and more, with all data remaining entirely local on the user's device without passing through any server.
For users increasingly concerned about privacy, this "zero-backend account system" design is quite appealing. It collects no data, requires no server maintenance costs, and reduces the project's long-term operational burden — a key factor in the sustainability of many personal open-source projects.
CORS Proxy: A Pragmatic Solution to Browser Cross-Origin Restrictions
One unavoidable technical challenge exists: browsers, due to security policies, cannot directly request podcast RSS feeds (cross-origin restriction). Airsona's solution is to rely on free CORS proxies to fetch these RSS feeds.
To understand this approach, you first need to understand how CORS (Cross-Origin Resource Sharing) works. CORS is a security policy enforced by browsers, an extension of the "Same-Origin Policy." When JavaScript running on the airsona.io domain attempts to make an HTTP request to an RSS server at podcast.example.com, the browser checks whether the target server's response headers include an Access-Control-Allow-Origin field that permits access from airsona.io. The vast majority of podcast RSS servers do not configure this response header, so the browser blocks the response data outright — note that the request has actually been sent and a response received, but the browser refuses to hand the data to the frontend code for security reasons.
A CORS proxy works by inserting a server in the middle: Airsona's frontend code sends requests to a CORS proxy server (such as cors-anywhere, allorigins, or similar free services), and the proxy server — acting in a server-side capacity (not subject to browser same-origin policy) — fetches the target RSS content, then adds the correct CORS headers before forwarding the response to the browser.
The author is refreshingly honest about this mechanism's limitations: "Because it relies on free CORS proxies, occasionally a feed will fail to fetch." This is a classic trade-off for pure frontend applications dealing with external resources — not running your own backend server means relying on third-party proxies, and free proxies are inherently unreliable. It's worth noting that this approach also creates a subtle tension on the privacy front — while Airsona itself collects no data, users' RSS requests do pass through third-party proxy nodes, and the proxy operator could theoretically view all request content passing through it.
From an engineering perspective, this is a pragmatic choice: it preserves the core advantages of "no server, no account," at the cost of accepting occasional feed instability and potential third-party trust issues. For a personal open-source project, this trade-off is reasonable.
Open-Source Community: Opportunities to Contribute
The project code is hosted on GitHub (github.com/njf520/airtime), with a live demo available at airsona.io. The author's announcement carries the hallmark attitude of an open-source developer: "I'd really love for someone to look over the code, and if you run into issues, bug reports are very welcome."
This open, candid approach is the foundation of a healthy open-source ecosystem. Rather than over-packaging the project, the author clearly communicates its capabilities and known issues (such as CORS proxy instability), which actually enhances the project's credibility. For interested developers, this also serves as a great entry point for participation and contribution — whether it's helping debug feed fetching issues or optimizing the timeline scheduling logic.
Practical Value and Future Outlook
Airsona's significance may lie not in the complexity of its technology, but in its reimagining of the audio consumption experience. In an era dominated by algorithmic recommendations and constantly fragmented attention, a personal broadcast tool that you "configure once, plays continuously, and auto-refreshes" represents a gentle return to the art of "passive listening."
This return touches on a long-standing experiential divide in audio consumption. One of the core values of traditional broadcast radio (like BBC Radio and NPR) has always been "curated scheduling" — professional editors determine the content playback order, and listeners simply tune in to receive a continuous information stream. While streaming-era platforms like Spotify and Apple Podcasts offer unprecedented freedom of choice, they also introduce the problem of "Decision Fatigue." Psychologist Barry Schwartz explored this phenomenon in depth in The Paradox of Choice: too many options actually decrease user satisfaction, trapping people in the anxiety of "whatever I pick, I might be missing something better." In recent years, some products have begun returning to a design philosophy of "reducing choices": Spotify's DJ feature uses AI to automatically curate music and commentary, Google Podcasts once introduced an auto-play queue, and the podcast app Castro gained a loyal following with its distinctive "inbox + queue" model. What makes Airsona unique is that it places scheduling power entirely in the user's hands rather than with algorithms or platform editors, achieving a middle path of "user-curated, machine-executed."
It evokes the relaxed feeling of turning on a radio and having programming simply flow — you don't need to make decisions, just listen. And Airsona uses modern web technology to hand the control of that experience back to users themselves.
Of course, as an early-stage personal project, there's still plenty of room for improvement: CORS proxy reliability (which could potentially be addressed through self-hosted proxies or edge computing solutions like Cloudflare Workers), richer scheduling features (such as conditional playback and automatic time-based switching), and potential mobile optimization (PWA Service Worker support on iOS Safari still has some limitations). But its core concept is clear enough, and its implementation path lightweight enough. For users who enjoy tinkering with audio tools and value privacy-first principles, as well as developers willing to contribute code to open-source projects, Airsona is well worth a try.
Interested readers can head directly to airsona.io to try it out, or visit the GitHub repository to browse the source code.
Related articles

AI Beginner's Guide: Three Stages to Building Your Own Personal AI Assistant from Scratch
No tech background? No problem. This beginner's guide maps out a 3-stage path to building a personal AI assistant — from prompt engineering to no-code automation to API calls.

Zero to Vibe Coding in Seven Days: A Complete Beginner's Guide to AI Programming
A beginner's guide to Vibe Coding: learn the 6-step path covering Claude Code, Cursor, Codex, prompt engineering, and project practice to build products with AI.

Tailcat: Tailscale's Official Decentralized Minimalist Networking Solution
Tailcat is Tailscale's official decentralized networking project that strips control plane dependencies, offering self-hosting users a more autonomous, privacy-focused WireGuard mesh experience.