statamic/podcast-categories
Statamic addon for managing podcast categories in the control panel. Adds a fieldtype for selecting Apple Podcasts categories and subcategories, making it easy to tag episodes or shows with accurate podcast metadata.
What this package is. statamic/podcast-categories is a Statamic addon, not a generic Laravel library. It bundles Apple’s podcast category taxonomy and exposes it as a blueprint fieldtype so editors can assign canonical category/subcategory values that flow into RSS feeds. The integration surface is the Statamic CMS, not an independent PHP service.
Architecture fit. Two binary conditions determine fit:
Integration feasibility. Mechanically trivial: Composer install, addon autoregistration, add the field to one or more blueprints, optionally republish config. There is no external API, no credentials, no queue, no storage concern. Realistic effort is a few hours of engineering plus an editorial pass, not a project.
Technical risk — the adoption signal matters. The release note is one line (“Updated for Statamic 6”), and the package metadata carries the stronger signal: 1 star, 0 dependents, no published upgrade guide, no visible test suite. For a TPM the consequence is not that the package is dangerous — its blast radius is small — but that there is no external validation to borrow. We would be the only known consumer of the v2 line. That is an asymmetric position: we absorb the review cost and the maintainer gets the bug reports.
Build versus buy is the real decision. The durable asset is a static, publicly documented taxonomy — the Apple category list. The code around it is a thin fieldtype wrapper. “Buy” is justified only if the maintainer’s ongoing curation of that list is worth more to us than roughly a day of engineering to vendor the list ourselves and register a repository‑owned select field. For most teams, copying the taxonomy into repository‑owned config removes the dependency entirely and makes the next Statamic major a non‑event. This is the highest‑leverage TPM decision in the assessment.
Key questions to close before committing.
composer.json constraints for Statamic, Laravel, and PHP in v2.0.0 versus v1.x, and do any sibling addons pin Statamic 5 and deadlock resolution?Stack fit classification — do this first.
Migration path — existing consumer (v1 → v2).
composer.json between the installed v1 tag and v2.0.0. The constraint delta is the plan.composer why-not statamic/podcast-categories 2.0.0 in a scratch branch to surface blocker addons before writing code — the cheapest possible failure.Adoption path — new consumer. Timebox a spike: scratch Statamic 6 instance, install, build one blueprint with the field, create entries, render the feed, confirm category values match Apple’s published list. Under a day. Adopt only if the spike is clean and the build‑versus‑vendor case favours buy — otherwise vendor the list and skip the dependency.
Compatibility and sequencing. Enumerate the matrix explicitly before committing: Statamic version, Laravel version, PHP version, and every sibling addon sharing the Statamic constraint. In practice the binding constraint is usually a different addon, not this one; if Statamic 6 support across our addon set is incomplete, we are blocked on the ecosystem and the correct action is to wait on a 6.x point release rather than lead the migration with a one‑star package.
Content migration note. Category values live in entry data. If v2 changes the stored shape, existing entries may render blank categories into the RSS feed — a silent, brand‑visible defect. Budget a scripted audit of existing entries’ category values as part of the upgrade, not as a post‑launch fix.
Maintenance. Low in absolute terms, but not zero, and the cost is scheduling, not engineering. Every future Statamic major (7, 8) reopens the question and, given this project’s history, may reopen it on the maintainer’s timetable rather than ours. The realistic posture: pin the version, add the package to the pre‑upgrade dependency checklist, and review at each platform major. If we vendor the taxonomy ourselves, this line item disappears entirely — the strongest operational argument for build‑over‑buy here.
Support. Effectively self‑support. There is no commercial backing, no published upgrade guide, no visible test suite, and a one‑line changelog. Assume first‑line support for any upgrade problem is us. Document our own upgrade notes at the first migration; they will be the only documentation that exists when the next platform major lands. If the field is on a launch‑critical path, wrap it behind our own field configuration so a swap is a config change rather than a content migration.
Scaling. Negligible throughput risk. The taxonomy is a static list resolved at render or panel‑load time; there is no external call, no per‑request query pattern of concern, and no queue or storage footprint. Watch only for: (i) page‑cache correctness if the category is rendered into cached feed output — confirm invalidation is wired into Statamic’s static caching; (ii) panel payload on very large entry listings if the field resolves options per row. Neither is likely to be material at realistic podcast‑catalogue volumes.
Failure modes, ranked by likelihood × blast radius.
Ramp‑up. Trivial for developers familiar with Statamic. Editors need a short guide on selecting the correct category/subcategory and understanding that the list is Apple‑specific. Because documentation is minimal, write a one‑page internal runbook covering installation, blueprint configuration, feed rendering, and the upgrade checklist. Time to productivity: hours for engineering, minutes for editorial once the field is in place.
How can I help you explore Laravel packages today?