kudashevs/laravel-share-buttons
Add social share buttons to any Laravel app with this package. It offers configurable button components and Blade directives for popular social networks, so you can customize links, icons, and appearance while keeping your templates clean and maintainable.
Architecture fit. kudashevs/laravel-share-buttons is a presentation-layer utility: it renders social share links (Facebook, X/Twitter, LinkedIn, Reddit, Telegram, etc.) into Blade views from a config-driven template set. It has no persistence, no queue workers, no scheduled jobs, and — based on the package's documented behaviour — generates share URLs locally rather than calling provider APIs at runtime. That makes it architecturally inert: it touches only the view layer, adds no infrastructure, and can be adopted or removed per-template without data migration. Fit is high for any Laravel app that surfaces share affordances on content pages; fit is nil if share links are already hand-rolled in Blade partials or fronted by a JS share library.
Integration feasibility. v7.0.0 raises the floor to Laravel 12.0 / PHP 8.2, which is exactly Laravel 12's own platform requirement — so the package adds no incremental constraint beyond the framework itself. Adoption is a single composer require kudashevs/laravel-share-buttons:^7.0 plus optional config/view publishing. The PHPUnit 11 bump is a require-dev change and has no effect on consuming applications; it matters only as a signal that the package's CI is modernised (and as a blocker if we ever fork and run the package's own suite).
Technical risk. Low functional risk, elevated version-gating risk. This is a major version number driven entirely by platform floors, not by API redesign — the release notes disclose no breaking change to config keys, view namespaces, facade signatures, or the public render API. The genuine risks are:
Key questions.
v6.1.1...v7.0.0 before adoption.6.x branch exist for apps staying on Laravel 10/11, or is v6.1.1 effectively end-of-life?Stack fit. Requires Laravel 12.0+, PHP 8.2+ (8.5 explicitly supported). This aligns with the framework's own floor, so a Laravel 12 application can adopt it with zero additional platform pressure. Applications on Laravel 10/11 must stay on v6.1.1 — no workaround exists short of a fork with a widened constraint, which is not recommended for a package this thin.
Migration path.
| Current state | Action |
|---|---|
| Not yet using the package | Adopt ^7.0 only after the host app is on Laravel 12 / PHP 8.2+ |
On ^6.x, app on Laravel 10/11 |
Stay on 6.1.1; treat as frozen. Track the Laravel 12 upgrade as the trigger for v7 |
On ^6.x, app already on Laravel 12 |
Upgrade 6.x → 7.0 — expected to be a constraint-only bump; verify against the diff |
On ^6.x, app upgrading to Laravel 12 |
Sequence the package bump inside the framework upgrade branch, not as a follow-up |
Migration steps: bump the constraint, run composer update kudashevs/laravel-share-buttons, re-publish config/views only after diffing published assets against the new defaults (published copies do not auto-update), then smoke-test every template that renders share buttons.
Compatibility. Treat the matrix as: Laravel 12 ↔ v7 only; Laravel ≤11 ↔ v6.1.1 only. Cross-major installs will fail at the Composer solver rather than at runtime — a loud, safe failure. PHP 8.5 support is additive and does not constrain the PHP 8.2–8.4 range.
Sequencing. Because v7 is gated on Laravel 12, the release is a downstream artefact of the framework upgrade, not an independent workstream. Fold the package bump into the Laravel 12 upgrade ticket; do not open a separate initiative. If the Laravel 12 upgrade is not on the roadmap, this release requires no action beyond recording the v6.1.1 pin and its EOL status.
Maintenance. Near-zero steady-state cost: no migrations, no runtime services, no data to back up. The maintenance exposure is upstream, not internal — a single-maintainer package with a major-version history driven by framework floors. Budget a lightweight quarterly check of the repo (releases, open issues, last commit) rather than continuous tracking. The PHPUnit 11 bump means our own CI adds nothing; if we fork for any reason, our test tooling must be on PHPUnit 11+.
Support. Internal support surface is limited to "share links render correctly." The realistic support burden is not the package but the providers: share endpoint URLs change (the Twitter→X domain transition, Meta deprecating legacy sharer endpoints), and when they do, the fix lands upstream or not at all. Confirm we have an owner for "share buttons look broken" tickets and an accepted fallback (hand-rolled Blade partial with hardcoded provider URLs — a sub-day reimplementation given the package's scope).
Scaling. No scaling concerns. Rendering is string templating in the view layer; it adds no queries, no I/O, and no cache pressure. Cost scales linearly and negligibly with page views. The only scaling-adjacent caveat is that share buttons are static markup — if marketing wants per-user or per-campaign share attribution, this package will not provide it and a client-side sharing library becomes the better answer.
Failure modes.
Ramp-up. Effectively zero for any Laravel developer: install, optionally publish config, drop a Blade directive/component into a template. Documentation is the README; no training, no architectural onboarding. The only knowledge worth capturing is the operational note that this package is pinned in lockstep with the framework major and that published assets require manual reconciliation on upgrade.
Recommendation. Adopt ^7.0 as part of the Laravel 12 upgrade; take no independent action if Laravel 12 is not yet planned. Treat the release as a maintenance/compatibility milestone rather than a feature delivery, and close out questions 1 and 2 before merging the bump.
How can I help you explore Laravel packages today?