Out of the box, Filament uses ui-avatars.com to generate avatars based on a user's name. To provide your own avatar URLs, you can implement the HasAvatar contract.

So, if you want to support gravatar.com, you can start with creating a custom AvatarProvider.

namespace App\Filament\AvatarProviders;
use App\Models\User;
use Filament\AvatarProviders\Contracts\AvatarProvider;
use Illuminate\Database\Eloquent\Model;
class GravatarsProvider implements AvatarProvider
public function get(Model $authUser): string
/** @var User $user */
$user = $authUser;
$hash = md5(strtolower(trim($user->email)));
return "https://www.gravatar.com/avatar/{$hash}.jpg";

Once you have this, it is as simple as registering it in config/filament.php under the key default_avatar_provider:

return [
| Default Avatar Provider
| This is the service that will be used to retrieve default avatars if one
| has not been uploaded.
'default_avatar_provider' => App\Filament\AvatarProviders\GravatarsProvider::class,

Important to know is that if null is returned from the getFilamentAvatarUrl() method, Filament will fall back to ui-avatars.com.