PHPackages                             blendbyte/filament-title-with-slug - 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. [Framework](/categories/framework)
4. /
5. blendbyte/filament-title-with-slug

ActiveLibrary[Framework](/categories/framework)

blendbyte/filament-title-with-slug
==================================

Title + slug field for Filament v5 with auto-slug generation, live permalink preview, and inline editing.

v3.0.1(2mo ago)1726.4k↓24.4%113MITPHPPHP ^8.2CI passing

Since Sep 18Pushed 2mo ago1 watchersCompare

[ Source](https://github.com/blendbyte/filament-title-with-slug)[ Packagist](https://packagist.org/packages/blendbyte/filament-title-with-slug)[ Docs](https://github.com/blendbyte/filament-title-with-slug)[ RSS](/packages/blendbyte-filament-title-with-slug/feed)WikiDiscussions main Synced 2d ago

READMEChangelog (10)Dependencies (24)Versions (19)Used By (3)

[![filament-title-with-slug-banner](https://private-user-images.githubusercontent.com/4669888/579230551-61ac4405-14e3-43ef-a36b-4ec591e228b7.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODIwNjkyODIsIm5iZiI6MTc4MjA2ODk4MiwicGF0aCI6Ii80NjY5ODg4LzU3OTIzMDU1MS02MWFjNDQwNS0xNGUzLTQzZWYtYTM2Yi00ZWM1OTFlMjI4YjcucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDYyMSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjA2MjFUMTkwOTQyWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NmIwMjAxMjQ1NjZiMzVlZGU5ZjRjZjNhZjE2OWVkZDUxMTYzNDJjOWIzMTk3Nzc3YTM4NjBiMjJjMGI0NWY2MyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmcmVzcG9uc2UtY29udGVudC10eXBlPWltYWdlJTJGcG5nIn0.urhLVtBQtxw2K8vSzO6Fk-JJtSjrwrRAgKu_VhWNF-I)](https://private-user-images.githubusercontent.com/4669888/579230551-61ac4405-14e3-43ef-a36b-4ec591e228b7.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODIwNjkyODIsIm5iZiI6MTc4MjA2ODk4MiwicGF0aCI6Ii80NjY5ODg4LzU3OTIzMDU1MS02MWFjNDQwNS0xNGUzLTQzZWYtYTM2Yi00ZWM1OTFlMjI4YjcucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDYyMSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjA2MjFUMTkwOTQyWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NmIwMjAxMjQ1NjZiMzVlZGU5ZjRjZjNhZjE2OWVkZDUxMTYzNDJjOWIzMTk3Nzc3YTM4NjBiMjJjMGI0NWY2MyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmcmVzcG9uc2UtY29udGVudC10eXBlPWltYWdlJTJGcG5nIn0.urhLVtBQtxw2K8vSzO6Fk-JJtSjrwrRAgKu_VhWNF-I)Title With Slug — Permalink Field for Filament v5
=================================================

[](#title-with-slug--permalink-field-for-filament-v5)

[![Latest Version on Packagist](https://camo.githubusercontent.com/67b146c6346ce6ef217dc3b79c8a671d1ee010494949e0159c00f9390168c0e8/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f626c656e64627974652f66696c616d656e742d7469746c652d776974682d736c75672e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/blendbyte/filament-title-with-slug)[![Total Downloads](https://camo.githubusercontent.com/e160e13a99d3ca60e2e3f3fd063f384b1c2352fbedd019b1f518b47a5b21c4f7/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f626c656e64627974652f66696c616d656e742d7469746c652d776974682d736c75672e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/blendbyte/filament-title-with-slug)[![Tests](https://github.com/blendbyte/filament-title-with-slug/actions/workflows/run-tests.yml/badge.svg)](https://github.com/blendbyte/filament-title-with-slug/actions/workflows/run-tests.yml)[![Static Analysis](https://github.com/blendbyte/filament-title-with-slug/actions/workflows/static-analysis.yml/badge.svg)](https://github.com/blendbyte/filament-title-with-slug/actions/workflows/static-analysis.yml)[![PHP Version](https://camo.githubusercontent.com/9f53ce3d0f3da701cf4f2fba093a834cb124e6ca855ab45afadd785d1dd63ba3/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f7068702d762f626c656e64627974652f66696c616d656e742d7469746c652d776974682d736c75672e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/blendbyte/filament-title-with-slug)[![Software License](https://camo.githubusercontent.com/55c0218c8f8009f06ad4ddae837ddd05301481fcf0dff8e0ed9dadda8780713e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d627269676874677265656e2e7376673f7374796c653d666c61742d737175617265)](LICENSE.md)

Title + slug field for Filament v5 with auto-slug generation, live permalink preview, and inline editing.

```
use Blendbyte\FilamentTitleWithSlug\TitleWithSlugInput;

TitleWithSlugInput::make()
```

[![](docs/examples/camya-filament-title-with-slug_example_change-fields_01.jpg)](docs/examples/camya-filament-title-with-slug_example_change-fields_01.jpg)

[![](docs/examples/camya-filament-title-with-slug_example_change-fields_02.jpg)](docs/examples/camya-filament-title-with-slug_example_change-fields_02.jpg)

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

[](#requirements)

Package (blendbyte)FilamentLaravelNamespace`^3.x``^5.0``^11` / `^12` / `^13`\*`Blendbyte\FilamentTitleWithSlug``^2.x` ⚠️ *(deprecated)*`^4.0``^11` / `^12``Camya\Filament\Forms\Components``^1.x` ⚠️ *(deprecated)*`^3.0``^10` / `^11` / `^12``Camya\Filament\Forms\Components`> \*PHP 8.2 is not tested against Laravel 13.

> **v1.x and v2.x are not actively maintained.** They receive security and severe bug fixes only — no new features. Please upgrade to v3.x. See the [Upgrading](#upgrading) section for migration steps.

Looking for Filament v2 support? The original package is at [camya/filament-title-with-slug](https://github.com/camya/filament-title-with-slug).

Features
--------

[](#features)

- Auto-generates a URL-safe slug from the title
- Live permalink preview (`https://example.com/blog/my-post`)
- Inline slug editing with OK / Cancel / Reset
- "Visit" link to the published URL
- Readonly mode for title and/or slug independently
- Custom title field — pass any Filament field (e.g. a translatable input) as the title
- Fully configurable: labels, placeholder, URL host &amp; path, validation rules, slugifier
- Translatable UI strings (7 languages included)
- Dark mode supported
- No Tailwind build step required

Table of Contents
-----------------

[](#table-of-contents)

- [Upgrading](#upgrading)
- [Installation](#installation)
- [Translation](#translation)
- [Usage &amp; Examples](#usage--examples)
    - [Basic usage](#basic-usage)
    - [Custom title field](#custom-title-field)
    - [Change model field names](#change-model-field-names)
    - [Change labels and placeholder](#change-labels-and-placeholder)
    - [Permalink preview: hide host](#permalink-preview-hide-host)
    - [Permalink preview: change host and path](#permalink-preview-change-host-and-path)
    - [Visit link via named route](#visit-link-via-named-route)
    - [Hide the Visit link](#hide-the-visit-link)
    - [Style the title input](#style-the-title-input)
    - [Readonly title or slug](#readonly-title-or-slug)
    - [Validation rules](#validation-rules)
    - [Custom unique validation](#custom-unique-validation)
    - [Custom error messages](#custom-error-messages)
    - [Custom slugifier](#custom-slugifier)
    - [Dark mode](#dark-mode)
    - [Empty homepage slug](#empty-homepage-slug)
    - [Within a repeater](#within-a-repeater)
    - [URL slug sandwich](#url-slug-sandwich)
    - [Slug as subdomain](#slug-as-subdomain)
    - [Config file defaults](#config-file-defaults)
    - [All available parameters](#all-available-parameters)
- [Credits](#credits)

Upgrading
---------

[](#upgrading)

All upgrades to v3.x share one breaking change: **the namespace changed** from `Camya\Filament\Forms\Components` (used in v1 and v2) to `Blendbyte\FilamentTitleWithSlug`.

Find every import of the component in your app and update it:

```
// Before (v1.x and v2.x)
use Camya\Filament\Forms\Components\TitleWithSlugInput;

// After (v3.x)
use Blendbyte\FilamentTitleWithSlug\TitleWithSlugInput;
```

The `TitleWithSlugInput::make()` call signature and all parameter names are unchanged.

---

### From v2.x (Filament v4 → v5)

[](#from-v2x-filament-v4--v5)

```
composer require blendbyte/filament-title-with-slug:^3.0
```

1. Update the namespace as shown above.
2. Remove any manual CSS import for this package from your Tailwind config or Vite pipeline — v3 registers its stylesheet automatically via Filament's asset system. No build step required.

New in v3: the [`titleField`](#custom-title-field) parameter for passing a custom field (e.g. translatable) as the title input.

---

### From v1.x (Filament v3 → v5)

[](#from-v1x-filament-v3--v5)

```
composer require blendbyte/filament-title-with-slug:^3.0
```

1. Update the namespace as shown above.
2. Remove any manual CSS imports (see above).
3. See the [Filament upgrade guide](https://filamentphp.com/docs/upgrade-guide) for app-level Filament changes.

---

### From `camya/filament-title-with-slug` (Filament v2)

[](#from-camyafilament-title-with-slug-filament-v2)

**1. Swap the package:**

```
composer remove camya/filament-title-with-slug
composer require blendbyte/filament-title-with-slug:^3.0
```

**2. Update the namespace** as shown above.

**3. Re-publish config and translations** if you had published them previously:

```
php artisan vendor:publish --tag="filament-title-with-slug-config" --force
php artisan vendor:publish --tag="filament-title-with-slug-translations" --force
```

**4. Remove any manual CSS imports** — v3 registers its stylesheet automatically.

**5.** See the [Filament upgrade guide](https://filamentphp.com/docs/upgrade-guide) for app-level Filament changes.

---

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

[](#installation)

```
composer require blendbyte/filament-title-with-slug
```

Optionally publish the config file:

```
php artisan vendor:publish --tag="filament-title-with-slug-config"
```

Translation
-----------

[](#translation)

Publish the translation files:

```
php artisan vendor:publish --tag="filament-title-with-slug-translations"
```

Published translations land at `lang/vendor/filament-title-with-slug`.

Included languages: [English](resources/lang/en/package.php), [French](resources/lang/fr/package.php), [Brazilian Portuguese](resources/lang/pt_BR/package.php), [German](resources/lang/de/package.php), [Dutch](resources/lang/nl/package.php), [Indonesian](resources/lang/id/package.php), [Arabic](resources/lang/ar/package.php).

Added a translation? Share it on our [GitHub Discussions](https://github.com/blendbyte/filament-title-with-slug/discussions) page.

Usage &amp; Examples
--------------------

[](#usage--examples)

### Basic usage

[](#basic-usage)

Add `TitleWithSlugInput` to any Filament form schema. It binds to `title` and `slug` by default:

```
use Blendbyte\FilamentTitleWithSlug\TitleWithSlugInput;

class PostResource extends Resource
{
    public static function form(Form $form): Form
    {
        return $form->schema([

            TitleWithSlugInput::make(),

        ]);
    }
}
```

> **Tip:** Use `->columnSpan('full')` to make the component span the full form width.

### Custom title field

[](#custom-title-field)

Pass any Filament field as the title input via `titleField`. This is useful when you need a translatable input or another custom field type from a third-party package:

```
TitleWithSlugInput::make(
    titleField: \Spatie\FilamentTranslatable\Forms\Components\TranslatableInput::make('title'),
)
```

The package automatically wires slug auto-generation onto the provided field. The field name is derived from `getName()`, so you don't need to pass `fieldTitle` separately unless you want to override it.

All title-specific parameters (`titleLabel`, `titleRules`, `titlePlaceholder`, etc.) are **ignored** when `titleField` is provided — configure those directly on your field before passing it in.

The `titleAfterStateUpdated` and `titleFieldWrapper` parameters still work regardless:

```
TitleWithSlugInput::make(
    titleField: MyTranslatableField::make('title')
        ->label('Post Title')
        ->required(),
    titleAfterStateUpdated: function (Set $set, string $state) {
        // runs after every title update
    },
)
```

### Change model field names

[](#change-model-field-names)

Default field names are `title` and `slug`. Override them:

```
TitleWithSlugInput::make(
    fieldTitle: 'name',
    fieldSlug: 'identifier',
)
```

### Change labels and placeholder

[](#change-labels-and-placeholder)

```
TitleWithSlugInput::make(
    urlPath: '/book/',
    urlVisitLinkLabel: 'Visit Book',
    titleLabel: 'Title',
    titlePlaceholder: 'Insert the title...',
    slugLabel: 'Link:',
)
```

[![](docs/examples/camya-filament-title-with-slug_example_change-labels_01.jpg)](docs/examples/camya-filament-title-with-slug_example_change-labels_01.jpg)

[![](docs/examples/camya-filament-title-with-slug_example_change-labels_02.jpg)](docs/examples/camya-filament-title-with-slug_example_change-labels_02.jpg)

### Permalink preview: hide host

[](#permalink-preview-hide-host)

```
TitleWithSlugInput::make(
    urlHostVisible: false,
)
```

[![](docs/examples/camya-filament-title-with-slug_example_host-hidden_01.jpg)](docs/examples/camya-filament-title-with-slug_example_host-hidden_01.jpg)

### Permalink preview: change host and path

[](#permalink-preview-change-host-and-path)

```
TitleWithSlugInput::make(
    urlPath: '/category/',
    urlHost: 'https://project.local',
)
```

[![](docs/examples/camya-filament-title-with-slug_example_host-change_01.jpg)](docs/examples/camya-filament-title-with-slug_example_host-change_01.jpg)

### Visit link via named route

[](#visit-link-via-named-route)

Use a named route to generate the Visit link URL:

```
TitleWithSlugInput::make(
    urlPath: '/product/',
    urlHost: 'camya.com',
    urlVisitLinkRoute: fn(?Model $record) => $record?->slug
        ? route('product.show', ['slug' => $record->slug])
        : null,
)
```

Because the Visit URL is now route-generated, you can use a short `urlHost` just for the permalink preview display.

[![](docs/examples/camya-filament-title-with-slug_example_host-partial_01.jpg)](docs/examples/camya-filament-title-with-slug_example_host-partial_01.jpg)

### Hide the Visit link

[](#hide-the-visit-link)

```
TitleWithSlugInput::make(
    urlVisitLinkVisible: false,
)
```

### Style the title input

[](#style-the-title-input)

Pass extra HTML attributes directly to the title `` element:

```
TitleWithSlugInput::make(
    titleExtraInputAttributes: ['class' => 'italic'],
)
```

[![](docs/examples/camya-filament-title-with-slug_example_styling_01.jpg)](docs/examples/camya-filament-title-with-slug_example_styling_01.jpg)

### Readonly title or slug

[](#readonly-title-or-slug)

Lock either field, optionally based on context:

```
TitleWithSlugInput::make(
    titleIsReadonly: fn($context) => $context === 'edit',
    slugIsReadonly: fn($context) => $context === 'edit',
)
```

When `slugIsReadonly` is `true` the slug row renders as a static permalink display (no edit link, no action buttons).

### Validation rules

[](#validation-rules)

```
TitleWithSlugInput::make(
    titleRules: [
        'required',
        'string',
        'min:3',
        'max:120',
    ],
)
```

A unique rule is automatically applied to the slug. To customize it, see [Custom unique validation](#custom-unique-validation).

### Custom unique validation

[](#custom-unique-validation)

Pass an array of named arguments that map to Filament's `->unique()` method:

```
TitleWithSlugInput::make(
    slugRuleUniqueParameters: [
        'modifyRuleUsing' => fn(Unique $rule) => $rule->where('is_published', 1),
        'ignorable' => fn(?Model $record) => $record,
    ],
)
```

Available keys: `ignorable`, `modifyRuleUsing`, `ignoreRecord`, `table`, `column`.

### Custom error messages

[](#custom-error-messages)

Override validation messages in your resource class:

```
protected $messages = [
    'data.slug.regex' => 'Invalid slug. Use only a–z, 0–9, and hyphens.',
];
```

### Custom slugifier

[](#custom-slugifier)

Replace the default `Str::slug()` with your own closure:

```
TitleWithSlugInput::make(
    slugSlugifier: fn($string) => preg_replace('/[^a-z]/', '', $string),
    slugRuleRegex: '/^[a-z]*$/',
)
```

### Dark mode

[](#dark-mode)

[![](docs/examples/camya-filament-title-with-slug_example_dark-mode_01.jpg)](docs/examples/camya-filament-title-with-slug_example_dark-mode_01.jpg)

[![](docs/examples/camya-filament-title-with-slug_example_dark-mode_02.jpg)](docs/examples/camya-filament-title-with-slug_example_dark-mode_02.jpg)

### Empty homepage slug

[](#empty-homepage-slug)

Remove the slug's `required` rule, then use `/` as the slug value to represent the homepage. The `/` bypasses the auto-regeneration that would trigger on an empty value:

```
TitleWithSlugInput::make(
    slugRules: [],
)
```

[![](docs/examples/camya-filament-title-with-slug_example_homepage_01.jpg)](docs/examples/camya-filament-title-with-slug_example_homepage_01.jpg)

### Within a repeater

[](#within-a-repeater)

```
Repeater::make('FAQEntries')
    ->relationship()
    ->collapsible()
    ->schema([

        TitleWithSlugInput::make(
            fieldTitle: 'title',
            fieldSlug: 'slug',
            urlPath: '/faq/',
            urlHostVisible: false,
            titleLabel: 'Title',
            titlePlaceholder: 'Insert FAQ title...',
        ),

    ]),
```

[![](docs/examples/camya-filament-title-with-slug_example_repeater_01.jpg)](docs/examples/camya-filament-title-with-slug_example_repeater_01.jpg)

### URL slug sandwich

[](#url-slug-sandwich)

Place the slug in the middle of a path, e.g. `/books/my-slug/detail/`:

```
TitleWithSlugInput::make(
    urlPath: '/books/',
    urlVisitLinkRoute: fn(?Model $record) => $record?->slug
        ? '/books/' . $record->slug . '/detail'
        : null,
    slugLabelPostfix: '/detail/',
    urlVisitLinkLabel: 'Visit Book Details',
),
```

[![](docs/examples/camya-filament-title-with-slug_example_slug-sandwich_01.jpg)](docs/examples/camya-filament-title-with-slug_example_slug-sandwich_01.jpg)

### Slug as subdomain

[](#slug-as-subdomain)

```
TitleWithSlugInput::make(
    fieldSlug: 'subdomain',
    urlPath: '',
    urlHostVisible: false,
    urlVisitLinkLabel: 'Visit Domain',
    urlVisitLinkRoute: fn(?Model $record) => $record?->slug
        ? 'https://' . $record->slug . '.camya.com'
        : null,
    slugLabel: 'Domain:',
    slugLabelPostfix: '.camya.com',
),
```

[![](docs/examples/camya-filament-title-with-slug_example_subdomain_01.jpg)](docs/examples/camya-filament-title-with-slug_example_subdomain_01.jpg)

### Config file defaults

[](#config-file-defaults)

Publish the config to set global defaults:

```
php artisan vendor:publish --tag="filament-title-with-slug-config"
```

Published at `config/filament-title-with-slug.php`:

```
[
    'field_title' => 'title',          // Override per-field with fieldTitle:
    'field_slug'  => 'slug',           // Override per-field with fieldSlug:
    'url_host'    => env('APP_URL'),   // Override per-field with urlHost:
]
```

### All available parameters

[](#all-available-parameters)

All parameters are optional and use [named argument](https://www.php.net/manual/en/functions.named-arguments.php) syntax. Parameters marked *(ignored when `titleField` is set)* only apply to the default TextInput.

```
TitleWithSlugInput::make(

    // Model fields
    fieldTitle: 'title',
    fieldSlug: 'slug',

    // Custom title field — replaces the default TextInput
    titleField: SomeField::make('title'),

    // URL
    urlPath: '/blog/',
    urlHost: 'https://www.example.com',
    urlHostVisible: true,
    urlVisitLinkLabel: 'View',
    urlVisitLinkRoute: fn(?Model $record) => $record?->slug
        ? route('post.show', ['slug' => $record->slug])
        : null,
    urlVisitLinkVisible: true,

    // Title — ignored when titleField is provided
    titleLabel: 'The Title',
    titlePlaceholder: 'Post Title',
    titleExtraInputAttributes: ['class' => 'italic'],
    titleRules: ['required', 'string'],
    titleRuleUniqueParameters: [
        'modifyRuleUsing' => fn(Unique $rule) => $rule->where('is_published', 1),
        'ignorable' => fn(?Model $record) => $record,
    ],
    titleIsReadonly: fn($context) => $context !== 'create',
    titleAutofocus: true,

    // Title callbacks — work with both default TextInput and custom titleField
    titleAfterStateUpdated: function ($state) {},
    titleFieldWrapper: fn($field) => $field,

    // Slug
    slugLabel: 'The Slug:',
    slugRules: ['required', 'string'],
    slugRuleUniqueParameters: [
        'modifyRuleUsing' => fn(Unique $rule) => $rule->where('is_published', 1),
        'ignorable' => fn(?Model $record) => $record,
    ],
    slugIsReadonly: fn($context) => $context !== 'create',
    slugSlugifier: fn($string) => Str::slug($string),
    slugRuleRegex: '/^[a-z0-9\-\_]*$/',
    slugAfterStateUpdated: function ($state) {},
    slugLabelPostfix: '/suffix',

)->columnSpan('full'),
```

Credits
-------

[](#credits)

Originally created by [Andreas Scheibel (camya)](https://github.com/camya). Inspired by packages from [awcodes](https://github.com/awcodes/) and the work of [spatie](https://github.com/spatie/). Tests built with [Pest](https://pestphp.com/).

Please see the [release changelog](https://github.com/blendbyte/filament-title-with-slug/releases) for version history, and [contributing](https://github.com/blendbyte/filament-title-with-slug/blob/main/.github/CONTRIBUTING.md) for how to get involved. Security vulnerabilities can be reported via our [security policy](https://github.com/blendbyte/filament-title-with-slug/security/policy).

Maintained by Blendbyte
-----------------------

[](#maintained-by-blendbyte)

 [   ![Blendbyte](https://camo.githubusercontent.com/09962a5684a0b50fb9eb44edfd8f2560be418bc8ce3d23a31f96395f3f14d58e/68747470733a2f2f7777772e626c656e64627974652e636f6d2f6c6f676f5f686f72697a6f6e74616c2e706e67)  ](https://www.blendbyte.com)

 **[Blendbyte](https://www.blendbyte.com)** builds cloud infrastructure, web apps, and developer tools.
 We've been shipping software to production for 20+ years.

 This package runs in our own stack, which is why we keep it maintained.
 Issues and PRs get read. Good ones get merged.

 [blendbyte.com](https://www.blendbyte.com) ·

###  Health Score

57

—

FairBetter than 98% of packages

Maintenance88

Actively maintained with recent releases

Popularity39

Limited adoption so far

Community25

Small or concentrated contributor base

Maturity65

Established project with proven stability

 Bus Factor1

Top contributor holds 78.3% of commits — single point of failure

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 ~68 days

Recently: every ~103 days

Total

15

Last Release

62d ago

Major Versions

v1.0.11 → v2.0.02026-04-16

v2.0.0 → v3.0.02026-04-16

PHP version history (3 changes)v1.0.0PHP ^8.0.2

v1.0.2PHP ^8.1

v2.0.0PHP ^8.2

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/69378377?v=4)[Blendbyte](/maintainers/blendbyte)[@blendbyte](https://github.com/blendbyte)

---

Top Contributors

[![bashgeek](https://avatars.githubusercontent.com/u/4669888?v=4)](https://github.com/bashgeek "bashgeek (123 commits)")[![broqit](https://avatars.githubusercontent.com/u/27624002?v=4)](https://github.com/broqit "broqit (22 commits)")[![chosten](https://avatars.githubusercontent.com/u/5481247?v=4)](https://github.com/chosten "chosten (2 commits)")[![boris-glumpler](https://avatars.githubusercontent.com/u/580004?v=4)](https://github.com/boris-glumpler "boris-glumpler (2 commits)")[![iDiegoNL](https://avatars.githubusercontent.com/u/10339564?v=4)](https://github.com/iDiegoNL "iDiegoNL (1 commits)")[![mohamedsabil83](https://avatars.githubusercontent.com/u/10126040?v=4)](https://github.com/mohamedsabil83 "mohamedsabil83 (1 commits)")[![nicollassilva](https://avatars.githubusercontent.com/u/10711363?v=4)](https://github.com/nicollassilva "nicollassilva (1 commits)")[![Quadrubo](https://avatars.githubusercontent.com/u/71718414?v=4)](https://github.com/Quadrubo "Quadrubo (1 commits)")[![webwizo](https://avatars.githubusercontent.com/u/1593953?v=4)](https://github.com/webwizo "webwizo (1 commits)")[![Devonab](https://avatars.githubusercontent.com/u/6360488?v=4)](https://github.com/Devonab "Devonab (1 commits)")[![frankyso](https://avatars.githubusercontent.com/u/5705520?v=4)](https://github.com/frankyso "frankyso (1 commits)")[![howdu](https://avatars.githubusercontent.com/u/533658?v=4)](https://github.com/howdu "howdu (1 commits)")

---

Tags

slugframeworklaravellivewirepermalinkfilament

###  Code Quality

TestsPest

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/blendbyte-filament-title-with-slug/health.svg)

```
[![Health](https://phpackages.com/badges/blendbyte-filament-title-with-slug/health.svg)](https://phpackages.com/packages/blendbyte-filament-title-with-slug)
```

###  Alternatives

[rawilk/profile-filament-plugin

Profile &amp; MFA starter kit for filament.

3914.6k](/packages/rawilk-profile-filament-plugin)[stephenjude/filament-jetstream

A Laravel starter kit built with Filament inspired by Jetstream.

17760.2k3](/packages/stephenjude-filament-jetstream)[camya/filament-title-with-slug

TitleWithSlugInput - Easy Permalink Slugs for the FilamentPHP Form Builder (PHP / Laravel / Livewire)

13445.0k](/packages/camya-filament-title-with-slug)[croustibat/filament-jobs-monitor

Background Jobs monitoring like Horizon for all drivers for FilamentPHP

274326.6k8](/packages/croustibat-filament-jobs-monitor)[stephenjude/filament-debugger

About

104162.2k2](/packages/stephenjude-filament-debugger)[finity-labs/fin-mail

A powerful email template manager and composer for Filament with dynamic token replacement, template versioning, and inline email sending.

284.5k1](/packages/finity-labs-fin-mail)

PHPackages © 2026

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