Edit rich text → get formatted HTML
Runs locally in your browser with one-click copy

<h1>Hey!</h1><p>Welcome to this HTML WYSIWYG editor</p>The HTML WYSIWYG editor is a simple “type like Word, copy like code” tool. You apply headings, bold/italic, lists, quotes, and code blocks visually, then copy HTML that’s already cleaned up and nicely formatted.
It’s most useful when you want decent HTML fast, but you don’t want to fight indentation, missing closing tags, or messy pasted markup.
Who typically uses it?
Good to know: the formatting output is generated in your browser. If you also need to escape special characters like <, >, or &, pair this with Escape/unescape HTML entities or convert Markdown drafts with Markdown to HTML.
Paste or type your content
Start with plain text, or paste from anywhere. Then use the toolbar to apply the structure you want.
Format with headings, lists, and emphasis
Keep it semantic: headings for sections, lists for steps, and bold/italic for emphasis.
Copy the formatted HTML
Use the copy button in the output panel. The HTML is prettified, so it’s readable and easy to maintain.
Share, favorite, or reset
If you’re iterating with teammates, use Share. If it’s a snippet you reuse, Favorite it. If you want a fresh start, Reset clears everything.
Worked mini-example (indentation math, just to sanity-check readability)
Most formatted HTML uses a fixed indent width. If the indent width is spaces and a line is nested levels deep, the leading spaces are:
You don’t need to do this manually—the editor does it for you—but it explains why prettified HTML feels so much easier to scan.
How to read the output
The output is the HTML you can paste into a CMS, a website template, or documentation. If you see <strong> and <em> it means bold and italic. Headings show up as <h1>, <h2>, etc.
Background: you want a signature with a name, title, and a short list of links. Inputs: 1 heading-like line, 2 paragraphs, 3 links.
Result (readability check): if you have lines with average depth and indent width , then total leading spaces are about .
Application: paste the output into your email client’s signature editor (or your site’s footer template).
Background: you’re writing a product description with “Features” and a short bullet list. Inputs: 1 section title, 1 paragraph, 5 bullets.
Result: if bullets are nested one level deep () and you have bullets, indentation alone adds spaces per bullet line.
Application: consistent list HTML prevents “random spacing” when the CMS applies its own styles.
Background: you’re writing a quick internal doc with headings, a checklist, and a code block. Inputs: 2 headings, 1 ordered list, 1 code block.
Result: the code block is wrapped as <pre><code>… which preserves whitespace. If you need to escape literal < characters inside code, use Escape/unescape HTML entities.
Application: paste into a wiki, README generator, or your docs site.
Background: you want someone else to quickly review the exact HTML output. Inputs: your text and formatting.
Result: a share link rehydrates the editor content. If your snippet has paragraphs and each paragraph averages characters, that’s around characters of body text—small enough for quick back-and-forth.
Application: share the link, agree on the structure, then paste the final HTML where it belongs.
You need clean HTML quickly
Great for CMS fields, support replies, and basic landing-page blocks.
You reuse the same snippet
Favorite common blocks like “How to apply” steps or disclaimers.
You’re collaborating
Share a link so others can tweak the same content structure.
You’re iterating fast
Reset is handy when testing different outlines and layouts.
You want predictable structure
Headings + lists keep styling consistent across pages.
You’re preparing dev-facing content
Use code blocks for commands, configs, and short snippets.
It may be a poor fit when:
Write structure first, styling second
Use headings and lists to build a clear outline. Then add bold/italic only where it truly helps.
Keep paragraphs short for web reading
A good rule of thumb is sentences per paragraph. It makes your HTML easier to scan and reduces “wall of text” fatigue.
Use code blocks for anything with whitespace meaning
Commands, JSON, YAML, and config snippets belong in a code block. Inline code is best for short tokens.
Escape tricky characters when needed
If the destination system treats & or quotes specially, run the output through Escape/unescape HTML entities before pasting.
Pro tip: If you’re starting from Markdown notes, convert them first with Markdown to HTML and then use this editor to adjust headings, spacing, and final structure.
This tool isn’t doing “math on your text” like a physics calculator—but it does apply a consistent formatting model so the HTML stays readable. One simple way to think about it is indentation.
Variables
(leading spaces = indent width × nesting depth)
A multi-step example (wrapped for mobile)
Suppose your snippet has lines with depths , , , , and spaces. Total indentation spaces are:
Again: you never have to compute this. The point is that consistent formatting reduces cognitive load.
WYSIWYG vs source HTML
WYSIWYG editors help you focus on meaning (headings, paragraphs, lists) rather than tags. The output is still plain HTML, so your destination (CMS, website, email client) decides final styling.
Semantic HTML
Prefer structural elements such as <h2> and <ul> so your content remains accessible and consistent across themes. When in doubt, keep the markup simple.
Escaping and entity encoding
If you need to show literal tags (for teaching or docs), you usually want escaped entities like <div>. That’s what Escape/unescape HTML entities is for.
The editor runs in your browser. Sharing creates a URL that encodes your content. Treat share links like any other link that contains information.
Pasted content often brings hidden formatting. Re-applying headings and lists inside this editor produces cleaner, more predictable HTML.
This tool is designed for visual editing and clean output. If you need exact attributes/classes, you may prefer editing in your code editor.
Use a code block for display, and if you need literal angle brackets, escape them as entities. For example, < becomes <.
The HTML is standard, but platforms differ. Email clients in particular can be strict. If you’re targeting email, test in your specific client.
Some structures are mutually exclusive. For example, a list item isn’t typically a heading. The toolbar prioritizes your last action, converting structure to keep the document valid.
Yes—use Markdown to HTML to get a base HTML draft, then refine it here.
Not a security sanitizer
If you accept untrusted user content, sanitize it at the destination system. Don’t rely on an editor UI as a security boundary.
Platform differences
HTML rendering varies between browsers, email clients, and CMS themes. Always test the final paste target if the output is customer-facing.
Share link sensitivity
Share links can contain your content. If the text is confidential, avoid sharing or keep links private.
Use a simple chronometer (stopwatch) to track elapsed time down to milliseconds. Runs locally in your browser.
Normalize email addresses to a standard format for easier comparison. Useful for deduplication and data cleaning. Runs locally in your browser.
Estimate the time needed to consume a total amount at a constant rate, and get an expected end time. Runs locally in your browser.
Parse and decode your JSON Web Token (JWT) and display its content. All computation runs locally in your browser.
Know which file extensions are associated to a MIME type, and which MIME type is associated to a file extension. Includes a full MIME types table.
Generate random Lorem Ipsum placeholder text with customizable paragraphs, sentences, and word counts. Runs locally in your browser.