PodcastFeedMaker
Published on Β· Updated Β· 4 min
The Story
It all started with a simple need: generate clean, standards-compliant podcast RSS feeds without hacking XML by hand.
Between 2006 and 2012, I was producing electronic music podcasts. Back then, I managed everything with a homemade PHP backoffice β a DIY setup that worked, but required tremendous effort to stay compatible with iTunes, aggregators, and validators.
Years later, while working on audio projects, the need came back. But this time, I wanted to do things right: a modern, typed, tested Swift library that respects all current standards β Apple Podcasts, Podcast Namespace, PSP-1.
It was while developing this library that the idea for Podcast Maker was born. The library first, the app second.
What is PodcastFeedMaker?
PodcastFeedMaker is a Swift package (SPM) for generating RSS 2.0 podcast feeds. Not a wrapper, not a template generator β a real object-oriented model of the RSS format with all its namespaces.
What it does:
Generates valid and complete RSS 2.0 feeds
Supports Apple Podcasts tags (iTunes namespace)
Supports the Podcast Namespace (podcastindex.org)
Complies with the PSP-1 specification (Podcast Standards Project)
Automatically validates formats (RFC dates, URLs, booleans)
Passes validators: podba.se, CastFeedValidator, Apple
Main building blocks:
Feed β The complete feed
Channel β Podcast metadata (title, description, artwork...)
Item β An episode with its media enclosure
Namespace β XML namespace injection (itunes, podcast, atom...)
Who is it for?
Swift developers building podcast-related apps or services:
Podcast creation/publishing apps
Swift backends that generate feeds
CLI tools for validation or migration
Podcast hosting services
Long-term, the ambition is to expand beyond Swift β via a C bridge and XCFrameworks for cross-platform support.
What makes it different
Full standards compliance
No compromises. RSS 2.0, Atom, iTunes, Podcast Namespace, PSP-1 β everything is implemented according to official specifications.
Built for performance
The library is designed for mass processing. Async generation, XML streaming, capable of handling catalogs with 100,000+ episodes without breaking a sweat.
Strong typing, zero surprises
Every tag, every attribute is typed. Dates are Date, URLs are URL, durations are Duration. No magic strings, no runtime errors.
Actually tested
Code coverage above 95%. Every namespace, every tag, every edge case is covered. CI runs on every commit.
Extensible
The architecture allows adding custom tags via the XmlRepresentable protocol. Need a custom namespace? It's built for that.
Usage example
Installation
Via Swift Package Manager:
Documentation
Auto-generated and hosted DocC documentation
Inline documentation in Xcode (β₯ + Click)
Complete examples: minimal feed, PSP-1 recommended feed, complex feed
Open Source
PodcastFeedMaker is open-source under the Apache 2.0 license. Contributions are welcome β whether it's adding tags, improving docs, or reporting bugs.
The project follows strict standards: conventional commits, mandatory tests for every PR, DocC documentation for all public APIs.
Roadmap
Complete RSS + Apple + Podcast Namespace coverage β
DocC documentation on GitHub Pages β
CI/CD with code coverage β
Swift Macros for declarative feed composition (in progress)
Podlove Simple Chapters (PSC) support
Feed validation CLI
Existing feed import
Under the hood
Swift 6 ready β Modern Concurrency, Sendable, actors
Async XML generation β Streaming for large volumes
Protocol-oriented β Extensibility via XmlRepresentable
Zero dependencies β Pure Swift standard library
Multi-platform β macOS, iOS, Linux (server)
Links
PodcastFeedMaker on GitHub
Swift package for generating standards-compliant podcast RSS feeds.