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

Facehash Laravel Package

saade/facehash

Generate deterministic SVG avatar faces from any string in Laravel. Pure PHP output, no GD, Imagick, or external services needed. Consistent, unique avatars with sizes, shapes, colors, and variants.

View on GitHub
Deep Wiki
Context7
v1.3.0

What's changed

Fixed

  • Non-ASCII names now match the original facehash. The hash reads UTF-16 code units, like the JavaScript library, so names such as "Zoë" or "日本語" pick the same face, colour and tilt as upstream. ASCII names are unaffected.
  • colors([]) no longer crashes. An empty palette falls back to the configured palette, or to the shipped one if the config is empty too.
  • Both parts of an eye blink together. On the line face, the left dot used to blink out of step with its bar.
  • The HTTP route no longer sets cookies. It was served as publicly cacheable while the web middleware attached session and XSRF cookies to it. route.middleware now defaults to [].
  • The Facehash facade docblock now lists format().

Added

  • FaceSvgData::get() returns an eyes key naming the eye each path belongs to.
  • A Pest test suite, run in CI on PHP 8.2–8.5 against Laravel 11, 12 and 13.
  • A docs site and playground at https://facehash.saade.dev.

Upgrade notes

  • Avatars for names with non-ASCII characters will change, because the hash for those names changed. If you serve the HTTP route with the default one-year immutable cache, browsers and CDNs keep the old image until it expires.
  • If you published config/facehash.php, your copy still has 'middleware' => ['web']. Change it to [] to stop the route from setting cookies, unless you rely on session middleware there.
  • Markup without blink() is byte-for-byte unchanged. With blink(), the eye classes on some faces changed.

Full Changelog: https://github.com/saade/facehash/compare/v1.2.0...v1.3.0

v1.1.0

Release Notes

Full Changelog: https://github.com/saade/facehash/compare/v1.0.0..v1.1.0

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.
oxygen/auth
relicsoftware/barakah-payment-gateway
tobya/work-with-composer
equipc/laravel-email-validator
equipc/laravel-email-database-log
adedsec/nova-translated-labels
wazza/laravel-db-encryption
hokny/laravel-generator
vonsogt/backup
jengo/queues
jeremykenedy/laravel-observability
coleus/frame
thtg88/journalism
filagora/filagora-ai-forums
rlacerda83/query-parser
socialdept/atp-orm
cboxdk/laravel-assistant-client
socialdept/atp-resolver
socialdept/tenant-domains
tautvydasr/blade-class-names