PHPackages                             misaf/vendra-tagger - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. misaf/vendra-tagger

ActiveVendra-module[Utility &amp; Helpers](/categories/utility)

misaf/vendra-tagger
===================

Tenant-aware tag management and Filament administration for Vendra

v1.10.0(2w ago)111[1 PRs](https://github.com/misaf/vendra-tagger/pulls)1MITPHPPHP ^8.3CI failing

Since Jul 10Pushed 2w agoCompare

[ Source](https://github.com/misaf/vendra-tagger)[ Packagist](https://packagist.org/packages/misaf/vendra-tagger)[ Docs](https://github.com/misaf/vendra-tagger)[ RSS](/packages/misaf-vendra-tagger/feed)WikiDiscussions 1.x Synced 1w ago

READMEChangelog (10)Dependencies (21)Versions (25)Used By (1)

Vendra Tagger
=============

[](#vendra-tagger)

Translated, sortable, and tenant-compatible tag management for Vendra applications, with a Filament administration resource built on `spatie/laravel-tags`.

Features
--------

[](#features)

- Uses Spatie's translated tag names and slugs
- Preserves custom slugs while generating missing slugs from names
- Uses a sortable `position` column in place of Spatie's `order_column`
- Derives optional tenant scoping and assignment from `misaf/vendra-support`
- Provides permission-backed Filament list, create, view, edit, delete, and reorder operations
- Supports configurable Filament panels and navigation groups

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

[](#requirements)

- PHP 8.3+
- Laravel 13
- Filament 5
- `misaf/vendra-support`
- `spatie/laravel-tags`

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

[](#installation)

```
composer require misaf/vendra-tagger
php artisan vendor:publish --tag=tags-migrations
php artisan vendor:publish --tag=vendra-tagger-migrations
php artisan migrate
```

Configure Spatie Tags to use the Vendra model in `config/tags.php`:

```
use Misaf\VendraTagger\Models\Tagger;

return [
    'tag_model' => Tagger::class,
];
```

The package service provider and Filament plugin are auto-discovered. Optionally publish the package configuration and translations:

```
php artisan vendor:publish --tag=vendra-tagger-config
php artisan vendor:publish --tag=vendra-tagger-translations
```

Seed the tag-management permissions when the Vendra permission module is installed:

```
php artisan vendra-tagger:seed
```

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

[](#configuration)

`config/vendra-tagger.php` exposes two integration options:

```
return [
    'panels' => ['admin'],
    'navigation_group' => 'vendra-support::navigation.groups.Content',
];
```

`panels` accepts one panel ID or an array of IDs. `navigation_group` accepts a translation key or literal label and can also be overridden through `TaggerPlugin::navigationGroup()`.

Tenant awareness is not configured here. When a tenant provider binds an available `TenantResolver`, the package adds and scopes `tenant_id`; otherwise it operates without tenant ownership.

Usage
-----

[](#usage)

Create a tag:

```
use Misaf\VendraTagger\Models\Tagger;

$tag = Tagger::findOrCreate('Featured', type: 'content', locale: 'en');
```

Create a tag with an explicit translated slug:

```
$tag = Tagger::query()->create([
    'name' => ['en' => 'Featured products'],
    'slug' => ['en' => 'hand-picked'],
    'type' => 'content',
]);
```

Load ordered tags by type:

```
$tags = Tagger::withType('content')->get();
```

Attach tags to an Eloquent model using Spatie's trait:

```
use Illuminate\Database\Eloquent\Model;
use Spatie\Tags\HasTags;

final class Article extends Model
{
    use HasTags;
}

$article->attachTag('Featured', 'content');
```

### Vendra consumer integrations

[](#vendra-consumer-integrations)

Tagger binds the shared Support `TagResolver`. Product, User, Blog, Affiliate, Attribute, and FAQ detect that capability and enable their tag relations and Filament fields without depending on this package.

Create tags with the consumer's reserved type (`product`, `user`, `blog`, `affiliate`, `attribute`, or `faq`):

```
$tag = Tagger::findOrCreate('Featured', type: 'product', locale: 'en');
```

Do not add Product imports or dependencies to Tagger. Shared relationship metadata belongs to `misaf/vendra-support`.

Filament
--------

[](#filament)

By default, tag management is available on the `admin` panel in the shared Content navigation group. The resource supports translated name and slug editing, filtering, sorting, and drag-and-drop position updates. Names and slugs are validated within the current tenant and tag type; the type itself may be reused by any number of tags.

Testing
-------

[](#testing)

Run the package checks from the package directory:

```
composer test
composer analyse
```

From the Vendra monorepo:

```
vendor/bin/pest packages/vendra-tagger/tests
vendor/bin/phpstan analyse packages/vendra-tagger/src packages/vendra-tagger/database --memory-limit=2G
```

License
-------

[](#license)

MIT. See [LICENSE](LICENSE).

###  Health Score

46

—

FairBetter than 92% of packages

Maintenance97

Actively maintained with recent releases

Popularity9

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity58

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% 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 ~1 days

Total

23

Last Release

16d ago

Major Versions

0.2.0 → v1.0.02026-07-13

### Community

Maintainers

![](https://www.gravatar.com/avatar/41fd7351d25e29dafa18068d0418eecf6bb47a7473aabe6bc674b4ca35e71805?d=identicon)[misaf](/maintainers/misaf)

---

Top Contributors

[![misaf](https://avatars.githubusercontent.com/u/8195685?v=4)](https://github.com/misaf "misaf (79 commits)")

---

Tags

laravelfilamentphpmisaftaggervendra

###  Code Quality

TestsPest

Static AnalysisPHPStan

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/misaf-vendra-tagger/health.svg)

```
[![Health](https://phpackages.com/badges/misaf-vendra-tagger/health.svg)](https://phpackages.com/packages/misaf-vendra-tagger)
```

###  Alternatives

[tapp/filament-form-builder

User facing form builder using Filament components

133.5k6](/packages/tapp-filament-form-builder)

PHPackages © 2026

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