codedor/filament-social-media-links
A Filament plugin that adds a social media links field and repeater to your forms, letting you manage and display social profiles with configurable platforms and icons.
Scope of this review. This is a baseline assessment: there is no prior assessment and no repository data beyond the v2.2.0 release notes. Conclusions are therefore weighted toward what the changelog implies about the package's maturity and change surface, not toward a code audit. Recommendation: complete a short technical spike before committing to the package.
Architecture fit. wotzebra/filament-social-media-links is a Filament panel plugin that manages social media links and emits structured data (JSON-LD) for SEO. Architecturally it sits in the presentation/configuration layer of a Laravel app: a Filament page/resource for editing links, a settings/config surface, and a Blade render path that outputs markup and schema.org data. That is a low-coupling, additive integration — it does not own domain data, does not introduce queues, jobs, or new persistence beyond its own settings/migrations, and does not sit on a request-critical path beyond view rendering. For a TPM, the relevant framing is that this is a content/SEO surface dependency, not a transactional dependency. Blast radius if it misbehaves: incorrect or missing structured data on public pages, not failed checkouts.
Integration feasibility. High on the surface. The v2.2.0 changelog contains one functional change and two CI dependency bumps:
logo value is now derived from a configured model rather than whatever the prior fallback was. This is a genuine behavioral change to public-facing output.actions/checkout and dependabot/fetch-metadata — CI-only, no runtime impact. Positive signal: automated dependency hygiene is active.The functional change is small in code terms but user-visible in SEO terms. It implies the package already had a notion of a "configured model" for the logo, and that logo resolution was previously inconsistent with it. That is a bug fix in intent, but it changes rendered JSON-LD, so it must be treated as an output-contract change during verification.
Technical risk. Overall: low-to-moderate, concentrated almost entirely in the logo resolution change.
logo key, emit an empty string, or throw? An empty or invalid logo in Organization JSON-LD can produce structured-data validation warnings in Search Console — low severity but a real SEO surface.Key questions to resolve before adoption.
composer.json?Stack fit. Designed for Laravel + Filament panels. It assumes Filament is already in the stack; it is not a standalone package. Fit is best where social links and organization-level JSON-LD are currently maintained by hand in Blade templates — that is precisely the manual work this plugin displaces, and the case where the "configured model" logo fix is a net win because it removes a hardcoded asset path.
Migration path. Additive and reversible:
composer require wotzebra/filament-social-media-links:^2.2 in a branch.vendor:publish tags; diff published config against any existing hardcoded social link / JSON-LD implementation.Organization schema.Compatibility. Verify the declared Filament constraint against the target panel version before writing code — this is the most common hard stop for Filament plugins. Also confirm PHP floor against the app's runtime. The two Dependabot entries in v2.2.0 indicate GitHub Actions dependencies only; they impose no runtime constraint and require no action from adopters.
Sequencing.
Maintenance. Low steady-state burden: no background processes, no queues, no external service calls. The main ongoing cost is Filament major-version upgrades, which for panel plugins typically require a coordinated bump. Active Dependabot usage (two bumps in this release alone) is a positive maintenance signal but also a reminder that CI-only churn will appear in changelogs and should not be mistaken for functional change during release review.
Support. Support surface is narrow: social link CRUD in the panel, plus structured data on public pages. The realistic support tickets are "the logo in our schema is wrong/missing" and "social icons changed appearance after a Filament upgrade." Both are diagnosable from configuration and a single rendered page. Assign ownership to whoever owns the marketing site / SEO surface rather than to platform engineering.
Scaling. Negligible. Rendering cost is a small Blade partial plus JSON encoding per page view; this is not a scaling concern at any realistic traffic level. If structured data is built per request and includes model lookups for the logo, confirm the model read is cached or eager-loaded to avoid an extra query on high-traffic public pages — the one place where this release's change could have a measurable, if small, performance effect.
Failure modes.
Organization structured data; silent degradation in search presentation, no user-facing error. Highest-probability failure and the one introduced by v2.2.0.Ramp-up. Low. A developer familiar with Filament can install, configure, and verify in well under a day. The only non-obvious knowledge is the logo resolution chain introduced in v2.2.0, which should be captured as a one-paragraph internal note (config key → model → attribute → rendered JSON-LD) so it is not rediscovered on the next upgrade.
Release-review verdict for v2.2.0. Adopt. No breaking changes are signalled by the minor version, the CI bumps are inert, and the logo fix aligns rendered structured data with configured intent. The only action item is verification, not remediation: confirm the logo resolution behaves correctly when the model has no logo, and capture the before/after JSON-LD for your own reference.
How can I help you explore Laravel packages today?