Favicon plugin screenshot
Dark mode ready
Multilingual support
Supports v5.x

Favicon

Easiest way to add favicons to your table and schemas

Tags: Table Column Infolist Entry
Supported versions:
5.x 4.x
Dennis Koch avatar Author: Dennis Koch

Documentation

header

Latest Version on Packagist Software License GitHub Workflow Status Total Downloads

#Installation via Composer

composer require pxlrbt/filament-favicon

#Features

#FaviconColumn

Display website favicons in your Filament table columns:

use pxlrbt\FilamentFavicon\Filament\FaviconColumn;

FaviconColumn::make('website')

The column automatically fetches and caches favicons based on the domain value. The state must be a domain name (e.g., example.com).

If you need to extract the domain from a URL, use the state() method:

FaviconColumn::make('website')
    ->state(fn ($record) => parse_url($record->website, PHP_URL_HOST))

#FaviconEntry

Display website favicons in your Filament infolists:

use pxlrbt\FilamentFavicon\Filament\FaviconEntry;

FaviconEntry::make('website')

The entry automatically fetches and caches favicons based on the domain value. The state must be a domain name (e.g., example.com).

If you need to extract the domain from a URL, use the state() method:

FaviconEntry::make('website')
    ->state(fn ($record) => parse_url($record->website, PHP_URL_HOST))

#Configuration

Publish the config file:

php artisan vendor:publish --tag=filament-favicon-config

Available options:

return [
    // Favicon fetcher service (DuckDuckGo or IconHorse)
    'diver' => \pxlrbt\FilamentFavicon\Drivers\IconHorse::class,

    // How long to keep favicons before re-fetching
    'stale_after' => CarbonInterval::week(1),

    // Storage configuration
    'storage' => [
        'disk' => 'public',
        'directory' => 'favicons',
    ],
];

#Favicon Drivers

This package includes two favicon drivers:

IconHorse (default)

  • Dedicated favicon service with enhanced reliability
  • Free tier: up to 1,000 lookups per month
  • Paid plans available for higher volumes
  • Class: \pxlrbt\FilamentFavicon\Drivers\IconHorse::class

DuckDuckGo

  • Uses DuckDuckGo's search engine index to fetch favicons
  • No rate limits or usage restrictions
  • Free and unlimited
  • Class: \pxlrbt\FilamentFavicon\Drivers\DuckDuckGo::class

To switch drivers, update the driver option in your config file.

#Clear Favicons

Clear all cached favicons:

php artisan favicons:clear

#Contributing

If you want to contribute to this packages, you may want to test it in a real Filament project:

  • Fork this repository to your GitHub account.
  • Create a Filament app locally.
  • Clone your fork in your Filament app's root directory.
  • In the /filament-favicon directory, create a branch for your fix, e.g. fix/error-message.

Install the packages in your app's composer.json:

"require": {
    "pxlrbt/filament-favicon": "dev-fix/error-message as main-dev",
},
"repositories": [
    {
        "type": "path",
        "url": "filament-favicon"
    }
]

Now, run composer update.

#Credits