A little clarity for your words.

Count. Tidy.
See what changed.

Three focused text helpers, with your original text kept in view and the limits explained.

Text processing happens in this browser. These tools do not upload, save or log the text you enter. Loading the site still makes ordinary hosting requests and may update the site's aggregate page-view counter.

Every word, a little clearer.

Count word-like units, Unicode code points and grapheme clusters. Choose a reading rate for a rough time estimate.

Choose a whole-number rate from 50 to 1,000. The default 200 is an adjustable arithmetic assumption, not a validated reading speed. The estimate is especially unreliable for Chinese, Japanese and Korean.

Where supported, Intl.Segmenter uses this page's language for word-like units and grapheme clusters. Spaces and punctuation count as characters, but not as word-like units. Browser segmentation rules can vary. Without Intl.Segmenter, word counts use approximate whitespace-separated tokens and grapheme counts are unavailable; the result labels this fallback.

Tidy the text. Keep the original.

Preview one change at a time. Each operation starts from the original text; the output never overwrites it.

Trim removes whitespace at the start and end of each line. Collapse replaces runs of horizontal whitespace with one ordinary space while keeping line breaks. Case conversion uses this page's language and can change the number of characters. These operations do not correct grammar, remove markup or sanitize code.

See the changes, line by line.

Compare exact lines from an earlier and a later version. Added, removed and unchanged lines are labeled in the result.

Each input allows at most 4,000 UTF-16 code units and 300 lines. Comparison is exact and line-based: case, spacing and Unicode representation matter. It does not compare meaning, track moves or identify changes within a line. Line endings are not normalized; any retained carriage returns count as content.

Small examples. Clear limits.

Words are not characters.

The default counting example has 2 word-like units, 3 Unicode code points and 3 grapheme clusters with supported segmentation. At 200 word units per minute, 2 units give 0.01 minutes. Emoji and combining marks can make code-point and grapheme counts differ.

A grapheme cluster approximates a visible character, but is not the same as a glyph or a byte. Counts are not platform-specific posting limits. Changing page language may change word segmentation and case conversion.

Preview a single cleanup.

In the cleanup example, trimming removes the outside spaces and keeps the three spaces inside. Collapsing spacing makes each horizontal run one space and keeps the line breaks. Clearing the preview leaves the original text untouched.

One changed line, two labels.

The comparison example keeps the first line unchanged, removes the earlier second line and adds the later second line. A changed line is shown as a removal and an addition. Line labels and symbols carry the difference without relying on color.

Counting and cleanup inputs allow at most 20,000 UTF-16 code units each. A code unit is a browser string unit: many emoji use two or more. Input fields may stop accepting a paste at the limit, so check that your full text fits. Results are previews; inspect them before using them elsewhere.