webnuvola/laravel-json-ld
Laravel JSON-LD makes it easy to generate Schema.org structured data in your applications. Build and output rich, search-engine-friendly JSON-LD markup with a fluent API, so you can add valid structured data to your views and improve SEO without hand-writing scripts.
Architecture fit
No prior assessment exists for this package, so v2.2.0 establishes the baseline. The release notes describe a platform-support release only: no API, config, schema, or behavioural changes are declared. For a TPM this reads as a compatibility-metadata change rather than a functional one, which is good news for integration cost but bad news for version-management hygiene — the package's supported footprint has narrowed in a patch/minor slot.
The net supported matrix after v2.2.0 is approximately:
| Dimension | Dropped | Retained | Added |
|---|---|---|---|
| PHP | 8.1, 8.2 | 8.3 | 8.4, 8.5 |
| Laravel | 9 | 10, 11 | 12, 13 |
This is a de facto major release shipped as 2.2.0. Dropping PHP 8.1/8.2 and Laravel 9 changes the install contract for a meaningful share of any established estate. Treat it internally as a breaking change for planning purposes, regardless of the version number.
Integration feasibility
Feasible but conditional on the host application's own upgrade state. The package cannot be adopted in isolation: it is gated behind whatever PHP and Laravel versions the consuming service already runs. A team on Laravel 9 / PHP 8.1 must complete two framework hops (9 → 10 → 11/12) and at least two PHP hops before this package version is even installable. Teams already on Laravel 11 / PHP 8.3 get this for free.
Two behaviours to verify before committing:
composer.json require, Composer will refuse installation and resolve to the newest compatible 2.1.x — safe but silent. If it is only reflected in CI matrices without constraint changes, consumers can install an untested combination. Confirm which.Technical risk
composer update will quietly hold at 2.1.x. Teams may believe they are current. Without an inventory check this is invisible.Key questions
composer.json require, or advisory only?Stack fit
The package remains a standard Laravel library dependency — no runtime services, no infrastructure footprint. Fit is determined entirely by the host application's platform version. Segment the estate into three buckets:
Migration path
Compatibility
Sequencing
Phase 1 (week 1–2): inventory, publish the version matrix, obtain the maintainer's 2.1.x support statement. Phase 2 (weeks 2–8): platform upgrades for Amber and Red services, prioritised by exposure. Phase 3 (ongoing): adopt 2.2.0 as services land, then lock in a recurring dependency-review checkpoint so future platform drops are caught at release rather than at audit.
Maintenance
The maintainer's test matrix has narrowed, which reduces their cost and should improve confidence in what is supported. The cost transfers to consumers, who now own a fragmented installed base across 2.1.x and 2.2.x. Establishing a single supported version in production is worth real effort — every additional live version multiplies upgrade and incident-diagnosis work later.
Support
The absence of a published end-of-support commitment for 2.1.x is the primary operational gap in this release. Request one and record it as a tracked dependency risk with an owner and review date. If none is forthcoming, plan to eliminate 2.1.x from production on a self-imposed deadline rather than an indefinite hold.
Scaling
No runtime, throughput, or resource implications — this is a compile-time dependency contract. "Scaling" here means scaling governance: as the number of services grows, the cost of a per-service version audit grows with it. Automate the inventory (a scheduled composer show sweep or dependency dashboard) before the estate is large enough to make manual tracking untenable.
Failure modes
| Failure mode | Impact | Detection | Mitigation |
|---|---|---|---|
| Silent pin to 2.1.x on PHP 8.1/8.2 | Unpatched dependency, false sense of currency | Inventory sweep; CI check that resolved version matches expected | Explicit constraints; alert on version drift |
| Composer resolution deadlock with other packages | Blocked framework upgrade | Pre-flight resolution in a branch | Map the dependency graph before scheduling |
| 2.1.x stops receiving security fixes unannounced | Security exposure on unsupported stacks | Maintainer advisory monitoring | Demand written EOS date; set internal deadline |
| Pre-GA validation of Laravel 13 / PHP 8.5 | Runtime surprises on newest platforms | Staged rollout, staging soak | Do not adopt 8.5/13 as baseline until proven |
| Untested PHP/Laravel combination installed | Subtle runtime defects | CI matrix enforcement | Treat supported matrix as a hard allowlist |
Ramp-up
Low. No new APIs or configuration to learn; developer-facing effort is limited to dependency and platform upgrades teams were already facing. The real ramp-up is organisational: getting dependency policy to treat platform-support drops in minor versions as reviewable events, and getting the maintainer's support commitments documented.
TPM recommendation: Adopt v2.2.0 as the target state, but do not treat it as an isolated upgrade. It is a forcing function for a platform-version programme that a portion of the estate needs regardless. Fund Phase 1 (inventory plus the maintainer support question) immediately — it is cheap and it converts an invisible risk into a scheduled one. Gate the rest on the resulting matrix.
How can I help you explore Laravel packages today?