Text

Slugify

Convert text to a URL-safe "slug": Cyrillic (uk/ru) transliteration following the official standard, diacritic and punctuation stripping, lowercase.

A slug is a URL-safe version of a title or name: lowercase Latin letters, digits, and hyphens instead of spaces. This tool transliterates Cyrillic text using the official standard and strips diacritics and characters that aren't valid in a URL.

How to use it

Common uses

Things to keep in mind

Cyrillic transliteration isn't unique — different systems (e.g. passport vs. scholarly) transliterate the same letters differently; this tool follows the official transliteration standard.

Keep slugs short and meaningful — long slugs are harder to remember and look worse in search results.

Article about this tool: Slugify: turning arbitrary text into a URL

Frequently asked questions

How is text turned into a URL-friendly slug?

The text is lowercased, Cyrillic characters (Ukrainian, Russian) are transliterated per the official standard, diacritics and URL-incompatible characters are stripped, then words are joined with the chosen separator.

Can I choose the separator used in the slug?

Yes, the separator option lets you choose the character that joins the slug's words, typically a hyphen or underscore.

Is the entered text sent to a server?

No, all slug generation runs locally in your browser in JavaScript, nothing is transmitted online.

What if two different titles produce the same slug?

The titles "Hello, World!" and "hello world" normalize to the same slug, even though the texts differ. If the slug is used as a unique identifier (in an article's URL, say), this kind of collision needs extra handling — typically a numeric suffix or ID.

Why doesn't plain URL encoding work instead of a slug?

Percent-encoding of Cyrillic text is technically valid in a URL but unreadable to a human and looks untrustworthy in an address bar or when copied. A slug solves the readability problem, not just technical character validity.

Articles: Text

Case Converter: why different naming styles exist

Why one project writes variables in camelCase but files in kebab-case, and where these rules came from.

Text Diff: how algorithms find the difference between two texts

How a diff algorithm finds the minimal set of changes between two versions of a text.

Regular expressions: basic syntax and common patterns

How to read a regular expression, and how greedy matching differs from lazy matching.

Sorting and deduplicating lines: why it matters

Why numeric sorting putting "10" before "9" is a mistake, and how to avoid it.

String Escape: why the same text needs escaping differently

Why the same quote character gets escaped differently in a JS string, JSON, and a shell command.

CRLF vs LF: why line ending characters still matter

Why a file written on Windows can show as "entirely changed" in git on Linux.

Counting characters and words: why it's not always trivial

Why an emoji or an accented character can count as several characters at once.

Lorem Ipsum: where the placeholder text came from and why it exists

Why designers deliberately use "nonsense" text instead of real content in mockups.

Markdown: why plain-text syntax beat rich text editors

Why developers choose to write documentation in Markdown instead of a rich text editor.

Whitespace and invisible characters: the hidden cause of weird bugs

Why two strings that look identical can fail to match because of an invisible character.

Text Reverse: why "reversing text" is harder than it sounds

Why a naive string reversal can turn an emoji into unusable bytes.

Text frequency analysis: why count how often words repeat

How letter frequency in ciphertext helps crack the simplest substitution ciphers.