Connection Indicator plugin screenshot
Dark mode ready
Multilingual support
Supports v5.x

Connection Indicator

Community

A zero-dependency, client-side Filament plugin that renders a real-time pulsing signal dot in your Filament panel (defaulting before the user menu). It uses the browser's native Network Information API and navigator.onLine to reflect connection quality without any WebSocket polling or server round-trips.

Tags: Analytics Kit Developer Tool Widget
Supported versions:
5.x
Syofyan Zuhad avatar Author: Syofyan Zuhad

Package health

Beta

Automated checks of this plugin's Composer package

100 / 100
Security 100
Maintenance 100
Ecosystem 100
15 checks
  • Passed: GitHub Actions pinned to SHA
  • Skipped: GitLab CI includes pinned to SHA
  • Passed: Open security advisories
  • Passed: Dependabot PR responsiveness — No open Dependabot PRs.
  • Skipped: Renovate MR responsiveness
  • Passed: Dependabot or Renovate configured
  • Passed: Dependency update cooldown configured
  • Passed: Provides a security policy
  • Passed: Abandoned or archived — No consulted source marks the package abandoned (packagist, github).
  • Passed: Commit and release recency — Active: last commit 1 days ago; last release 1 days ago.
  • Passed: composer.lock not committed by library composer.lock is absent from the released dist archive.
  • Passed: Dist archive is lean
  • Passed: Current Laravel version supported — Package dependencies resolve together with current Laravel 13.0.
  • Passed: Current PHP version supported — Constraint ^8.2 supports current PHP 8.5.
  • Skipped: Current Symfony version supported
Third-party plugin. This is built by the community, not the Filament team. Filament does not review, endorse, or vet the security of plugins outside the filament/ namespace. Review the source and install at your own risk. Found malware or an unresolved security issue the author won't address? Report it .
Powered by Plumb Last scanned 22 hours ago

Documentation

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status GitHub PHPStan Action Status Total Downloads

filament-connection

A zero-dependency, client-side Filament plugin that renders a real-time pulsing signal dot in your Filament panel (defaulting before the user menu). It uses the browser's native Network Information API and navigator.onLine to reflect connection quality without any WebSocket polling or server round-trips.

#Signal States

Status Color Condition
checking Gray #9ca3af Initial check / rechecking
online Green #22c55e Online, effectiveType = 4g (or API unsupported)
moderate Yellow #eab308 effectiveType = 3g
slow Orange #f97316 effectiveType = 2g / slow-2g
offline Red #ef4444 navigator.onLine === false
image image image image

#Installation

You can install the package via composer:

composer require syofyanzuhad/filament-connection-indicator

You can publish the config file with:

php artisan vendor:publish --tag="connection-indicator-config"

Optionally, you can publish the views using:

php artisan vendor:publish --tag="connection-indicator-views"

#Usage

Register the plugin in your Filament Panel Provider (e.g. AdminPanelProvider.php):

use Syofyanzuhad\ConnectionIndicator\ConnectionIndicatorPlugin;
use Filament\View\PanelsRenderHook;

public function panel(Panel $panel): Panel
{
    return $panel
        ->default()
        ->id('admin')
        ->plugins([
            ConnectionIndicatorPlugin::make(),
        ]);
}

#UI Styles

The indicator supports two visual styles:

  • dot (default) — Pulsing circular dot with smooth ping animation. image

  • bars — 4-tier vertical signal bars (cellular / Wi-Fi style) that fill dynamically based on connection quality, and shows an offline strike line when disconnected. image

You can set the style fluently on the plugin:

// Use vertical signal bars
ConnectionIndicatorPlugin::make()
    ->bars() // or ->style('bars')

// Or explicitly use the pulsing dot
ConnectionIndicatorPlugin::make()
    ->dot() // or ->style('dot')

#Custom Render Hook

By default, the indicator is rendered before the user menu (PanelsRenderHook::USER_MENU_BEFORE). You can customize where it appears:

ConnectionIndicatorPlugin::make()
    ->renderHook(PanelsRenderHook::TOPBAR_END)

#Configuration

This is the contents of the published config file (config/connection-indicator.php):

return [
    /*
    |--------------------------------------------------------------------------
    | Indicator UI Style
    |--------------------------------------------------------------------------
    | Supported options: 'dot', 'bars'
    | Default: 'dot'
    */
    'style' => 'dot',

    /*
    |--------------------------------------------------------------------------
    | Tooltip Labels
    |--------------------------------------------------------------------------
    */
    'labels' => [
        'checking' => 'Checking...',
        'online'   => 'Online',
        'moderate' => 'Slow Connection',
        'slow'     => 'Very Slow',
        'offline'  => 'Offline',
    ],

    /*
    |--------------------------------------------------------------------------
    | Poll Interval (ms)
    |--------------------------------------------------------------------------
    | How often the client re-checks the connection in the background.
    | Default: 30 000 ms (30 s).
    */
    'poll_interval' => 30000,
];

#Browser Compatibility

API Availability Fallback
navigator.onLine All modern browsers
navigator.connection (Network Information API) Chrome / Edge / Android WebView Gracefully falls back to online status
navigator.connection.effectiveType Chrome 61+, not Safari / Firefox Falls back to online if missing
navigator.connection.rtt Chrome 61+, not Safari / Firefox Omitted from tooltip if null

The component degrades gracefully: on Safari and Firefox, it still tracks online and offline events in real-time even without network speed metrics.

#Testing

composer test

#Changelog

Please see CHANGELOG for more information on what has changed recently.

#Contributing

Please see CONTRIBUTING for details.

#Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.

#Credits

#License

The MIT License (MIT). Please see License File for more information.

The author

Syofyan Zuhad avatar Author: Syofyan Zuhad

Hey! I’m Syofyan Zuhad, a fanatical open sourceror and web artisan.

I’m a freelance web developer, focused on building web applications with Laravel.

I enjoy turning ideas into useful tools, especially those that make everyday work simpler, more productive, or just more enjoyable. I build things for clients, experiment with my own ideas, and maintain open-source projects such as Uptime Kita, Katla, and Hobits.

Plugins
1