- How do I install remihin/filament-title-with-slug in a Laravel Filament app?
- Install via Composer with composer require remihin/filament-title-with-slug. The package is a Filament form field, so integration typically means replacing a pair of TextInput fields on a Filament resource form. Check the repository README for any panel plugin registration step, because the provided overview does not confirm whether registration is required. Pin an exact patch such as 1.0.2 while release notes remain opaque.
- Which Laravel and Filament versions does this title-with-slug field support?
- The evaluation assumes Laravel 10/11, PHP 8.1+, Livewire, and Filament v3, but that is an assumption that must be verified. Inspect composer.json for the declared Filament major version and upper bound before scheduling a panel upgrade. The package is single-maintainer and small, so Filament major-version compatibility may lag upstream releases.
- How does the slug field behave when I edit the title after publishing?
- The package derives the slug from the title as you type, and the slug remains editable before saving. The provided evaluation does not confirm whether editing an existing title re-derives an already-published slug or whether manual edits lock the slug. Test this behavior explicitly on a low-traffic resource before rolling it out, because changing live URL segments requires a redirect map.
- Does remihin/filament-title-with-slug handle duplicate slugs automatically?
- The package documentation context does not specify whether duplicate slugs are silently overwritten, rejected by validation, or auto-suffixed. Slug uniqueness scoping, whether global, per-locale, or per-parent, is application-specific and must be handled in your Filament form or model layer. Add a uniqueness validation rule and database index if absent, and backfill duplicates before adopting the field.
- Is this package safe for production use in a Laravel admin panel?
- Architecturally it is a low-risk, additive UI component inside the Filament panel boundary, and it does not alter persistence or routing. The main production risks are maintainership concentration, small install base, and opaque patch release notes. Pin an exact version, review diffs when available, and keep slug-generation authority either fully in the component or fully in a model observer.
- How does the component handle non-Latin titles and transliteration?
- Slug generation for internationalization, transliteration, and non-Latin scripts is a known behavioral edge case for this kind of component. The provided context does not confirm the transliteration strategy or integration with spatie/laravel-translatable for per-locale slugs. Test representative titles in your target languages before relying on generated slugs. If per-locale slugs are required, verify whether the field supports that or implement it outside the component.
- Can I still edit the slug manually, or is it locked to the title?
- The overview says the slug is editable before saving, so manual editing is part of the intended workflow. It is not confirmed whether a manual edit locks the slug against future title changes. Treat that as an open question and test the exact behavior in your Filament form. Document the expected editor workflow so content teams do not accidentally overwrite intentional slugs.
- How do I test this Filament form field in my Laravel application?
- Focus tests on slug derivation, manual edit behavior, duplicate handling, and transliteration for your content languages. Use Filament and Livewire form tests to fill the title, observe the slug field, then edit the slug and title in different orders. Include a test that editing a published record does not silently change a live URL unless intended. The package evaluation explicitly recommends testing internationalization and edge cases rather than assuming behavior.
- What alternatives should I consider before adding this Filament title-with-slug package?
- You can implement the same behavior with two Filament TextInput fields plus a Livewire afterStateUpdated callback, or generate slugs in a model observer or service layer. The package is best when you want a drop-in form component and your slug is a first-class Eloquent column. If slugs are relational, per-locale via spatie/laravel-translatable, or produced by existing service logic, the component may duplicate rather than complement that logic. Weigh the small dependency against the maintainership risk.
- What changed in version 1.0.2, and is it safe to upgrade?
- The 1.0.2 release notes contain only a compare link, so the diff could be a dependency bump, a bug fix, or an undocumented behavior change in slug derivation. Semver classifies it as a patch, but that is inference rather than evidence. For a package that mutates user-visible URL segments, review the actual diff before upgrading. Pin to 1.0.2 and re-evaluate the pin when a readable changelog is available.