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

Matinee Laravel Package

awcodes/matinee

Matinée is an OEmbed and video field for Filament panels and form builders. It stores video data as JSON, supports YouTube and Vimeo out of the box, allows custom providers, and can force a preview to display.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

Build vs. buy on the "embed a video" feature. Matinee collapses a deceptively fiddly feature — URL parsing, provider detection, embed URL construction, aspect-ratio storage, responsive vs. fixed rendering — into a single form field. A PM can price this as a half-day integration against an estimated 3–5 days of in-house build plus ongoing provider-maintenance cost. For most roadmaps, that's a clear buy.

Scoping CMS/admin authoring surfaces. Any feature where an editor references external video — blog posts, product pages, landing pages, course lessons, help-center articles — becomes a one-column, one-field change rather than a media-pipeline project. This directly affects how you estimate content features in a quarter.

Roadmap sequencing around an admin upgrade. The 3.x line spans Filament 4 and 5 from a single version, which materially de-risks a future Filament major upgrade. That is a roadmap input, not just a technical nicety: it means adopting Matinee now does not create a migration cliff at your next admin framework bump.

Deferring the "media library" decision. Matinee is an authoring-time URL field, not a media library. Choosing it lets you ship video embeds without committing to the bigger, more expensive decision (asset storage, transcoding, CDN, DAM vendor). It keeps that door open rather than pre-empting it.

Sizing front-end work in parallel. The stored JSON payload is documented and stable, so front-end implementation can be scoped purely against a known contract while back-end admin work proceeds — a scheduling advantage on small teams.

Roadmap signals it does not support. It won't answer questions about video hosting, transcoding, analytics, playback performance, captions/transcripts, or accessibility compliance for video. Any of those on the roadmap require a different, larger decision.

When to Consider This Package

Adopt when all of the following hold:

  • Your admin is Filament 4 or 5. (Filament 3 users would be pinning 1.x — a divergent legacy line; treat as a separate, discouraged decision.)
  • The requirement is genuinely "author pastes a URL, we render an embed" — YouTube and Vimeo cover the majority of expected input, or you're willing to write a provider class for the rest.
  • You can accept one JSON column per video reference on the model, cast as array/json.
  • You can create or already have a custom Filament theme and add the @source glob. This is a mandatory prerequisite, not a footnote — sequence it as its own task or the integration stalls at the styling step.
  • Someone on the team is willing to review patch-release diffs rather than auto-merge. With 0 dependents and 22 stars, you are the only canary for regressions.

Look elsewhere when:

  • You need a media library / DAM. Storage, transcoding, transformations, asset reuse across models — Matinee does none of this. Forcing it into that role will cost more than building or buying the real thing.
  • The admin is Nova, Backpack, or hand-rolled Laravel. No adaptation path; don't attempt it.
  • You need first-party support for many providers (Wistia, Brightcove, Dailymotion, self-hosted players). Custom providers are possible but the maintenance burden becomes yours — factor that into the buy calculation.
  • You require SOC 2 / vendor SLA / documented support contracts. Single maintainer, no commercial backing. MIT licensing means forking is cheap, which is the correct mitigation to plan for rather than a support agreement.
  • You need video-specific compliance features (consent gating, cookie/privacy regimes, captioning) as first-class product requirements. The nocookie option exists for YouTube, but broader privacy/consent workflows are your build.

Two scenario sizes worth distinguishing up front: a greenfield column is roughly a half-day, no backfill, no cutover. Existing video data in another format is a materially different project — budget a backfill/mapping exercise and validate that the JSON schema is treated as a stable contract before committing.

How to Pitch It (Stakeholders)

For executives (one paragraph): Matinee is a small, MIT-licensed Filament form field that lets editors embed YouTube and Vimeo videos by pasting a URL. It replaces an estimated few days of in-house build with roughly half a day of integration, and it deliberately does not commit us to a media-library vendor — it keeps that larger decision open. The trade-off is that it's a single-maintainer open-source package with a small user base, so we treat updates as reviewed changes rather than automatic ones, and we accept that if the maintainer steps away we may fork it (cheap, given the license). It's a well-scoped, low-blast-radius dependency: it touches the admin surface and one database column, not our public runtime.

For engineering (the asks): Confirm the admin is on Filament 4/5 before we commit. Sequence the custom theme + @source glob as an explicit prerequisite — it is the most common place this integration stalls. Add one nullable JSON column with an array/json cast. Pin our PHP floor and review patch releases as diffs. Confirm two things with the maintainer before we build against the JSON schema: whether it's a public contract with a migration path, and what happens when a stored provider is later removed from config — hard failure or graceful degradation. Plan the front-end against the documented payload and the <x-matinee::embed> component, knowing we can swap in our own markup at any time without touching stored data.

The honest framing: this is a good buy for a narrow, well-understood need with a clearly bounded blast radius — and a poor fit for anything that smells like a media library. Say so plainly now; it prevents the most expensive version of this decision later.

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.
shitoudev/permissionmanager
johannesclimacus/laravel-tui
hocvt/seotools
vitalybaev/sypexgeo
amphibee/themosis-ignition
gito-me/fast-excel
frankyso/laravel-ipaymu
geolize-studio/laravel-chile
boomerangui/chat
jinas/dhivatar
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console