pxlrbt/filament-favicon

Favicon Column and Entry for Filament

Fund package maintenance!
pxlrbt

Installs: 3

Dependents: 0

Suggesters: 0

Security: 0

Stars: 1

Watchers: 0

Forks: 0

Open Issues: 0

pkg:composer/pxlrbt/filament-favicon

v1.1.0 2025-11-30 01:56 UTC

This package is auto-updated.

Last update: 2025-11-30 01:58:01 UTC


README

header

Filament Favicon

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