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

Laravel Meta Laravel Package

appstract/laravel-meta

Appstract Laravel Meta makes it easy to add, manage, and render SEO-friendly meta tags in Laravel apps. Define titles, descriptions, Open Graph and Twitter tags in PHP, then output them cleanly in your Blade views.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Custom fields / configurable attributes without schema churn. This package attaches arbitrary key–value metadata to any Eloquent model through a single polymorphic table. That directly supports roadmap items like "let admins add custom fields to products/customers/orders" without shipping a migration for every new attribute.
  • Build vs. buy for extensibility. The capability is genuinely small — a morph table, a trait, and get/set helpers. This package is best framed as a reference design for a ~1-day in-house implementation, not as a strategic dependency.
  • CMS and content metadata. SEO titles, Open Graph tags, canonical URLs, hero-image references, and per-post display flags are textbook uses — content teams can extend records without engineering involvement.
  • Multi-tenant and per-account customization. Tenant-specific settings, branding values, or feature toggles stored per model instead of per-column, keeping the core schema stable across customers.
  • Prototype/MVP acceleration. For a time-boxed discovery build on a legacy Laravel version, this removes an afternoon of plumbing and lets you validate whether customers actually use custom fields before investing in a first-class implementation.
  • De-risking schema decisions. Metadata stores absorb "we're not sure what attributes we need yet" — useful when product requirements are still being discovered and premature columns would be expensive to unwind.

Product caveat: it does not support the decisions most teams eventually want — filtering, sorting, and reporting on metadata at scale. Plan for that as a separate bet.

When to Consider This Package

Consider it when:

  • You are on legacy Laravel (5.x–6.x) with PHP 7.x, where its 2018-era constraints still resolve cleanly.
  • You need polymorphic key–value metadata across several unrelated models and want it working today.
  • The use case is low-volume, read-mostly, non-critical — SEO fields, display preferences, annotations.
  • You are explicitly prototyping and accept that the dependency will be replaced.

Look elsewhere — or build the ~100 lines yourself — when:

  • You are on Laravel 9/10/11+ or PHP 8.1+. Last release was January 2018 (~7 years), 129 stars, single-maintainer risk. Expect Composer constraint conflicts and no upstream fixes.
  • Metadata must be queryable, sortable, indexable, or reportable — native JSON columns with Eloquent casts and whereJsonContains() are the better answer and need zero dependencies.
  • You require typed values, validation, or audit trails — arbitrary key–value stores drift into untyped string soup fast.
  • Security or compliance review applies: unmaintained packages are a standing finding, and an abandoned dependency is hard to defend at audit time.
  • You need high write volume or bulk metadata operations — the per-model key lookups and JSON-ish storage won't hold up.

Rule of thumb: adopt the pattern, not the package. The in-house version is small, fully owned, and upgrade-proof.

How to Pitch It (Stakeholders)

To executives (30 seconds): This is a small open-source library that lets us bolt flexible "extra fields" onto any record in the app — custom product attributes, per-customer settings, SEO metadata — without a database migration each time. It would speed up our customization roadmap by roughly a day or two per feature. The catch: it was last updated in 2018, has ~129 stars, and is effectively unmaintained, so adopting it as a dependency creates upgrade and security-review risk. Recommendation: don't take the dependency. Copy the pattern into ~1 day of in-house code or use Laravel's built-in JSON columns. Same product outcome, no vendor risk, no maintenance tail.

To engineering: It's a polymorphic meta table plus a trait exposing get/set on any model. That's the whole product surface — a few dozen lines. We can reimplement it against JSON columns or a morph table in under a day, keep it on our Laravel version, and add the indexing and typed-value validation we'll want in v2. Treat the repo as a spec, not a dependency.

To design/product: Custom fields become cheap to ship and cheap to iterate on, but assume they'll be display-oriented at first. If the roadmap needs "filter and sort by custom field," budget that as a follow-on — it's not something this pattern gives us for free.

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.
uni-method/symfony-lib
tacticmedia/scim-server-bundle
neika-ai/symfony-bundle
mattleads/agent-publishing-bundle
glavweb/framework-bundle
glavweb/extra-bundle
glavweb/api-bundle
glavweb/admin-bundle
adachsoft/api-version-bundle
elsayed85/laravel-api-exceptions
ouhssini/laravel-demo-mode
daworks/ncloud-outbound-mailer-driver
gp247/cms
ignibyte/aic-gates
nexa-merchant/blog
novasa/laravel-language-center
opencage/geocode
adolfoholzer/parameters
livenetworks/ln-starter
cgv/localized-resource