nucleos/shariff-bundle
Symfony bundle that integrates Shariff, the privacy-friendly social sharing buttons. Adds share buttons for popular networks without tracking users, with configurable services, templates, and styling. Easy to install and customize for Symfony applications.
Consider it only under narrow conditions:
nucleos/shariff-bundle) wrapping the heise Shariff PHP library. It does not drop into Laravel. If your stack is Laravel, the honest answer is that this package is not a candidate — you would port the concept or use the underlying heise/shariff library behind a small custom endpoint.heise/shariff dependency.Look elsewhere when:
To executives: This is a small, well-understood pattern for adding social share buttons that do not hand user data to social networks on page load. It supports any public commitment we have made about trackers and cookie banners, and it removes a recurring legal review from the launch checklist. The specific package we evaluated is a Symfony bundle that has been archived since 2021 with negligible adoption, so I am not recommending we take it as a dependency. I am recommending we keep the pattern — server-side share-count proxy, two-click activation — as the reference design, and implement it in-house in roughly a week of engineering. That gives us the compliance benefit without inheriting an unmaintained third-party library.
To engineering: The bundle is a convenience wrapper around heise's Shariff PHP library — config, DI, and a count-fetching controller. It is Symfony-only and archived. For our Laravel services, don't try to adapt it; implement the same contract directly: a cached /shariff/counts endpoint that fans out to each network's count API with a short TTL and a hard timeout, plus front-end buttons that render an inert placeholder and only swap in the real network iframe/script after an explicit user click. That is the entire security-relevant behavior. Review the heise library's SSRF and caching behavior before copying its approach, and treat the count endpoint as untrusted-input-adjacent — it takes network identifiers from the client.
Bottom line for the decision log: Pattern approved, package rejected. Revisit if a maintained Symfony/Laravel integration appears; otherwise the in-house implementation is the lower-risk path.
How can I help you explore Laravel packages today?