PHPackages                             adereksisusanto/filament-shlink - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. adereksisusanto/filament-shlink

ActiveLibrary

adereksisusanto/filament-shlink
===============================

This is my package filament-shlink

v1.0.1(1mo ago)21MITPHP ^8.3

Since Jul 6Compare

[ Source](https://github.com/adereksisusanto/filament-shlink)[ Packagist](https://packagist.org/packages/adereksisusanto/filament-shlink)[ Docs](https://github.com/adereksisusanto/filament-shlink)[ GitHub Sponsors](https://github.com/adereksisusanto)[ RSS](/packages/adereksisusanto-filament-shlink/feed)WikiDiscussions Synced 1w ago

READMEChangelog (2)Dependencies (13)Versions (3)Used By (0)

Filament Shlink
===============

[](#filament-shlink)

[![Latest Version on Packagist](https://camo.githubusercontent.com/a905c338dffa56914e0f29600854145367d5728ddc3e140cef7acec74620670d/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f61646572656b7369737573616e746f2f66696c616d656e742d73686c696e6b2e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/adereksisusanto/filament-shlink)[![tests](https://github.com/adereksisusanto/filament-shlink/actions/workflows/tests.yml/badge.svg)](https://github.com/adereksisusanto/filament-shlink/actions/workflows/tests.yml)[![fix-code-style](https://github.com/adereksisusanto/filament-shlink/actions/workflows/fix-code-style.yml/badge.svg)](https://github.com/adereksisusanto/filament-shlink/actions/workflows/fix-code-style.yml)[![Total Downloads](https://camo.githubusercontent.com/a006efb550ed3773094edf8c8ef26fa7d2677bf80ad03ba8bd9f46ba3e5ee2f3/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f61646572656b7369737573616e746f2f66696c616d656e742d73686c696e6b2e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/adereksisusanto/filament-shlink)

 [![Filament Shlink](images/image.jpg)](images/image.jpg)

Filament panel integration for [Shlink](https://shlink.io), a self-hosted URL shortener. Manage short URLs and tags directly from your Filament panel.

Installation
------------

[](#installation)

```
composer require adereksisusanto/filament-shlink
```

### Publish Config

[](#publish-config)

```
php artisan vendor:publish --tag="filament-shlink-config"
```

### Register Plugin

[](#register-plugin)

```
// AppServiceProvider.php or PanelProvider
use Adereksisusanto\FilamentShlink\FilamentShlinkPlugin;

public function panel(Panel $panel): Panel
{
    return $panel
        ->plugin(FilamentShlinkPlugin::make());
}
```

### Modal Mode

[](#modal-mode)

By default, create and edit actions navigate to dedicated pages. To use modal forms instead:

```
FilamentShlinkPlugin::make()->modal(true)
```

Configure modal appearance with named parameters using enums:

```
use Adereksisusanto\FilamentShlink\Enums\ModalType;
use Filament\Support\Enums\Alignment;
use Filament\Support\Enums\SlideOverPosition;
use Filament\Support\Enums\Width;

FilamentShlinkPlugin::make()->modal(
    enabled: true,
    type: ModalType::SlideOver,
    position: SlideOverPosition::End,
    width: Width::FourExtraLarge,
    alignment: Alignment::Center,
)
```

### Multi-Client (Per-User Config)

[](#multi-client-per-user-config)

Enable per-user Shlink connections. Each authenticated user can configure their own Shlink server via **Shlink Settings**:

```
FilamentShlinkPlugin::make()->multiClient()
```

Customize the database table prefix:

```
FilamentShlinkPlugin::make()->multiClient(tablePrefix: 'myapp')
```

This creates the `myapp_configs` table (default `fs_configs`). When enabled, publish &amp; run the migration:

```
php artisan vendor:publish --tag="filament-shlink-migrations"
php artisan migrate
```

Per-user data is scoped per user. Falls back to global `.env` config if user has no saved config.

Configuration
-------------

[](#configuration)

Set your Shlink server URL and API key in `.env`:

```
SHLINK_SERVER_URL=https://your-shlink-server.com
SHLINK_API_KEY=your-api-key
```

Or configure them via **Shlink Settings** page in the Filament admin panel after registration.

Published config (`config/filament-shlink.php`):

```
return [
    'server_url' => env('SHLINK_SERVER_URL', ''),
    'api_key' => env('SHLINK_API_KEY', ''),
    'table_prefix' => 'fs',
];
```

Translations
------------

[](#translations)

Available in **46 languages**. The plugin auto-detects the app locale and loads the corresponding translation file:

\#LocaleLanguage1`af`Afrikaans2`ar`العربية (Arabic)3`bg`Български (Bulgarian)4`bn`বাংলা (Bengali)5`ca`Català (Catalan)6`cs`Čeština (Czech)7`da`Dansk (Danish)8`de`Deutsch (German)9`el`Ελληνικά (Greek)10`en`English11`es`Español (Spanish)12`et`Eesti (Estonian)13`fa`فارسی (Persian)14`fi`Suomi (Finnish)15`fil`Filipino16`fr`Français (French)17`he`עברית (Hebrew)18`hi`हिन्दी (Hindi)19`hr`Hrvatski (Croatian)20`hu`Magyar (Hungarian)21`id`Bahasa Indonesia (Indonesian)22`it`Italiano (Italian)23`ja`日本語 (Japanese)24`ko`한국어 (Korean)25`lt`Lietuvių (Lithuanian)26`lv`Latviešu (Latvian)27`ms`Bahasa Melayu (Malay)28`nb`Norsk Bokmål (Norwegian)29`nl`Nederlands (Dutch)30`pl`Polski (Polish)31`pt`Português (Portuguese)32`pt_BR`Português (Brasil)33`ro`Română (Romanian)34`ru`Русский (Russian)35`sk`Slovenčina (Slovak)36`sl`Slovenščina (Slovenian)37`sr`Srpski (Serbian)38`sv`Svenska (Swedish)39`sw`Kiswahili (Swahili)40`th`ไทย (Thai)41`tr`Türkçe (Turkish)42`uk`Українська (Ukrainian)43`ur`اردو (Urdu)44`vi`Tiếng Việt (Vietnamese)45`zh_CN`简体中文 (Chinese Simplified)46`zh_TW`繁體中文 (Chinese Traditional)Translation files are located at `resources/lang/{locale}/filament-shlink.php`. To add a new language, copy the `en` file and translate the values.

Features
--------

[](#features)

- **Short URLs** — List, create, and edit short URLs
- **Tags** — List, rename, and delete tags
- **Dashboard Widget** — Visits overview widget showing total visits, short URLs, and tags
- **Settings** — Configure server connection from the admin panel
- **Multi-Client** — Per-user Shlink connections (stored in `{prefix}_configs`)

Usage
-----

[](#usage)

Once registered, the plugin adds the following to your Filament panel:

- **Dashboard Widget** — `VisitsOverviewWidget` displays total visits, short URL count, and tag count (appears on the Short URLs page)
- **Short URLs** — View all short URLs, create new ones, edit existing ones
- **Tags** — Manage tags (rename, delete)

> Shlink URLs, tags, and visits are fetched directly from the Shlink API — no local tables for those. When `multiClient()` is enabled, per-user connection settings are stored in the `{prefix}_configs` table.

Requirements
------------

[](#requirements)

- PHP ^8.3
- Filament ^5.0
- Laravel ^11.0|^12.0|^13.0

Testing
-------

[](#testing)

```
composer test
```

The test suite covers:

- **Models** — ShortUrl, Tag, and TagStats creation from Shlink SDK DTOs
- **Service** — Configuration state, connection setup via `setConfig()`
- **Widget** — Visits overview widget handles configured and unconfigured states
- **Service Provider** — Singleton registration, config/translation/view loading
- **Architecture** — Debug functions (`dd`, `dump`, `ray`) are not used anywhere in the source

Changelog
---------

[](#changelog)

Please see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently.

Contributing
------------

[](#contributing)

Please see [CONTRIBUTING](.github/CONTRIBUTING.md) for details.

Security Vulnerabilities
------------------------

[](#security-vulnerabilities)

Please review [our security policy](.github/SECURITY.md) on how to report security vulnerabilities.

Credits
-------

[](#credits)

- [Ade Reksi Susanto](https://github.com/adereksisusanto)
- [All Contributors](../../contributors)

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

###  Health Score

39

—

LowBetter than 84% of packages

Maintenance90

Actively maintained with recent releases

Popularity4

Limited adoption so far

Community2

Small or concentrated contributor base

Maturity50

Maturing project, gaining track record

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

2

Last Release

48d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/34746706?v=4)[Ade Reksi Susanto](/maintainers/adereksisusanto)[@adereksisusanto](https://github.com/adereksisusanto)

---

Tags

laravelfilamentfilament-pluginfilamentphpadereksisusantofilament-shlink

###  Code Quality

TestsPest

Static AnalysisPHPStan, Rector

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/adereksisusanto-filament-shlink/health.svg)

```
[![Health](https://phpackages.com/badges/adereksisusanto-filament-shlink/health.svg)](https://phpackages.com/packages/adereksisusanto-filament-shlink)
```

###  Alternatives

[rawilk/profile-filament-plugin

Profile &amp; MFA starter kit for filament.

3915.5k](/packages/rawilk-profile-filament-plugin)[backstage/mails

View logged mails and events in a beautiful Filament UI.

16429.7k](/packages/backstage-mails)[marcelweidum/filament-passkeys

Use passkeys in your filamentphp app

6758.2k2](/packages/marcelweidum-filament-passkeys)[stephenjude/filament-two-factor-authentication

Filament Two Factor Authentication: Google 2FA + Passkey Authentication

85240.3k10](/packages/stephenjude-filament-two-factor-authentication)[relaticle/custom-fields

User Defined Custom Fields for Laravel Filament

16461.2k](/packages/relaticle-custom-fields)[croustibat/filament-jobs-monitor

Background Jobs monitoring like Horizon for all drivers for FilamentPHP

278359.3k12](/packages/croustibat-filament-jobs-monitor)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
