diff --git a/composer.json b/composer.json
new file mode 100644
index 0000000..b5314fa
--- /dev/null
+++ b/composer.json
@@ -0,0 +1,28 @@
+{
+ "name": "stechstudio/laravatar",
+ "description": "Minimalist Blade component for displaying a Gravatar, or falling back to initials.",
+ "type": "library",
+ "license": "MIT",
+ "autoload": {
+ "psr-4": {
+ "STS\\Laravatar\\": "src/"
+ }
+ },
+ "authors": [
+ {
+ "name": "David Palmer",
+ "email": "dp@reproconnect.com"
+ }
+ ],
+ "require": {
+ "illuminate/support": "^8.0|^9.0",
+ "illuminate/view": "^8.0|^9.0"
+ },
+ "extra": {
+ "laravel": {
+ "providers": [
+ "STS\\Laravatar\\LaravatarServiceProvider"
+ ]
+ }
+ }
+}
diff --git a/config/laravatar.php b/config/laravatar.php
new file mode 100644
index 0000000..537539e
--- /dev/null
+++ b/config/laravatar.php
@@ -0,0 +1,43 @@
+ [
+ // Gravatar users can set a rating to descibe their avatar's level of objectionable content.
+ // The ratings are based on US movie ratings: g, pg, r, x
+ // Each rating includes those below itself. e.g. allowing "R-rated" avatars will also
+ // allow PG and G-rated avatars.
+ //
+ // See Gravatar's documentation for specific guidelines:
+ // https://en.gravatar.com/site/implement/images/
+ 'rating' => 'g',
+
+ // What to display if no Gravatar exists. Will be passed as the 'd' parameter.
+ //
+ // See Gravatar's documentation for all available options:
+ // https://en.gravatar.com/site/implement/images/
+ 'default' => 'blank',
+ ],
+
+ 'fallback' => [
+ // If a user does not have a Gravatar, the app will use one of the following colors
+ // as the background for their initials.
+ 'colors' => [
+ '#191028',
+ '#46af45',
+ '#a1d685',
+ '#453e78',
+ '#7664fe',
+ '#833129',
+ '#9ec2e8',
+ '#dc534b',
+ '#e18d79',
+ '#d6b97b',
+ '#216c4b',
+ '#d365c8',
+ '#afaab9',
+ ],
+
+ // If a user does not have a Gravatar, display their initials using these font families.
+ 'font_family' => 'Roboto, Helvetica, Arial, sans-serif',
+ ],
+];
diff --git a/resources/views/components/avatar-stack.blade.php b/resources/views/components/avatar-stack.blade.php
new file mode 100644
index 0000000..99dbd3b
--- /dev/null
+++ b/resources/views/components/avatar-stack.blade.php
@@ -0,0 +1,26 @@
+@props([
+ 'first' => null,
+ 'last' => null,
+ 'email' => null,
+ 'avatarClass' => '',
+ 'size' => 100,
+ 'zIndexStart' => 1,
+])
+
+