Sluggable models
The attribute, the trait and the interface that make an Eloquent model routable — plus every option and the methods you get.
Identity encoders
The pluggable token that stands in for the primary key — what each shipped encoder reveals, how to write your own, and how to migrate between them.
Self-healing routes
The canonical-redirect middleware, the Route::polyslug macro, and exactly which requests get redirected.
Access control
polyslugResolveQuery constrains which rows a slug may resolve to; polyslugIsRoutable keeps models out of hreflang sets and sitemaps.
Slug-only URLs
idLess drops the id suffix so the URL is the slug alone — and what Polyslug does to keep that safe.
Token-only URLs
slugless drops the slug so the URL is the token alone — and how to choose how long and how random that token is.
Multilingual slugs and hreflang
One slug per locale, a reciprocal hreflang set built from the same resolver as the canonical URL, and locale-aware redirects.
Polymorphic routing
One {type}/{polyslug} route that serves every content type, backed by a config registry.
Uniqueness and scope
What a slug is unique against, how to scope it to a tenant or a parent, and how to let records share a slug outright.
Transliteration and Unicode
The two ASCII transliteration profiles, the native Unicode mode for non-Latin markets, and what happens when a title has no sluggable characters.
History, events and immutability
The SlugChanged and SlugRedirected events, frozen slugs, and reading a model's superseded slugs.
Gone and superseded content
Return 410 for permanently removed content and 301 to a successor for content that moved — instead of a soft-404 that loses its ranking.
Nested (hierarchical) slugs
Compose ancestor slugs into the URL path — computed on read, so renaming or reparenting an ancestor needs no cascade.
The URL resolver
The one class you have to write yourself — Polyslug knows a model's slug, but only your application knows the route it lives on. Bind it once and short links, sitemaps and canonical tags all work.
Sitemaps
A streaming XML sitemap with reciprocal hreflang alternates, built from a resolver you bind.
Short links
A stable /go token per model and locale that always redirects to the current canonical URL — so a printed or QR-coded link survives every rename.
Backfilling existing rows
Generate slugs for rows that predate Polyslug — inline or as chunked queued jobs, safe to run repeatedly.
laravel/head integration
Let a Polyslug model write its own canonical URL, hreflang set, Open Graph locales and robots directive into laravel/head — the four head facts only Polyslug knows.