Deterministic placeholder avatars, reimagined from avvvatars. Zero-dependency core powering React (RSC-safe), Vue, Svelte, Web Components and a CLI — same seed, same face, forever. Adds adaptive dark mode, 7 themes, 5 styles, and static SVG/PNG export.
No reviews yetBe the first to leave a review for Seedface — a face for every seed
Maker
📌
Hey PH! 👋
I kept reaching for avvvatars whenever I needed placeholder avatars. Great shapes, but it was built for one environment, and I needed the same thing across React (Server Components too), Vue, Svelte, plus a standalone Web Component, without dragging framework code into every project.
So I rewrote the engine from scratch. A zero-dependency core that spits out plain SVG, with a deterministic hash (cyrb53 + mulberry32) so the same seed always gives the same face, on any machine, forever. On top of that I added adaptive dark mode (same user, same identity in light or dark), 7 themes, 5 styles (character, shape, gradient, rings, pixel), and a CLI to export static SVG/PNG for emails, OG images, favicons, whatever needs a flat file.
The 60 original shapes are from avvvatars (full credit in the README, MIT licensed). Everything else is built on top of that foundation.
Curious what people think: which style do you like best, character, shape, or pixel? And if you're using deterministic avatars somewhere, what's the actual problem you need solved?
Feel free to share your thoughts :)
Report
Finally got tired of mismatched avatars in my projects and this nailed it. Seeded the same string across the React and Svelte examples and got identical faces, which is honestly the only thing that matters here.
Report
Maker
@nurgldurmalgvw Thanks Nurgül! That's exactly the core promise, same seed, same face, no matter which wrapper you're using (React, Vue, Svelte, Web Components, or the raw CLI). Glad it held up in your testing 🙏
Report
The RSC-safe React build is a really thoughtful touch since most avatar libs still trip on server components. Love that the same seed gives identical output across every framework too.
Report
Maker
@salihaamhx Thank you for your feedback! I really appreciate it!
Finally got tired of mismatched avatars in my projects and this nailed it. Seeded the same string across the React and Svelte examples and got identical faces, which is honestly the only thing that matters here.
@nurgldurmalgvw Thanks Nurgül! That's exactly the core promise, same seed, same face, no matter which wrapper you're using (React, Vue, Svelte, Web Components, or the raw CLI). Glad it held up in your testing 🙏
The RSC-safe React build is a really thoughtful touch since most avatar libs still trip on server components. Love that the same seed gives identical output across every framework too.
@salihaamhx Thank you for your feedback! I really appreciate it!