Rich Text Editor
Document
Bold, italic, underline, strike and code are applied to the selection; headings, quotes and bullets to the line the caret is on. Shortcuts: Ctrl+B, Ctrl+I, Ctrl+U, Ctrl+Shift+X, Ctrl+E.
Preview
The preview renders after mount.
Document stats
HTML
<p>Everything you type stays plain text.</p> <p>Select any word and format it.</p>
Scope and limits
The document is plain text underneath: marks are stored as offsets, so editing the text can never leave a half-open tag behind, and the preview is rendered from the same model the toolbar edits.
The block kinds are paragraphs, two heading levels, quotes and bullets — there are no tables, images, links or font controls, and the HTML is a starting point for a page rather than a styled document.
The rich text editor formats a plain-text document with bold, italic, underline, strike and code plus line-level headings, quotes and bullets, and renders an escaped HTML preview that updates as you type.
What is Rich Text Editor?
The rich text editor keeps plain text as the source of truth and stores formatting as offsets over it. Applying bold to a selection records a range, not a pair of tags, which means editing the text can never leave a half-open tag behind: ranges are clamped to the document, split at line breaks and merged whenever the model is normalised. Bold, italic, underline, strike and code all work the same way, and they nest cleanly when they overlap.
The toolbar acts on the selection. Select a word and press the bold control, or use the keyboard shortcuts the buttons name — Ctrl+B, Ctrl+I, Ctrl+U, Ctrl+Shift+X and Ctrl+E. A selection that crosses a line break is applied per line, so a mark never spans two blocks; a single cursor with no selection applies nothing, because there is no text to format. The HTML preview renders from the same model the toolbar edits, so what you see in the document is what the export contains.
Block kinds live on lines rather than marks: paragraph, heading, subheading, quote and bullet, chosen for the line the caret is on. Headings render as h2 and h3 rather than h1, because the page's own title owns the top level and a document should not introduce a second one. Bullets on consecutive lines group into a single list, and quotes render as blockquotes.
Keeping the block kinds on lines rather than on ranges is what allows the document to be edited freely. A heading is a property of the line, so merging two lines or splitting one re-reads the kinds from the text instead of trying to move a range; the mark ranges do the same work for emphasis, clamped at every edit. This is also why the stats panel can report lines, marks and formatted words without parsing anything: the model already holds them as data.
Every character in the document is escaped before it reaches the HTML preview, and the only tags that can appear are the ones in the editor's fixed tables. That is why the tool shows a live preview without a sanitiser: nothing typed is ever interpreted as markup, so a pasted tag or a stray angle bracket appears as text. It is also why the export can be pasted into a page safely, though it is a starting point rather than a styled document.
The stats panel counts words from the text and formatted words, where a word counts as formatted when a mark covers its first character. Marks are counted as ranges, so a word that is both bold and italic contributes one range to each mark. The counts are meant for a quick read of how much of the document carries emphasis, not as a writing goal.
What the editor does not have is a table, an image, a link tool, a font picker or a colour palette. The block kinds stop at paragraphs, two heading levels, quotes and bullets. The HTML export reflects exactly those elements, so nothing appears in the HTML that is not visible in the document, and nothing in the document is dropped from the export. Nothing is saved between visits either; copy the HTML or download the file to keep the work.
How to use Rich Text Editor
- Type or paste the document text into the editor.
- Select the words to format and press a mark control, or use its keyboard shortcut.
- Put the caret on a line and choose its block kind: paragraph, heading, subheading, quote or bullet.
- Watch the HTML preview and the stats as the document changes.
- Copy the HTML or download the file to keep the result.
When to use Rich Text Editor vs related tools
Use the rich text editor when a short document needs a handful of formatting decisions and a clean HTML export: a notice, a newsletter body, a product blurb, a post that will be pasted into another system. If the source should stay readable as plain text, the Markdown Editor is the better fit and renders an outline alongside. For long documents built from named sections, the Block-Based Editor keeps structure in the model, and the Manuscript Formatter handles the punctuation and dash cleanup before submission.
Privacy & Security
This tool runs entirely in your browser — no data ever leaves your device. There is no server round-trip, no upload, no logging, and no account required. Your input is processed locally using client-side JavaScript and is never stored, transmitted, or accessible to anyone else. When you close the tab, everything disappears.