PodcastFeedMaker

Published on Β· Updated Β· 4 min

Wlad
Wlad
Founder & Swift Tech Lead

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.

github.com