enhavo/metadata
Metadata component for the Enhavo content framework, providing models and services for storing, resolving, and rendering resource metadata such as titles, descriptions, and SEO-related attributes across pages.
enhavo/metadata is not a standalone Laravel package — it is a read-only subtree split of the Enhavo CMS (Symfony). The real decision it informs is "do we standardize on Enhavo and inherit its metadata layer?", not "should we npm/composer-install this?" Treat it as an input to a platform bet.Consider it when:
Look elsewhere when:
metadata table.Diligence gate before any adoption: confirm the split's tags track the Enhavo release line, inspect composer.json for PHP/Symfony/Doctrine constraints, check whether Enhavo core actually consumes this package (load-bearing vs. orphaned helper), and read src/ to see whether it's contracts-only or a full bundle with ORM mappings and DI wiring.
To executives: This is a small, read-only module of the Enhavo CMS — not a product-ready dependency for our Laravel stack. It has no community, no independent release process, no support path, and no external adopters. That means adopting it isn't a library decision, it's a CMS selection decision. Doing nothing is low risk. Pulling it into a Laravel codebase in isolation would add a dependency we don't control, can't get help with, and would have to own outright the moment we fork it. Recommendation: don't adopt standalone; revisit only as part of a broader Enhavo evaluation. If the underlying capability — marketer-editable SEO metadata on content — is on the roadmap, we can deliver it natively in Laravel in roughly 1–2 engineer-weeks with full control and test coverage.
To engineering: Treat this as vendor code we don't own — a Symfony/Enhavo monorepo split (MIT, 0 dependents, 0 stars), so versioning, fixes, and issue triage live upstream. Two paths: (1) if we run Enhavo, consume metadata via the distribution and don't fork; (2) if we're on Laravel — which we are — extract the pattern, not the code: define our own metadata interface, back it with a polymorphic table or JSON column, wire it through Eloquent casts and a small admin surface, and keep it behind our own contract so a future swap is a one-file change. Run a half-day source audit first (composer constraints, coupling, storage format, whether Enhavo core consumes it) to confirm there's no non-trivial logic worth forking. Watch for the usual failure modes of foreign CMS components: Symfony version conflicts on framework upgrades, unserialize() in the storage path (object-injection surface), N+1 metadata fetches on listing pages, and silent schema drift if the package owns migrations. Budget a named internal owner either way — undocumented API plus single maintainer is a real handover risk.
How can I help you explore Laravel packages today?