Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Filament Title With Slug Laravel Package

remihin/filament-title-with-slug

A Filament form field that pairs a title input with an auto-generated, editable slug. It keeps the slug in sync as you type, lets you tweak it manually, and helps ensure clean, unique URLs for your Laravel models.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Build vs. buy for a solved UI problem. A title→slug field pair is a small, well-understood pattern; this package replaces roughly a day of Filament form work (field pairing, live Alpine binding, preview URL, manual override) with a single component. The buy side wins on cost, the build side wins on control — the package's bus factor of one and opaque changelog are the counterweight.
  • Editor experience and content velocity. Auto-slugging with a live URL preview removes a step from the authoring flow and reduces broken or ugly URLs published by non-technical editors. That is a measurable reduction in editorial rework and SEO cleanup tickets, and it is the strongest justification for adoption.
  • Scope boundary for the roadmap. This is a presentation-layer component. It does not solve slug uniqueness, redirect/alias management, transliteration policy, or per-locale slugs. Those remain product decisions on our roadmap regardless of whether we adopt the package — good to name explicitly so adoption is not mistaken for solving URL governance.
  • Sequencing of panel upgrades. Because the package is pinned to a Filament major, adopting it introduces a dependency into our Filament v4 planning. The PM decision is whether slug UX is worth a compatibility line item in the panel upgrade, or whether it should sit behind a feature flag / fork.
  • Which content types get the behavior. Slug stability is a product policy, not a technical one: a marketing landing page that gets retitled for campaigns may want a locked slug, while an internal knowledge base may not care. The package supports per-resource decisions (it does not clobber published slugs), which lets us set policy resource by resource.
  • Locale strategy. If we ship multilingual content, this package covers only the single-locale case cleanly; per-locale slugs require one component per locale and a decision about which locale owns the canonical URL.

When to Consider This Package

Consider it when all of the following hold:

  • The admin surface is already Filament v3 (or the version we can verify against the package's declared constraint), with Laravel 10/11 and PHP 8.1+.
  • The content models store slug as a plain column on the Eloquent model, with either global or simple scoped uniqueness — not generated in a service layer or stored relationally.
  • We have (or will create) a unique index on the slug column and validation rules on the FormRequest/model; we accept that the package does not enforce uniqueness itself.
  • The set of resources needing this is more than one or two — otherwise the integration, audit, and pinning overhead exceeds the saved effort.
  • Editing is done by humans in the panel, not by API or imports (the auto-generation is client-side Alpine/Livewire and will not fire in headless contexts or tests).

Look elsewhere or build in-house when:

  • We are pre-Filament, on Filament v2 with a different API, or actively planning a Filament v4 migration in the next quarter — version coupling is the dominant risk here.
  • Slugs must be localized per market with transliteration guarantees for CJK, Cyrillic, or Arabic. Transliteration collapse is silent and the package does not document its normalization behavior.
  • Slug generation is a domain concern already owned by a model observer or service — running both splits authority and produces two sources of truth.
  • We need redirect/alias management for changed slugs. The package does not do this, and without it a title edit quietly breaks inbound links — arguably the highest-impact failure mode.
  • We require commercial support or a maintenance SLA. There is none; single maintainer, zero stars, and the 1.0.2 changelog is a compare link with no described changes. If forking into our own namespace is unacceptable, do not adopt.
  • Slug UX is the only thing we would gain — the code surface is small enough to reimplement with full control, and forking is genuinely cheap here.

How to Pitch It (Stakeholders)

To executives: This is a small, free (MIT) UI component that removes a manual step from content publishing and prevents editors from shipping malformed URLs. It is additive, confined to the admin panel, and removable without touching the database or the public site. The cost is not the package — it is a short integration and audit pass plus a recurring line item to keep it compatible with our Filament version. Recommendation: pilot on one low-traffic resource, measure editorial friction, and treat the single-maintainer risk as manageable because the component is small enough to fork if the maintainer disappears.

To engineering: One field object replaces the title + slug TextInput pair in a Filament resource schema. It is a form-schema dependency only — it must not leak into controllers, jobs, or APIs. The real work is outside the package: auditing existing slug columns and uniqueness scoping, backfilling nulls and duplicates, adding the unique index, and building a 301 redirect map for any URL that would drift. Slug generation is client-side, so tests must set slug explicitly rather than asserting on auto-fill. Pin to exact 1.0.2 until the maintainer publishes readable release notes, verify the declared Filament constraint before any panel upgrade, and re-derive behavior with a fixture set of Latin, accented, CJK, emoji, very long, and duplicate titles in a sandbox before touching production content.

To the editorial team: You type a title, the URL is generated for you, and you can see and edit it before publishing. Existing published slugs are preserved on edit, so retitling a live page will not silently change its URL — which protects links and search rankings, and means a deliberate URL change is a separate, explicit action.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
shitoudev/permissionmanager
johannesclimacus/laravel-tui
hocvt/seotools
vitalybaev/sypexgeo
amphibee/themosis-ignition
gito-me/fast-excel
frankyso/laravel-ipaymu
geolize-studio/laravel-chile
boomerangui/chat
jinas/dhivatar
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console