Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Statamic Mux Id Laravel Package

el-schneider/statamic-mux-id

Statamic addon for Mux video: upload or select assets, store Mux playback IDs, and render videos in your site. Simplifies Mux integration with fieldtypes and Antlers tags.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. This is a Statamic addon (Laravel-based CMS), not a framework-agnostic Laravel package. It follows Statamic conventions: Composer package, service provider, an asset-container blueprint fieldtype, and Mux as the external SaaS for ingest, transcode, and delivery — with results stored as metadata on the Statamic asset record. Fit is conditional: strong if the organization already runs Statamic for content and Mux for video; poor if the stack is plain Laravel/Blade with no Statamic, or if video already sits with an incumbent (Cloudflare Stream, Vimeo, S3+transcode).

Integration feasibility. Low-to-moderate effort for a Statamic team: composer require, publish config, supply Mux credentials, attach the Mux field to asset container blueprint(s), configure a queue, and expose a webhook endpoint. No migration is mentioned, which lowers adoption risk but also means there is no first-class relational model to query or report on — metadata rides on Statamic's asset record. Requires outbound access to the Mux API and inbound webhooks; dev environments need real credentials or a stub.

Technical risk.

  • Pre-1.0 (v0.1.1). Semver offers no stability guarantee; minor bumps may break. Pin exact versions.
  • v0.1.1 fixes an availability defect: under synchronous queues a permanent Mux 4xx aborted the entire Statamic asset upload. Earlier adopters may have partial or failed uploads in their environment — verify.
  • New persisted contract: status: errored plus Mux error details on asset metadata. Templates, GraphQL/REST consumers, and editors must handle it, and the notes describe no recovery path.
  • Non-4xx failures are now rethrown for retry, which makes correctness depend on queue retry/backoff configuration and failed_jobs triage discipline.
  • The revealer change is cosmetic but affects editorial discoverability and any CP automation selecting on field DOM.

Key questions.

  • Supported Statamic/Laravel/PHP version ranges, support policy, and maintainer responsiveness?
  • How does an operator clear status: errored and re-drive the asset — UI action, artisan command, or manual metadata edit?
  • Is the persisted error payload sanitized (no secrets or signed URLs leaking into rendered pages)?
  • Are Mux webhooks signature-verified, and is there a polling fallback if a webhook never arrives?
  • Are Mux assets deleted when the corresponding Statamic asset is deleted (orphan and cost exposure)?
  • Playback policy defaults, signed playback, and custody of signing keys?
  • Test coverage/CI, license, and a security disclosure path?

Integration Approach

Stack fit. Statamic 4/5 on Laravel 10/11, PHP 8.1+, Composer, with database/Redis/SQS queues. Transcode and delivery load sit with Mux's CDN, not the app tier. Not appropriate for non-Statamic Laravel applications — treat this as a CMS-bound integration, not a general media library.

Migration path. Greenfield only. There is no evidenced route for backfilling existing videos into Mux through this package; legacy references need a bespoke script and template rewrites. Because state lives in asset metadata rather than a dedicated table, expect template, search index, and any API-exposure configuration changes.

Compatibility. Install pinned to the exact 0.1.1 tag and commit composer.lock; check PHP/Statamic constraints against the target project first. The metadata addition is additive but is a de facto schema change — audit Antlers/Blade partials, GraphQL queries, and CP asset listings for assumptions that status is always absent or healthy. Revealer wrapping may break custom CP styling or test selectors.

Sequencing.

  1. Spike (1–2 days): prove credentials, upload, webhook, and playback in a scratch site with the queue driver deliberately set to sync — the configuration v0.1.1 makes safe. Force a 4xx (bad token) and confirm status: errored is recorded instead of a hard upload failure.
  2. Staging with async queues: set retries/backoff, simulate 5xx/timeouts to validate retry, and confirm failed-job visibility.
  3. Write the errored-asset runbook before production: detection, notification, reset procedure, orphan reconciliation.
  4. Production rollout behind a flag on one asset container; expand after editorial and ops sign-off.
  5. Then consider moving past 0.1.x — treat each minor as potentially breaking and re-read the changelog.

Operational Impact

Maintenance. Small code footprint, but a pre-1.0 dependency on an external SaaS with its own API versioning. Budget for version pinning, changelog review on every patch, and periodic re-testing of the error path. Two surfaces need ongoing ownership: Mux credential rotation and drift in Statamic blueprint configuration.

Support. Expect a small or single-maintainer addon at this maturity; check issue response times and whether releases are tagged and tested. The escape hatch is a fork — the surface is small enough to be feasible — but assign explicit internal ownership so the integration does not become orphaned. First-line support needs the errored-asset runbook, not just API documentation.

Scaling. Transcoding and delivery scale with Mux; the app only issues API calls and writes metadata. Watch Mux API rate limits and, more significantly, queue throughput: bulk uploads behind a sync driver serialize and can time out CP requests. With async queues, size worker concurrency and align backoff with the new rethrow-for-retry behavior. Metadata writes on the asset record add write amplification during bulk imports.

Failure modes.

  • Permanent 4xx (auth, billing/quota, invalid input) is now captured as status: errored — a silent editorial failure rather than a loud one. Uploads succeed while video never plays. Monitor errored assets explicitly; do not depend on users reporting it.
  • Transient 5xx/timeouts retry until exhaustion and land in failed_jobs — assets then sit in limbo with no errored status at all.
  • Webhook loss or misconfiguration leaves assets permanently non-ready; no polling fallback is evidenced, so verify reconciliation.
  • Credential expiry or rotation produces a burst of 401s across all active editors.
  • Orphaned Mux assets on Statamic asset deletion create ongoing storage and delivery cost.
  • The revealer hides Mux status by default, decreasing visibility exactly when an asset is broken — compensate with a CP listing filter or an alert.

Ramp-up. A Statamic-fluent developer is productive in under a day; editors need roughly 30 minutes plus a clear "video won't play" path. Plan ~1–2 engineering days for the spike and staging validation, and an ops half-day for the runbook, monitoring, and alerting before production cutover.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
diephp/sequences
users-au/socialite-provider
twidpay/twid-logger
mrnewport/laravel-plaid
mrnewport/laravel-repo
mrnewport/laravel-docsign
mrnewport/laravel-stow
mrnewport/laravel-flow
mrnewport/laravel-priceable
mrnewport/laravel-nestedterms
fredmeng/laravel-apidoc-generator
itstructure/laravel-multilingual-tools
pdustdar/elasticsearch
markupai/php-sdk
rlacerda83/lumem-microservice-shipment
uni-method/symfony-lib
tacticmedia/scim-server-bundle
neika-ai/symfony-bundle
mattleads/agent-publishing-bundle
glavweb/framework-bundle