WebBeautify

Diff, case, slugs, counters, and little helpers

Small developer utilities: text diff, JSON diff, slug generator, UUID v4 generator, case converter (camelCase, snake_case, kebab-case), word count, character count, lorem ipsum, hex to RGB, JavaScript obfuscator. Five-minute jobs, not a compiler.

Hello, World! → hello-world#0f766e → rgb(15, 118, 110)UUID v4 · text diff · JSON diff · word countA JS obfuscator is delay, not DRM.
Utilities tools

Why people open a slug generator, UUID tool, or diff

A slug generator turns `Hello, World!` into `hello-world` for a URL. A UUID v4 is a random identifier for fixtures — not a secret. Text diff compares two pastes; JSON diff pretty-prints both sides first so you are not fighting spaces. Case converter is for the file that mixed camelCase and snake_case. Word count and character count are for meta descriptions and tweets.

Hello, World! → hello-world#0f766e → rgb(15, 118, 110)UUID v4 · text diff · JSON diff · word countA JS obfuscator is delay, not DRM.
Diff, slug, UUID, case, and word count — small jobs, often.

JavaScript obfuscator vs minify

Minify is for size. A JS obfuscator raises the cost of casual reading — names get ugly, sometimes `eval(atob(...))`. It is not DRM. Anyone determined pretty-prints and sets a breakpoint. API keys in JavaScript are already public. Strict Content-Security-Policy may ban `eval`, which kills packed obfuscators. Use minify for the live bundle unless you have a real reason to delay a glance.

Tools in this hub

Text Diff

Diff two text blocks online. Line-level added/removed view for configs, SQL, and copy. Dual input editor.

JSON Diff

Compare two JSON documents. Pretty-print both sides, then line-diff the formatted output.

Character Counter

Count characters, words, lines, and bytes. Meta descriptions, tweets, and commit messages.

Word Counter

Count words and sentences in the browser. Same engine as the character counter, word-first layout.

Line Sorter

Sort lines alphabetically. Optional unique filter. Handy for CSS class lists and env keys.

Remove Duplicate Lines

Dedupe lines while keeping first-seen order. Cleanup for logs, emails, and imported lists.

Case Converter

Convert text between lower, UPPER, Title, camelCase, snake_case, kebab-case, and PascalCase.

Slug Generator

Turn a title into a URL slug. Lowercase, hyphenated, ASCII-ish. Built for tool pages and CMS permalinks.

UUID Generator

Generate UUID v4 identifiers in the browser. Copy one or a list for fixtures and API tests.

Lorem Ipsum Generator

Generate placeholder paragraphs for layouts. Enough text to test a formatter, not a novel.

Tabs to Spaces

Convert tabs to spaces. Default two spaces, matching the formatters on this site.

Spaces to Tabs

Convert leading spaces to tabs. Reverse of tabs-to-spaces for teams that still indent with tabs.

JavaScript Obfuscator

Light JS obfuscation: identifier packing is not a compiler. Raises the cost of casual reading. Not a security boundary.

Hex to RGB

Convert hex colors to RGB and RGBA. Accepts #RGB, #RRGGBB, and #RRGGBBAA.

RGB to Hex

Convert rgb() and rgba() colors to hex. CSS-style input, copy-ready output.

Color Converter

Convert between hex, RGB, and HSL. One field in, the rest out — for design tokens and CSS variables.

Questions about utilities

Is a text diff a git replacement?

No. It is a line-oriented compare for two pastes. Git is history, branches, and blame. Use diff when you have two blobs and thirty seconds, not a repository.

JSON diff versus text diff?

JSON diff pretty-prints both sides first so you are not fighting spaces. {"ok":true} and {\n "ok": true\n} are the same document; a text diff will scream anyway.

What does a slug generator do?

It turns a title into a URL-safe stem: Hello, World!hello-world. Fun fact: a UTF-8 non-breaking space (U+00A0) looks like a normal space and survives a lot of trim code. If a slug looks cursed, hunt that invisible roommate.

Are generated UUIDs version 4?

Yes — random v4 is the usual fixture ID. Fine for test data. For databases, follow your platform (ordered IDs, ULIDs, or gen_random_uuid()). A UUID is not a secret; it is an identifier.

Tabs versus spaces — who wins?

Your team charter. Converters exist because files disagree. Many formatters default to two spaces. function hi(){\treturn 1} and two-space indent are the same program with different clothing.

What does a JavaScript obfuscator actually do?

It raises the cost of casual reading — names get ugly, flow gets noisier. It is not DRM. Anyone determined still reads it. Minify shrinks; obfuscate hides from a glance, not from a debugger.

Hex to RGB — which gamut?

sRGB. #0f766e is rgb(15, 118, 110). Display-P3 and ICC profiles are a different conversation. For CSS on the web, hex / rgb / hsl is the daily set.

When are utilities the wrong tool?

When you need a compiler, a bundler, or a database. Sort lines, mint a UUID, slug a title, compare two blocks — then stop. The five-minute job is the point.