Slug Generator
Turn any title into a clean, URL-safe slug — live, as you type.
Generate a slug
Type a title. The slug updates live: lowercased, accents stripped, everything that isn't a letter or number collapsed to a single dash.
Slug
how-to-set-up-a-headless-cms-for-free37 / 60 characters
How it works
The title is Unicode-normalized to split accented characters from their base letters, the accent marks are dropped, everything is lowercased, then every run of non-alphanumeric characters collapses to a single dash. This is the same normalization step most CMS platforms — including content type slug fields — run automatically on save.
Slug maker vs. slug creator: same job
“Slug generator,” “slug maker,” and “slug creator” all point at the same problem: turning a human-readable title into the string that goes in a URL path. Whatever you call it, the output rules are the same — lowercase, hyphen-separated, no punctuation, no accented characters — because that’s what’s actually safe unescaped in a URL, not a style preference.
Python’s slugify vs. this tool
If you’re slugifying on the backend, Python’s django.utils.text.slugify or the standalone python-slugify package do the same normalize-strip-lowercase-join steps this tool runs client-side. Use this page to eyeball a slug instantly while drafting a title; use the Python library when the same logic needs to run server-side on every save, so a slug can’t be entered any other way. Once a content schema has a slug field like this one, the rest of its fields are usually worth typing too — see the JSON to TypeScript converter.
Get slug validation built into your schema
Mark any field isSlug in a Draftbase template and the API rejects anything that doesn't match this exact pattern — no separate validation step in your app.
Hobby is free, no card. Startup is $49/mo when you outgrow it. The price is on the pricing page, where prices go.
No migration quarter, no kickoff workshop. Define a template and ship something today.
Frequently asked questions
What makes a slug URL-safe?
Lowercase letters, numbers, and single dashes between words, with no spaces, punctuation, or accented characters. That set is safe in a URL path without percent-encoding and reads clearly in a browser address bar.
Why strip accented characters instead of encoding them?
A URL-encoded accented character (e.g. %C3%A9 for é) is technically valid but unreadable and inconsistent across tools — converting café to cafe keeps the slug readable and matches how most CMS and static-site slug fields behave.
What slug length should I use?
There’s no hard limit, but keeping a slug under ~60 characters keeps it fully visible in search results and easy to read in a URL bar — the default here matches that.
More free tools on the tools page, or read the content modeling guide on /content-modeling.