torann/meta-tags
Meta tags manager for Laravel that adds SEO and social metadata to models and views with a fluent, configurable API. It handles titles, descriptions, Open Graph, and Twitter cards, keeping tag setup readable and centralized.
<head>. That is roughly a config array plus a Blade component. This package is worth adopting only if it saves more time than the fork-and-own cost, which for a package last released in January 2017 with 0 dependents and 6 stars is a genuine question rather than a formality.Consider adopting (or, more realistically, forking) when:
<meta> blocks are already causing drift.Look elsewhere or build in-house when:
<head>.<5 templates, that is the default answer.To executives: We are evaluating a small Laravel package that standardizes page metadata — the titles, descriptions, and social preview tags that shape how our pages appear in Google and when shared on Slack, LinkedIn, or X. The functional upside is real: fewer broken or missing descriptions, consistent social cards, and per-page metadata that marketing can own without an engineering ticket. The maturity picture is the deciding factor. It is at version 0.0.4, its last release was January 2017, it has no downstream dependents, and that final release was a fix for an incorrect description tag attribute — meaning core output was wrong in production for anyone using it. Recommendation: do not adopt as a dependency. Use it as a design reference, build the equivalent behind our own small metadata service, and revisit third-party options only if a maintained 1.0-class package emerges. Cost of building is on the order of days; cost of an unmaintained head-tag dependency is measured in a single bad deploy.
To engineering: The package does one thing well conceptually — a fluent API plus a @meta Blade directive, configurable defaults, section fallbacks, and per-page overrides, rendered once in the layout head. The implementation is the problem: pre-1.0, untouched since 2017, no dependents, and the last commit fixed the attribute key on <meta name="description">. Assume no meaningful test suite and no compatibility work for current Laravel. The pattern is worth stealing; the code is not worth depending on. If we build it ourselves, the spec is: a config file for site defaults (title suffix, default description, OG defaults), a per-request value object resolvable from a controller or model, one Blade component rendered exactly once in <head>, and feature tests asserting a single name="description" tag with correct escaping for quotes and non-ASCII. Wrap it so swapping implementations later is a one-file change. If someone insists on trialing the package anyway, pin the exact version, confine it to one non-critical marketing surface, run config:clear/view:clear after any config change, and audit the rendered head for duplicate description tags — the most common failure mode is a hand-written tag in the layout colliding with the package's output.
How can I help you explore Laravel packages today?