Text & Writing Tools

Free text manipulation and analysis tools. Everything runs in your browser โ€” paste it in, transform it, copy it out. Nothing is sent to a server.

Word & Character Counter Full guide โ†’

Counts

Words
0
Characters
0
Characters (no spaces)
0
Sentences
0
Paragraphs
0
Reading time (200 wpm)
0 min

How it works

Words are counted by splitting on whitespace and filtering empty strings. Sentences split on `.`, `!`, and `?`. Reading time uses 200 words per minute (the average adult reading speed for general text โ€” technical material is slower at ~150 wpm).

When to use it

Hitting essay word counts, checking social media character limits (Twitter/X is 280, LinkedIn is 3,000, Instagram captions are 2,200), staying inside SEO meta description ranges (~155 chars), or estimating how long a blog post takes to read.

Common mistakes

Pasting from Word with smart quotes and special spaces โ€” those still count as characters but may not behave like spaces in word splitting. Also: assuming reading time is universal. Technical or academic text reads about 25% slower.

Case Converter

Conversions

UPPERCASE
lowercase
Title Case
Sentence case
camelCase
PascalCase
snake_case
kebab-case
CONSTANT_CASE

How it works

Eight common case formats applied to your input. Title Case capitalizes every word; Sentence case capitalizes only the first letter and after periods. Programming cases (camel, Pascal, snake, kebab, constant) split on spaces and punctuation, then re-join in the target format.

When to use it

Renaming files for consistency, formatting code variables, normalizing CSV column headers, fixing all-caps text someone sent you, generating CSS class names, or converting between programming style guides.

Common mistakes

Title case rules vary by style guide (AP Title Case lowercases short prepositions like "of", "the", "in"; this tool capitalizes every word for simplicity). For publishable copy, double-check against your style guide.

Find & Replace

How it works

Replaces every occurrence of the "find" string with the "replace" string. Case-sensitive by default, with an optional case-insensitive mode and an optional regex mode for pattern matching.

When to use it

Cleaning up data exports, batch-renaming things in a list, fixing typos across a document, removing unwanted characters, or transforming text between formats. Faster than opening a code editor for one-off jobs.

Common mistakes

Forgetting to escape regex special characters when using regex mode โ€” `(`, `)`, `.`, `?`, etc. need backslashes. Also: not previewing the result before copying out โ€” accidentally replacing a substring inside a longer word can break things.

Remove Duplicate Lines

How it works

Splits the input on line breaks, walks through each line in order, and keeps only the first occurrence of each unique value. Optional trimming removes leading and trailing whitespace before comparing; case-insensitive mode treats "Apple" and "apple" as the same.

When to use it

Deduping email lists, contact lists, URLs, log files, CSV columns, or any other line-based data. The output preserves the original order of first occurrences.

Common mistakes

Forgetting that whitespace counts. " apple" and "apple " look identical but aren't unless you check the trim option. Leading whitespace from copy-paste indentation is a common gotcha.

Sort Lines Alphabetically

How it works

Splits on line breaks, sorts each line according to the selected order, and rejoins. Numeric sort interprets each line as a number; length sort orders by character count.

When to use it

Organizing lists, prepping data for review, building clean ToCs, ordering tags or categories, or spotting outliers (sort by length to find lines that look weird).

Common mistakes

Using alphabetical sort on a list of numbers โ€” "10" comes before "2" alphabetically. Switch to numeric sort for any list of numbers.

Text to Slug (URL-Safe)

Slug

URL-safe slug

How it works

Lowercases the text, removes accents and diacritics, strips punctuation and special characters, replaces spaces and remaining symbols with the chosen separator, and collapses repeated separators. The result is safe to use in URLs, file names, and database keys.

When to use it

Generating blog post URLs, creating clean file names from titles, building API endpoints, making CSS class names from human-readable strings, or any time you need a "code-safe" version of normal text.

Common mistakes

Forgetting that some characters (curly apostrophes from Word, em-dashes, smart quotes) get stripped. If your output is missing letters, check the input for hidden Unicode characters first.

Reverse Text

Reversed

Reversed characters
Reversed words
Reversed lines

How it works

Three reversal modes. Character reversal flips every character end-to-end. Word reversal reverses the order of space-separated words. Line reversal reverses the order of lines.

When to use it

Creating mirrored text for graphics, brain teasers, palindrome checking, reversing list order, or generating obfuscated text. Reversed words is also useful for "Yoda speak" jokes.

Common mistakes

Character reversal with multi-byte Unicode (emoji, combined characters) can produce broken sequences. The tool uses standard JavaScript string reversal which handles BMP characters but may corrupt astral plane characters.

Markdown Preview

Rendered HTML

How it works

Parses common markdown syntax (headings, bold, italic, links, lists, inline code, code blocks, blockquotes) and renders to HTML in real time. This is a lightweight in-browser parser, not a full CommonMark implementation, so some edge cases (nested lists, tables, footnotes) aren't supported.

When to use it

Drafting README files, GitHub issues, blog posts, documentation, or any markdown-formatted content where you want to see what it'll look like before publishing.

Common mistakes

Forgetting that markdown is whitespace-sensitive. A list needs a blank line above it. A code block needs indentation or fence markers. Nested lists need 2-space indentation per level.