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

Share Laravel Package

chencha/share

Chencha Share is a Laravel package for adding social media share links to your app. Generate share URLs for Facebook, X/Twitter, LinkedIn, WhatsApp, Telegram, Reddit, and more via a simple facade, with customizable titles and Blade-friendly output.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. Unchanged. chencha/share (published as prodeveloper/social-share) remains a single-purpose presentation utility: it assembles outbound social-share URLs and exposes them through Laravel's idiomatic extension points — service provider, facade/helper, Blade directives, publishable config. It touches no domain model, persistence layer, or request pipeline, so adoption or removal carries no architectural entanglement. Blast radius stays confined to view rendering.

Integration feasibility. The mechanics remain low-effort (composer require, auto-discovery, optional config publish, Blade usage), but the release materially changes the feasibility gate: 6.1.0's only change is Laravel 9.x compatibility. If our target runtime is Laravel 10/11/12, this release does not move us forward — it confirms the package's supported ceiling sits roughly three majors behind the ecosystem. Installability on our platform is now the first thing to test, not an assumption to carry into the spike.

Technical risk. The risk profile shifts but does not improve in aggregate:

  • Maintenance staleness — partially mitigated, directionally negative. 6.1.0 is the first tagged release since 2022-03-31 and restores a maintenance signal, but the contribution is an automated Laravel Shift PR from a first-time contributor, not evidence of active stewardship or a roadmap. It also reveals the rate of catch-up: the project is now patching in support for a framework version the wider ecosystem has already moved past.
  • Version ceiling — new, and potentially blocking. A Laravel 9 constraint means installing on Laravel 10+ likely requires a fork, a composer constraint override, or abandoning the dependency. Overriding constraints on an untested combination is not an acceptable production posture for a package we have already flagged as low-adoption.
  • Low adoption — unchanged. Still minimal dependents and stars; edge cases (URL encoding, non-ASCII text, locale hosts, mobile share intents) remain unvalidated by production use.
  • External drift — unchanged and now the dominant residual risk. 6.1.0 contains no share-URL template updates. Platform share endpoints (X's post-Twitter transition, Meta's dialog parameters, query-string deprecations) have continued to move since 2022. The release fixes framework plumbing, not the thing that actually produces value.
  • Weak observability — unchanged. Broken share links fail silently client-side; no server-side signal, no alerting.
  • Package identity — worth confirming. The assessment names chencha/share; the release originates from prodeveloper/social-share. Confirm we are tracking the correct upstream, namespace, and Packagist entry before any fork decision — this is a five-minute check that prevents forking the wrong lineage.

Key questions.

  1. Does 6.1.0 raise the constraint to 9.x only, or does it widen the range to include 10/11/12? Read composer.json directly — do not infer from the changelog.
  2. If the ceiling is 9.x: what is our target Laravel version at launch, and does that make this dependency installable at all without a fork?
  3. Are the share URL templates config-driven and overridable without forking, so we can patch a single drifted platform without waiting on upstream?
  4. Which platforms have actually changed their share endpoints since 2022, and does the package's template set still match current documentation?
  5. Fallback decision: fork under an internal namespace (MIT permits), vendor, or replace with a ~50-line first-party helper — pre-approved, not negotiated under incident pressure?
  6. Do we need UTM/attribution on share links, which the package does not provide?
  7. Is chencha/share the same lineage as prodeveloper/social-share, and are we pinned to the correct one?

Integration Approach

Stack fit. Unchanged in principle: a good fit for server-rendered Blade views with static share links; a poor fit for rich previews (og: metadata), native share sheets, or attribution — all adjacent concerns out of scope.

Migration path. The adapter recommendation hardens into a requirement. Wrap the package behind a first-party ShareLinkService or Blade component that we own and expose to views; no template calls the vendor API directly. Publish the config into version control so template overrides are reviewed as code. The wrapper is what makes a fork-or-replace decision a one-file change rather than a refactor.

Compatibility. This is now the gating item, not a checklist line:

  • Run composer require against our actual Laravel/PHP matrix first. If it does not resolve cleanly on our target major, stop — the build-vs-adopt calculus is already decided.
  • Do not accept a --ignore-platform-reqs or hand-edited constraint as the install path for anything reaching production.
  • Confirm config completeness for every platform we ship, and that adding a platform is config-only.
  • Validate encoding for Unicode, ampersands, and nested query strings.
  • Re-validate each generated URL against current platform share documentation — the release did not do this for us.

Sequencing.

  1. Day 1 — Installability gate. Attempt install on the target Laravel/PHP version. Clean → continue. Not clean → skip to step 5 (fork or reimplement); do not spend the spike budget defending a 2022 template set.
  2. Day 1–2 — Spike. Render all target platforms in a feature branch and diff generated URLs against live platform documentation and a manual share test.
  3. Day 2 — Encapsulation. Wrap behind our own service/component; zero direct vendor calls from views.
  4. Week 1 — Config hardening and CI assertions. Pin config; add unit tests asserting exact URL output per platform; add hostile-input encoding tests.
  5. Week 1 — Decision gate (moved earlier and biased toward replacement). Adopt as-is only if installability is clean and templates verify against current platform behaviour. Otherwise fork under an internal namespace or fall back to the first-party helper. Given the surface area is ~50 lines of string assembly and the upstream has just demonstrated a three-major lag, replacement is now the default-leaning option, not the contingency.
  6. Post-launch. Synthetic link-health checks on share URLs to catch template rot, since upstream clearly will not.

Operational Impact

Maintenance. The stewardship cost is now clearer and slightly higher than previously estimated. The 6.1.0 signal tells us to expect slow, automated, lagging maintenance rather than active curation — meaning we should assume we own the share-URL templates in practice, whoever holds the copyright. Keep the quarterly review, but reframe it: verify platform documentation against our templates (the part upstream is not doing), and verify the package still installs on our framework version. Pre-approve the fork so it is a scheduled decision rather than an emergency one.

Support. Unchanged: community-only, no SLA, no security response process, no deprecation notices. Still tolerable only because the failure mode is cosmetic (a broken share link) rather than functional or security-critical — document that assumption explicitly, and revisit it if share links ever become a tracked conversion channel.

Scaling. Unchanged and effectively zero. String assembly, no I/O, no external calls, no state. The only concern is caching: generate per-render or cache alongside the page, never fetch from a third party at request time.

Failure modes.

  • Version ceiling — newly elevated. Cannot install or upgrade on Laravel 10+; surfaces as a blocked framework upgrade rather than a broken feature. Mitigated by the adapter boundary plus a pre-approved fork.
  • Silent template rot — still the highest-probability failure, and 6.1.0 did nothing to address it. Mitigated by CI URL assertions and synthetic link checks.
  • Encoding bugs — malformed URLs from unescaped titles; mitigated by unit tests with hostile input.
  • Config drift — published config diverging from upstream unnoticed; mitigated by treating config as reviewed code.
  • No attribution — share traffic invisible without UTM parameters we add ourselves; plan for it in analytics, not in the package.
  • Upstream identity confusion — forking or pinning the wrong lineage; mitigated by a one-time verification of the Packagist entry.

Ramp-up. Still negligible. A Laravel developer is productive within an hour; the real onboarding content is our wrapper's interface and the platform-template test suite. Document the encapsulation decision so future engineers do not call the vendor API directly and re-couple the codebase.

TPM recommendation. Downgrade from adopt conditionally to replace-or-fork by default, adopt only on a clean installability result. Release 6.1.0 is a maintenance signal, not a capability improvement: it extends support to Laravel 9 while leaving our likely target (10/11/12) unaddressed, and it ships no share-URL template updates against three years of platform drift. The opportunity score (7.11) still reflects a real, common need; the low overall score (3.12) is now better justified. Because the package's entire value is a handful of query-string templates, the defensible position is to treat 6.1.0 as a reference implementation to vendor or reimplement — take the template set, own the code, and stop carrying the dependency unless the compatibility check on our target runtime is unambiguously clean.

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.
skyraptor/chatter
edlugz/sasapay
abbasudo/artisan-route
mirvan/ippanel
ignibyte/aic-framework
glavweb/data-schema-bundle
glavweb/datagrid-bundle
tacticmedia/scim-server
uni-method/frame
neika-ai/sdk
adachsoft/php-code-style
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
adachsoft/api-version-bundle
cgv/localized-resource