HTML WYSIWYG Editor

Compose rich text in a live editor and grab the generated HTML, with formatting, lists, links, and source view.

Compose rich text in a live editor and grab the generated HTML, with formatting, lists, links, and source view. Compose rich text in a live editor and grab the generated HTML, with formatting, lists, links, and source view.

Background

What a WYSIWYG editor does

WYSIWYG stands for What You See Is What You Get. Instead of typing raw HTML tags, you edit a document visually -- bold, italic, headings, lists, links, and so on -- and the editor translates your actions into markup for you. The page you are looking at uses the browser's built-in contenteditable capability plus the document.execCommand API, which has been part of every major browser for over a decade. There is no third-party library involved: formatting is applied natively by the browser, so the generated HTML matches exactly what your browser produces for any other editable area on the web.

What you can do with the toolbar

The toolbar covers the operations most people need: undo/redo, bold, italic, underline, strikethrough, headings H1-H3, paragraphs, code blocks, bullet and numbered lists, block quotes, links, and removing all formatting. The font and size selectors change the typeface and font size of the current selection. The Source toggle flips between the rendered view and a plain textarea containing the raw HTML, which you can edit directly. The stats line below the editor shows the character and word count of the current content.

How the HTML output is structured

The editor produces semantic markup rather than presentational soup wherever possible: headings become <h1>/<h2>/<h3>, lists become <ul>/<ol>/<li>, quotes become <blockquote>, and code becomes <pre>. Text-level formatting is applied with <strong>, <em>, <u>, and <del>. Because the browser's execCommand is the engine, the exact markup can vary slightly between browsers -- a bold click may produce <strong> in one browser and <b> in another. For maximum compatibility, the exported HTML is intentionally minimal and can be pasted into emails, CMS editors, or documentation systems without extra cleanup.

Practical tips

Copy the exported HTML from the output field after switching to Source view, or use the Copy HTML button. When pasting into an email client, keep the markup simple -- many clients strip <style> and complex nesting. If you need to embed this content in a page that already has its own styles, prefer semantic tags and avoid inline styles; the exported markup uses no inline styling, so it inherits your page's CSS naturally. Everything on this page runs locally in your browser; the content never leaves the page.

Built in-house on the browser's native contenteditable and document.execCommand APIs. No third-party library, fully offline.

Frequently asked questions

Why does the same action produce different tags in different browsers?
The editor delegates to the browser's native execCommand, and browsers differ slightly in what they emit (e.g. <strong> vs <b>, or <i> vs <em>). The content is functionally identical; if you need pixel-exact markup, use the Source view to adjust it.
Can I paste content from Word or Google Docs?
Usually yes. The browser's paste handler converts rich clipboard content into HTML on paste. Formatting may simplify in the process; after pasting, switch to Source view to inspect and clean up the markup.
Is the output HTML safe to use anywhere?
It is plain markup with no inline styles and no scripts, which is safe for emails, CMS content, and docs. For public web pages, prefer sanitizing any HTML that will be rendered verbatim to guard against pasted script tags.
Why is there no image upload button?
Image uploads require a server or data-URI handling, and this tool runs fully offline with no backend. You can still paste an image or a link into the editor, or add an <img> tag in Source view.
Does this tool collect my content?
No. Everything happens in your browser; there is no network request at all. Your text never leaves the page, and the page works with the network disconnected.
Can I use the output in an email?
Yes. Switch to Source view, copy the HTML, and paste it into an email composer that accepts HTML (most do). Keep the markup simple: strip anything beyond paragraphs, headings, lists, and links if your client mangles it.