PHPackages                             arrratars/laravel - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Image &amp; Media](/categories/media)
4. /
5. arrratars/laravel

ActiveLibrary[Image &amp; Media](/categories/media)

arrratars/laravel
=================

Beautifully crafted unique avatar placeholders for Laravel. A Laravel/PHP port of avvvatars. Deterministic SVG avatars generated from any string input. 60 shapes, 20 color palettes, zero dependencies.

v1.0.0(1mo ago)02MITPHPPHP ^8.1

Since Apr 27Pushed 1mo agoCompare

[ Source](https://github.com/OGRakan/arrratars)[ Packagist](https://packagist.org/packages/arrratars/laravel)[ RSS](/packages/arrratars-laravel/feed)WikiDiscussions main Synced 1w ago

READMEChangelogDependencies (4)Versions (2)Used By (0)

Arrratars
=========

[](#arrratars)

### Laravel/PHP port of [avvvatars](https://github.com/nusu/avvvatars)

[](#laravelphp-port-of-avvvatars)

Any text in → SVG avatar out. Use anywhere.

---

> **This project is literally [avvvatars](https://github.com/nusu/avvvatars) but for Laravel/PHP.**
>
> Same algorithm. Same 60 shapes. Same 20 color palettes. Same deterministic output.
>
> All credit for the original design, shapes, and color system goes to:
>
> - [Nusu Alabuga](https://github.com/nusu) (creator)
> - [Oguz Yagiz Kara](https://twitter.com/oguzyagizkara)
> - [Monika Michalczyk](https://www.monikamichalczyk.com/) (shapes design)
>
> Original repo: ****

---

What it does
------------

[](#what-it-does)

Pass any string → get a unique, deterministic **SVG** avatar.

The output is pure SVG. Not tied to Blade. Not tied to HTML. Use it literally anywhere.

---

Installation
------------

[](#installation)

```
composer require arrratars/laravel
```

Service provider is auto-discovered. Optionally publish the config:

```
php artisan vendor:publish --tag=arrratars-config
```

---

Quick Start
-----------

[](#quick-start)

```
use Arrratars\Laravel\Facades\Arrratars;

// Get SVG string
$svg = Arrratars::svg('user@email.com');

// That's it. $svg is a complete ... string.
```

---

All The Ways You Can Use It
---------------------------

[](#all-the-ways-you-can-use-it)

### 1. API Endpoint (return as image)

[](#1-api-endpoint-return-as-image)

```
// routes/api.php
Route::get('/avatar/{value}', function (string $value) {
    return response(Arrratars::svg($value, ['style' => 'shape', 'size' => 128]))
        ->header('Content-Type', 'image/svg+xml')
        ->header('Cache-Control', 'public, max-age=31536000');
});
```

Now you can do:

```

```

---

### 2. Save to S3

[](#2-save-to-s3)

```
use Illuminate\Support\Facades\Storage;
use Arrratars\Laravel\Facades\Arrratars;

Storage::disk('s3')->put(
    'avatars/user123.svg',
    Arrratars::svg('user@email.com', ['size' => 256, 'style' => 'shape'])
);
```

---

### 3. Save to local disk

[](#3-save-to-local-disk)

```
Arrratars::saveTo('user@email.com', storage_path('app/avatars/user.svg'));

// PNG (requires Imagick extension)
Arrratars::saveTo('user@email.com', storage_path('app/avatars/user.png'), [
    'format' => 'png',
    'size' => 256,
]);
```

---

### 4. Store in database

[](#4-store-in-database)

```
$user->avatar_svg = Arrratars::svg($user->email, ['style' => 'shape', 'size' => 128]);
$user->save();
```

---

### 5. Use in `` tag via base64

[](#5-use-in-img-tag-via-base64)

```
$src = Arrratars::toBase64('user@email.com', ['size' => 64]);
// → data:image/svg+xml;base64,PHN2ZyB4bWxu...
```

```

```

---

### 6. Inline SVG in Blade

[](#6-inline-svg-in-blade)

```
{!! arrratars('user@email.com') !!}

{!! arrratars('user@email.com', ['style' => 'shape', 'size' => 48]) !!}
```

---

### 7. Blade component

[](#7-blade-component)

```

```

---

### 8. Helper functions

[](#8-helper-functions)

```
$svg = arrratars('anything');              // returns SVG string
$base64 = arrratars_base64('anything');    // returns data:image/svg+xml;base64,...
```

---

### 9. In JSON API responses

[](#9-in-json-api-responses)

```
// app/Http/Controllers/UserController.php
public function show(User $user)
{
    return response()->json([
        'name' => $user->name,
        'avatar_svg' => Arrratars::svg($user->email, ['style' => 'shape']),
        'avatar_url' => url('/api/avatar/' . $user->email),
    ]);
}
```

---

Options
-------

[](#options)

OptionTypeDefaultDescription`style``'character'` | `'shape'``'character'`Initials or SVG shape`size`int32Size in pixels`display_value`stringnullOverride the 2-letter text`shadow`boolfalseDrop shadow`border`boolfalseBorder ring`border_size`int2Border width`border_color`string`'#fff'`Border color`radius`intsizeBorder radius (circle by default)---

Methods
-------

[](#methods)

MethodReturnsDescription`svg($value, $options)``string`Complete SVG markup`render($value, $options)``string`Alias for `svg()``toBase64($value, $options)``string`Base64 data URI for img src`toDataUri($value, $options)``string`URL-encoded data URI`toPng($value, $options)``string`PNG binary (needs Imagick)`saveTo($value, $path, $options)``bool`Write to file---

How the output looks
--------------------

[](#how-the-output-looks)

The `svg()` method returns a self-contained SVG like this:

```

  JD

```

No external dependencies. No CSS required. No JavaScript. Works everywhere SVG is supported.

---

Credits
-------

[](#credits)

PHP/Laravel port of [avvvatars](https://github.com/nusu/avvvatars). All design, shapes, and colors belong to the original avvvatars team.

License
-------

[](#license)

MIT

###  Health Score

37

—

LowBetter than 81% of packages

Maintenance91

Actively maintained with recent releases

Popularity2

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity42

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

44d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/21db16584382b909597a5352281be495da7f472019eb3a78483d955e8f690c99?d=identicon)[OGRakan](/maintainers/OGRakan)

---

Top Contributors

[![OGRakan](https://avatars.githubusercontent.com/u/52115693?v=4)](https://github.com/OGRakan "OGRakan (2 commits)")

---

Tags

laravelsvgcomponentavataridenticonplaceholderprofile pictureuser avataravvvatars

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/arrratars-laravel/health.svg)

```
[![Health](https://phpackages.com/badges/arrratars-laravel/health.svg)](https://phpackages.com/packages/arrratars-laravel)
```

###  Alternatives

[psalm/plugin-laravel

Psalm plugin for Laravel

3325.1M337](/packages/psalm-plugin-laravel)[moonshine/moonshine

Laravel administration panel

1.3k239.9k72](/packages/moonshine-moonshine)[tallstackui/tallstackui

TallStackUI is a powerful suite of Blade components that elevate your workflow of Livewire applications.

719160.4k12](/packages/tallstackui-tallstackui)[yzalis/identicon

Generate unique identicon avatars from any string

6091.1M23](/packages/yzalis-identicon)[ralphjsmit/laravel-glide

Auto-magically generate responsive images from static image files.

4923.6k5](/packages/ralphjsmit-laravel-glide)[hasinhayder/tyro-dashboard

Tyro Dashboard - Beautiful admin dashboard for managing Tyro roles, privileges, users, and settings

5222.7k](/packages/hasinhayder-tyro-dashboard)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
