Skip to content
Marvin's Toolbox.

Search tools

Type to filter all tools

Slug Generator

Turn any text into a clean URL slug. Transliterates accents and non-Latin scripts to ASCII, with options for the separator, letter case and a length limit. Handles many titles at once, one line per slug.

Everything runs locally in your browser. Your data never leaves your device.

Options

Characters. Slugs are cut at a word, never mid-word.

URL preview

Each slug shown inside an example link, with its own copy button.

Type a title above to see how it reads as a link.

Next steps

Send this tool's output straight into another tool.

Convert text into every case at once: title case in the APA, AP, Chicago, MLA, Bluebook, AMA and NYT styles, sentence case, upper, lower, camelCase, snake_case, kebab-case and more.

Count words, characters, sentences, paragraphs, lines and more as you type, with estimated reading and speaking time.

Remove duplicate lines from a list or text, keeping the first occurrence. Optionally ignore case and whitespace, or drop blank lines too.

Replace text in two modes: plain find and replace all, or regular expressions with flag controls and capture group references like $1.

Compare two texts and see every added, removed and changed line highlighted, side by side or inline, with the changed words marked within each line. Ignore case, whitespace or blank lines, read a summary of how much changed, and export the result as a unified diff.

Paste a UUID to see what it carries: version, variant, and for time-based versions the exact timestamp, clock sequence and node. Also shows the raw bytes, the 128-bit integer and the URN form.

Decode Base64 to text or encode text to Base64. Paste into the top box, read the result below, and flip the direction with one click. Handles Unicode correctly, reads URL-safe Base64, and shows binary payloads as a hex dump you can download.

Convert numbers between binary, octal, decimal, hexadecimal and any base up to 36. Type into any field and the others update as you go. Handles huge integers without losing precision and accepts 0x, 0b and 0o prefixes.

Convert between scientific notation and full numbers as you type. Reads 1.23e5, 1.23 × 10^5 and plain numbers, shows the value written out, in normalized scientific notation and in engineering notation, and can round to any number of significant digits.

About the Slug Generator Tool

This tool turns titles into clean URL slugs. Paste one title per line and every line becomes a slug, so a whole content plan can be converted in one go. Accented letters and non-Latin scripts like Cyrillic, Greek and Arabic are transliterated to plain ASCII.

The options cover the choices that actually differ between sites: the separator, the letter case, how German umlauts are spelled, an optional length limit and a stop word filter. A preview shows each slug inside an example link so you can judge how it reads.

What you can do

  • Turn a blog post or page title into an SEO friendly URL slug.
  • Convert a whole list of titles at once, one slug per line.
  • Transliterate accents, Cyrillic, Greek and Arabic to ASCII.
  • Spell German umlauts as ae, oe and ue, or as plain a, o and u.
  • Pick a dash, underscore, dot or no separator, or output camelCase.
  • Limit the slug length, cut at a word boundary instead of mid-word.
  • Remove English stop words like a, the and of for shorter slugs.
  • Spell out symbols, so & becomes and, @ becomes at and % becomes percent.

How to use the Slug Generator

  1. 1Paste your titles into the input, one per line.
  2. 2Pick the separator, letter case and umlaut style, and set a max length if your CMS needs one.
  3. 3Toggle stop word removal, symbol spelling and camelCase splitting to taste.
  4. 4Copy or download all slugs from the output, or copy a single one from the URL preview.

What makes a good slug

A good slug is short, lowercase, dash separated and made of the words someone would search for. Search engines treat hyphens as word boundaries, which is why the dash is the default here. Stop words such as a, the and of add length without adding meaning, so the stop word filter drops them while keeping the words that carry the topic. If a title is nothing but stop words, the filter steps aside rather than produce an empty slug.

The length limit never cuts a word in half. It drops whole words from the end until the slug fits, so ten-tips-for-better-sleep limited to 12 characters becomes ten-tips-for, not ten-tips-for-b.

Umlauts and other scripts

German umlauts have two common ASCII spellings and the right one depends on your audience. The German convention writes ä as ae, ö as oe and ü as ue, which keeps the pronunciation and is what German readers expect in a URL. The simple style writes them as plain a, o and u, which many international CMSes default to. Both spell ß as ss.

Cyrillic, Greek, Arabic and other scripts with a Latin transliteration become readable ASCII, so я люблю единорогов turns into ya-lyublyu-edinorogov. Scripts without a Latin mapping, such as Chinese and Japanese, have no sensible one-to-one transliteration and are dropped instead, so check those slugs by hand. Emoji are removed too, apart from a few with a word spelling.

Batches, casing and next steps

Output lines match input lines exactly, including empty ones, so slugs pasted back into a spreadsheet stay aligned with their titles. The casing options go beyond lowercase: keep the original case where your system is case sensitive, or pick camelCase for identifiers, where the separator is dropped automatically. Source text that is already camelCase is split into words first, and you can turn that off when fooBar should stay one word.

To clean the title list before slugging, remove repeats with the Dedupe Lines tool. To restyle the titles themselves, use the Text Case Converter. To take a generated slug apart inside a full address, the URL Parser breaks a URL into its pieces.

Decode Base64 to text or encode text to Base64. Paste into the top box, read the result below, and flip the direction with one click. Handles Unicode correctly, reads URL-safe Base64, and shows binary payloads as a hex dump you can download.

Escape text into HTML entities or decode entities back to plain text. Choose named or numeric entities, escape only the unsafe characters or everything outside ASCII, and read the result live.

Paste anything that looks encoded and this tool works out what was used and undoes it, layer by layer. The whole BaseXX family from Base16 to Base85, binary, URL escapes, HTML entities, ROT13 and gzip, Brotli or Zstandard compression are detected in any combination, and every step of the chain is reported.

Escape or unescape a string for JSON, JavaScript, regex, shell, SQL, CSV, XML and more. Paste text, pick the target format and copy the result, in either direction.

Encode text for use in URLs or decode percent-escaped strings back to readable text. Choose component, full-URL or form encoding, unwrap double-encoded strings, and break a URL into its parts with every query parameter decoded.

Format code in JavaScript, TypeScript, JSON, JSON5, HTML, Vue, CSS, SCSS, LESS, Markdown, YAML, GraphQL, XML and SQL. Pick tabs or spaces, set the indent width, and format the input in place with one click.