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

Filament Dicebear Laravel Package

leek/filament-dicebear

DiceBear avatar provider for Filament panels, supporting all 31 DiceBear styles with caching, per-model customization, and self-hosted instances. Just register the plugin and provider to give users without custom avatars a generated DiceBear avatar.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Roadmap prioritization of "polish" work. This is a half-day, reversible UX improvement for an existing Filament admin panel — the kind of item that sits in the backlog forever because it's never urgent. Framing it as a 1-day timebox with a config flag makes it decidable instead of debatable.
  • Build vs. buy on avatar fallbacks. The realistic in-house alternative is ~50–150 lines of SVG initials generation plus caching, or leaving Filament's default remote avatar service in place. This package buys the "nice" version (61 styles, per-model customization, disk caching, native PHP rendering) for a Composer dependency and one panel registration. Build only if you specifically want deterministic, brand-neutral initials and nothing else.
  • A privacy/compliance decision, not just a cosmetic one. The v2 default renders in-process, so no user identifier leaves your infrastructure. That's materially different from seeding a third-party HTTP avatar API with an email address — which is a PII egress question that would otherwise go to legal. Choosing the native driver and seedUsing(fn ($record) => $record->id) should be an explicit, documented decision.
  • Product segmentation of identity. Per-model style overrides let you encode product semantics in visuals: humans get human-ish styles, service/bot/system accounts get bottts-neutral, tenant-level entities get something distinct. This measurably helps admins scan large tables and reduces mis-targeted actions in support workflows.
  • Brand ownership vs. stock characters. Custom style definitions (->customStyle('brand', $path)) allow an owned avatar language rather than shipping DiceBear's stock art in a customer-facing surface. Useful if avatars will ever appear outside the admin panel.
  • Where it does not replace anything. It fills gaps for users without an uploaded photo; it is not an upload/media pipeline. Pair it with your existing upload flow (getCustomAvatarUrl()) and treat it as the fallback layer.
  • Upgrade-cost budgeting. v2 is a major release with breaking changes (scale() semantics, removed getters) and a deprecation list scheduled for removal in 3.0. Adopting means accepting a future maintenance line item — pin the version and schedule a review before any 3.0.

When to Consider This Package

Adopt when all of the following hold:

  • You run Filament v3/v4/v5 and already have HasAvatar models, so integration is registration plus a trait — no schema, no migration, no data model change.
  • You want zero outbound network dependency for avatar rendering in admin/back-office surfaces, or you're willing to self-host DiceBear.
  • A single-maintainer, MIT, small-footprint package is acceptable for a non-critical, purely presentational layer — blast radius on removal is one line in the panel provider.
  • Your team can own the upgrade path; you're not buying a support contract.

Look elsewhere (or build) when:

  • Continuity risk is disqualifying. 6 stars, 0 dependents, one maintainer. For a regulated or long-lived product, that's a supply-chain note your security review will raise. Mitigation: vendor the cache path, pin the tag, and be ready to swap to a trivial in-house initials generator.
  • Style licensing needs legal sign-off. Roughly half the styles are CC BY 4.0, which carries an attribution obligation — that's a real product decision if avatars are user-visible in a commercial surface. Stick to CC0/MIT collections (Thumbs, Shapes, Identicon, Initials, Rings, Notionists, Lorelei) to sidestep it.
  • You need raster output, email/PDF avatars, or a CDN-cached image URL contract. PNG/JPG/WebP/AVIF go through the HTTP driver, reintroducing the network path v2 was designed to avoid.
  • You need accessibility-first or deterministic identity — plain initials, no illustration — where stock characters would read as unprofessional in an enterprise context.
  • You want an avatars-as-a-feature (upload, crop, moderation, per-tenant branding) rather than a fallback.

How to Pitch It (Stakeholders)

To executives (one paragraph): A small open-source add-on that gives every admin-panel user a distinct generated avatar when they haven't uploaded a photo. Roughly half a day of engineering, no database changes, no new vendor, and removal is a one-line revert. The v2 release renders avatars inside our own application, so no user data is sent to a third party. Main caveats: it's a single-maintainer package (pinned version, low blast radius) and some included art styles carry an attribution requirement we can avoid by selecting CC0 styles. Ask: approve as a timeboxed polish item, behind a config flag, with no roadmap slot committed beyond one day.

To engineering: composer require leek/filament-dicebear, register DiceBearProvider as the default avatar provider and DiceBearPlugin in the panel provider, optionally publish config. Use the native (default) driver — no HTTP calls, no rate limits. Enable disk caching (already default) and use the model id as seed. Pin the tag; v2 has breaking changes from v1 and a 3.0 deprecation list. Add a test asserting cache-file stability across config change (their 1.1.0 fix addressed exactly this class of bug).

Success measures for the pilot: reduction in "no avatar / broken image" reports, admin time-to-identify in user-heavy tables, zero external requests from admin pages, cache hit rate above ~95% after warm-up, and no measurable page-render regression.

Decision framing: treat this as reversible, cosmetic, and cheap. Say yes to the pilot, no to depending on it for anything identity-critical.

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.
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel
draftsmaninc/draftsman
square-bit/laravel-volition
himito/laravel-mailman
htinlynn/genius-helper
maco-studios/hephaestus
elmogy/larafast
xeviant/laravel-paystack
gorilladash/laravel-website-sdk
martialbe/flysystem-oss
chondal/3312client
jeroen-g/flickr
opscale-co/nova-genbi
itsjustvita/laravel-retention
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log