Local-firstYour text never leaves your browser. No upload, no account, no server.
Most online text tools send whatever you paste to a server, run the work there, and send a result back. Your words sit in someone else's logs, backups and databases, and you have to trust a privacy policy.
Local-first means the opposite: the whole tool is downloaded to your browser and runs on your own device. Nothing you type is transmitted anywhere: not to us, not to anyone. There is no server that could receive it, which is a stronger guarantee than a promise not to look.
Three consequences worth knowing:
Paste a title, or a whole column of them, and get URL-safe slugs back, one per line. Accented characters are converted to their readable Latin equivalents rather than stripped, so "Crème brûlée" becomes creme-brulee instead of the unsearchable crme-brle that naive tools produce. Length limits truncate on a word boundary rather than mid-word, and you can switch between hyphens and underscores depending on what your platform expects.
Accents become readable rather than disappearing
Crème brûlée & other French Desserts
creme-brulee-and-other-french-desserts
The text is Unicode-normalised first. Normalisation decomposes an accented character into two codepoints: the plain base letter, and a separate combining mark that draws the accent. Removing only the marks leaves ordinary Latin letters behind.
The naive alternative, deleting everything outside ASCII, turns "brûlée" into "brle". That is unreadable, unsearchable, and produces different slugs for titles a reader would consider nearly identical.
A few letters are not accented forms of anything and cannot be decomposed: ß, æ, ø, ł and their relatives are distinct letters. Those are mapped explicitly, so Straße becomes strasse rather than losing a character.
Hyphens, for anything that will be a public URL. Google has said for many years that it reads a hyphen as a word separator and an underscore as a word joiner, so my_great_post can be treated as a single token while my-great-post reads as three words.
Underscores remain the right choice in places where the convention is set by something other than search: certain frameworks, filenames destined for systems that dislike hyphens, and identifiers that will be used in code. Both are available for that reason.
Roughly 40 to 60 characters is a common target: long enough to describe the page, short enough to survive being displayed in a search result. Truncation here always falls on a word boundary, because a slug cut mid-word looks broken and can invert the meaning of the last word it kept.
Apostrophes are removed rather than turned into separators, so "Don't Stop" becomes dont-stop instead of don-t-stop. Ampersands expand to the word "and", which reads correctly and avoids a URL-escaping problem later.
Text in a script with no Latin equivalent produces an empty slug rather than mangled output. There is no faithful transliteration available, and inventing one would produce a URL that misrepresents the title it came from.
Because the text is Unicode-normalised first, which splits an accented letter into its base letter plus a separate combining mark. Removing only the marks leaves a readable Latin letter. Tools that simply delete non-ASCII characters turn "brûlée" into "brle", which is neither readable nor findable.
Hyphens. Google has stated for years that it treats hyphens as word separators and underscores as word joiners, so my_great_post can be read as one token while my-great-post reads as three words. Underscores remain the convention in some frameworks and filenames, which is why both are offered.
Short enough to read in a search result and long enough to describe the page: roughly 40 to 60 characters is a common target. Truncation here always falls on a word boundary, because a slug cut mid-word looks broken and can change the meaning of the last word entirely.
Characters with no Latin equivalent, such as Japanese or Arabic, produce an empty slug rather than mangled output. That is the honest result: there is no faithful transliteration this tool could perform, and inventing one would produce a slug that misrepresents the title.