About

One counting rule, printed on the page, applied to every text you paste.

What this site does

Two pages, one counter: words, characters (with and without spaces), sentences, paragraphs, reading time, speaking time and the most repeated words. Everything is computed in the browser from the text you paste; there is no account and no upload.

The counting rules

NumberRuleWhere it breaks
WordsRuns of letters or digits; internal apostrophes and hyphens stay attachedCJK text has no spaces, so the word count is meaningless there
CharactersEvery UTF-16 code unit, including spaces and line breaksEmoji can be several code units; some platforms count them differently
Characters, no spacesAll whitespace removed before countingSome forms trim leading and trailing whitespace only
SentencesNon-empty pieces between . ! ?Abbreviations such as "Dr." split a sentence in two
ParagraphsBlocks separated by a blank lineA single line break does not start a new paragraph
Reading timeWords ÷ 200 per minuteDense or technical text is slower
Speaking timeWords ÷ 130 per minutePauses, slides and audience questions are not counted

Each rule is printed next to the result on the tool pages, so a number can be checked by hand.

Why the rules are explicit

Different tools disagree because they use different rules, not because one is broken. Microsoft Word keeps hyphenated words whole; some online counters split them. Google Docs counts a trailing space; some others do not. Publishing the rule is the only way to make the number reproducible.

What it cannot do

On word-count anxiety. A counter is a tool for trimming and planning. Treating an essay target as a number to hit exactly, rather than a range to land inside, makes writing worse, not better.

How the pages are built

Static HTML, one stylesheet and one script, served from this domain. No framework, no CDN, no analytics script, no cookie. The counter is a few hundred lines of plain JavaScript, which is why it loads instantly and works offline once the page is open.

Corrections

If a counting rule is wrong, the fix belongs in the script that all pages share, not in the page text. The tool pages, the about page and the tests all read from that one definition.