kduma/eloquent-sluggable
Generate unique, customizable slugs for Laravel Eloquent models. Automatically turn titles or other fields into URL-friendly strings, with configurable uniqueness, soft-delete handling, and per-model options. Simple to install, easy to integrate, and ideal for SEO-friendly URLs in any Laravel applic...
-2, -3), and regeneration-on-rename are in scope for launch or deferred. Slug behavior is a user-visible product decision, not just a framework detail./en/widget vs /fr/gadget) are a product requirement that constrains which slug package is viable. Confirm the package's translatable-model support before committing./orders/{slug}) has security and collision implications, especially in multi-tenant datasets.Consider it when:
Look elsewhere — or build in-house — when:
cviebrock/eloquent-sluggable and spatie/laravel-sluggable are the de facto standards with years of production use, active issue triage, and broad community familiarity. Choosing a 2-star package over these needs a specific justification, not a preference.To executives: This is a low-cost, low-risk utility for generating SEO-friendly URLs in our Laravel application. It is MIT-licensed and small enough to audit and replace, so financial exposure is negligible. The important caveat is adoption: it has almost no community usage, so I do not recommend it as a core platform dependency. I recommend a time-boxed pilot behind an internal interface, with the established alternatives as the default fallback.
To engineering: The package is a thin Eloquent slug trait — small blast radius, easy to read, easy to fork. Wrap it behind our own Slugger contract so swapping to spatie/laravel-sluggable or cviebrock/eloquent-sluggable is a one-file change. Before adoption, confirm: uniqueness handling under concurrent writes, transliteration behavior for our locales, soft-delete interaction, and whether slug regeneration is opt-in per model. Add tests for collision suffixes and non-ASCII titles regardless of which package we pick.
Decision framing: Buy the behavior, not the dependency. If the pilot passes and the code reads cleanly, keeping it is defensible; if any of the above semantics are unclear, default to a maintained alternative — the integration cost is nearly identical, and the support risk is not.
How can I help you explore Laravel packages today?