torann/podcastfeed
Generate podcast RSS feeds in Laravel with torann/podcastfeed. Build valid iTunes-compatible feeds, add episodes, enclosures, artwork, and metadata, then output them as XML for Apple Podcasts and other directories.
guid permalink behavior, and iTunes category structure. That becomes our definition of done for "will Apple and Spotify accept this feed?" — valuable no matter what we build on.itunes:episodeType, itunes:season/itunes:episode, Podcasting 2.0 tags, transcripts, chapters, funding), evaluating it surfaces the real product question: which directories must ingest us, and which tags does each require? That's a product requirement, not an engineering one.Recommended posture: evaluate, harvest, own. Use it to shortcut spec research, then implement the endpoint in-house. Do not add it as a Composer dependency in a modern app.
Adopt (as-is or lightly patched) when:
Look elsewhere (or build) when:
composer.json that won't resolve, with no upstream fix coming.require it.podcast:transcript, podcast:chapters, podcast:funding, podcast:guid, podcast:locked) or itunes:episodeType/itunes:season/itunes:episode. The spec has moved on and this package won't cover it.Alternatives to weigh: an in-house controller plus Blade/XMLWriter presenter (recommended), spatie/laravel-feed (actively maintained, general-purpose), or a hosted feed service (Megaphone, Transistor) if distribution — not authorship — is the actual job.
To the executive team (one paragraph): We have a proposal to add podcast distribution. The technical barrier is lower than it looks: a standards-compliant podcast feed is a solved problem, and BSD-2-Clause open source already covers it, so there's no licensing cost. But the specific package on the table targets Laravel 5 and has essentially zero adoption or maintenance trail, so I do not recommend depending on it. Instead, we treat it as a reference and write the roughly one file of feed logic ourselves — a small, low-risk build that gives us control over episode metadata, publishing rules, and future formats with no long-term dependency exposure. Net effect: the podcast channel becomes a one-to-two-week feature, not a quarter-long project, and we can test demand before committing to a distribution platform.
To engineering (summary): This is a Laravel 5-era package that generates iTunes-compatible RSS — channel and item metadata, enclosures, GUIDs, iTunes category/artwork/explicit tags, custom namespaces. BSD-2-Clause, 48 stars, zero dependents, effectively unmaintained against modern Laravel. Don't take it as a dependency. Two options: (1) if the service is genuinely pinned to Laravel 5, vendor it behind a thin adapter, pin the exact version, and treat it as frozen source; (2) preferred — use it as a spec reference and implement a feed controller plus presenter/XML template, owning ~300 lines. Non-negotiables either way: stable guid with isPermaLink="false", correct enclosure MIME types and byte lengths, RFC 2822 pubDate, valid leaf-level itunes:category, ETag/Last-Modified for the aggressive polling behavior of podcast clients, and a CI check that asserts well-formed XML plus the required tag set. Feed regressions don't throw exceptions — they surface days later when a directory quietly re-crawls and an episode vanishes.
How can I help you explore Laravel packages today?