Editor
Nothing is uploadedSelect text, then use the toolbar or the keyboard shortcuts. Press Tab from the toolbar to move focus into the document.
Ready.
What this editor does
Most online editors are either too small to be useful — bold and italic, nothing else — or they wrap a heavyweight framework that loads a megabyte before you can type. This one sits in between. It gives you the formatting that actually appears in web content: headings, lists, links, quotes, code blocks and horizontal rules. It then does the part most editors skip, which is making sure the HTML that leaves the page is clean.
Everything happens in your browser. There is no account, no server round trip, and no save button that uploads your document. Formatting, counting, sanitising and export are all local operations, which is why the editor keeps working after you disconnect from the network.
It is aimed at people who draft content that ends up somewhere else: a blog post destined for WordPress, documentation going into a static site, a newsletter, a product description, or a README. In each case what you need is semantic HTML you can paste and trust, not a proprietary document format.
Formatting reference
Each toolbar control maps to a specific HTML element. Knowing which element you get matters, because that is what your CMS and your search results will see.
| Control | Produces | Use it for |
|---|---|---|
| Paragraph | <p> | Normal body text. This is the default block. |
| Heading 2 | <h2> | Main sections. One H1 per page is the page title, not part of the body. |
| Heading 3 | <h3> | Subsections under an H2. Do not skip a level. |
| Bold | <strong> | Importance. Screen readers may add emphasis, which is correct for meaningful emphasis. |
| Italic | <em> | Stress emphasis, titles of works, foreign terms. |
| Underline | <u> | Rarely. Underlined text is mistaken for a link; prefer bold or italic. |
| Strikethrough | <s> | Content that is no longer accurate but is kept for context. |
| Bulleted list | <ul><li> | Unordered items. |
| Numbered list | <ol><li> | Ordered steps where sequence matters. |
| Blockquote | <blockquote> | Quoted passages from another source. |
| Code block | <pre> | Commands, snippets, anything where whitespace is meaningful. |
| Link | <a href> | Cross-references. Only http, https, mailto and relative URLs are accepted. |
| Horizontal rule | <hr> | A thematic break between sections. Do not use it as a decorative spacer. |
<strong> and not <b>: the editor asks the browser for style-free formatting and then normalises the result, so bold becomes <strong> and italic becomes <em> in the copied output. They look identical on screen, but the semantic versions carry meaning to assistive technology and to search engines.
Keyboard shortcuts
On macOS use ⌘ in place of Ctrl. Shortcuts work whenever focus is inside the document.
| Shortcut | Action |
|---|---|
| Ctrl + B | Bold |
| Ctrl + I | Italic |
| Ctrl + U | Underline |
| Ctrl + Shift + X | Strikethrough |
| Ctrl + K | Insert link |
| Ctrl + Z | Undo |
| Ctrl + Shift + Z | Redo |
| Enter | New paragraph |
| Shift + Enter | Line break inside the same paragraph |
| Tab / Shift + Tab | Move between the toolbar and the document |
Press Tab while inside the document to leave it — the editor does not trap focus.
How paste cleaning works
Paste is the moment most editors betray you. Copy a paragraph from a Word document or a Google Doc and a naive editor accepts whatever HTML the clipboard offers, which for Word means inline font declarations, mso- style properties, empty o:p paragraphs and sometimes an entire <style> block. That markup then travels into your CMS and fights your site's stylesheet.
What happens here
- The pasted HTML is parsed in an inert document, so no script runs during parsing.
- Every element is checked against a short allowlist. Anything outside it is either dropped (scripts, styles, iframes, images, forms, meta) or unwrapped so its text survives (font, span wrappers, custom tags).
- Attributes are removed unless explicitly allowed.
<a>keepshrefandtitle; everything else loses its attributes. - Link targets are validated. A
javascript:,data:orvbscript:URL is stripped, so a malicious link cannot be pasted in and then copied out to your public site. - External links gain
rel="noopener noreferrer". - The cleaned result is inserted, and the same sanitiser runs again before anything is copied or downloaded.
Pasting plain text
If the clipboard has no HTML — a terminal, a PDF reader, a code editor — the text is inserted as text. Line breaks are preserved and nothing is interpreted as markup, so pasting <script> shows the literal characters instead of running anything.
Privacy and autosave
The editor makes no network requests. Your text is never sent anywhere, and there is no analytics event that carries it. You can verify that yourself: open the browser's Network panel, clear it, type a paragraph, and confirm no request appears.
What is stored on your device
- Theme preference — dark or light, in
localStorageundersi-theme. This is what stops the page flashing the wrong colour on load. - Autosave draft — the current document, in
localStorageundersi-editor-draft, written about once a second after you stop typing. Autosave can be switched off with the checkbox under the editor, and the saved draft can be deleted at any time with Delete saved draft. - Consent choice — which categories you allowed, under
si-consent, so the banner does not reappear on every visit.
None of this is transmitted. It lives in this browser profile on this device, and it disappears if you clear site data. If you are drafting something confidential on a shared computer, switch autosave off and use Delete saved draft when you finish.
Why autosave is worth having
A browser tab is a fragile place to keep a document. An accidental refresh, a crashed renderer, or a closed window loses everything in a plain contenteditable box. A local draft costs nothing and removes that failure mode. The draft bar only appears when a stored draft actually exists, so a returning visitor is asked rather than silently overwritten.
Getting clean HTML into your CMS
Clean markup in the editor is only half the job — the receiving platform has to accept it without mangling it. A few practical notes by target.
WordPress
Use a Custom HTML block, not a Paragraph block. Pasting into the visual editor makes WordPress run its own sanitiser, which strips <pre> and some attributes. In the block editor, switch the block to Edit as HTML before pasting.
Ghost, Webflow, Framer
All three accept pasted HTML in their rich-text fields and preserve semantic tags. Ghost's card system works well with <h2> and <h3>; Webflow's rich-text element maps <blockquote> and <pre> to styled components automatically.
Static site generators
Download the .html file and paste the body content into your Markdown or MDX file. Because the editor emits plain semantic tags with no classes and no inline styles, it drops straight into a layout without fighting your CSS.
Email clients are the least forgiving target. Copy the plain text rather than the HTML, then rebuild the formatting in your email builder. HTML email needs table-based layout and inline styles, which this editor deliberately does not produce.
What this editor cannot do
- No images or tables. Pasting either is stripped. Add them in your CMS, where the markup matches your template.
- No collaborative editing. One document, one person, one browser. There is no sync and no conflict resolution.
- No version history beyond undo. Undo goes back through the current session. The autosave draft is a single snapshot, not a list of versions.
- No spell check of its own. The browser's native spell checker is enabled via
spellcheck="true", which is as good as your browser's dictionary and no better. - No SEO scoring. It gives you semantic markup and accurate counts. It does not grade keyword density, readability or internal linking.
- No Markdown import or export. The output is HTML. Convert separately if you need Markdown.
- No print layout. There are no page breaks, margins or headers. Use a word processor for anything going to paper.
- Formatting commands rely on
document.execCommand, which is deprecated but universally implemented. If a future browser removes it, the toolbar would need a Selection API rewrite.
Frequently asked questions
Is this rich text editor free?
Yes. There is no account, no trial and no feature gate. The editor runs entirely in your browser, so there is no server cost to recover through a paywall.
Does my content get uploaded anywhere?
No. Formatting, counting and export all run in JavaScript on your device. There is no API call and no analytics event containing your text. You can confirm this in the Network tab: type a paragraph, then check that no request was made.
Can I export HTML for my CMS?
Yes. Copy HTML puts sanitised markup on your clipboard, ready to paste into WordPress, Webflow, Ghost or any editor that accepts source. Download HTML saves a complete document you can open in a browser or commit to a repository.
Why does pasted text from Word look different here?
Because the editor strips the Word-specific markup on paste. Word and Google Docs embed font declarations, mso- style properties, empty o:p paragraphs and sometimes whole style blocks. None of that survives the allowlist, so you get clean paragraphs, lists and emphasis instead of a wall of inline CSS. Bold and italic are preserved; exact fonts, colours and page layout are not.
Does the editor work offline?
Yes. The page loads with no third-party requests, and once it is open the editor continues to work with the network disconnected. Formatting, counting and export are all local operations.
Is there autosave?
Autosave is available and can be switched off. When it is on, the current document is written to this browser's local storage about once a second, so a reload or a closed tab does not lose your work. The draft is stored on your device only, is never transmitted, and can be deleted at any time with Delete saved draft or by clearing site data.
Is this a good editor for SEO writing?
It handles the mechanical side well: headings, lists and links produce semantic HTML, and the word and character counts help with meta description and title length limits. It does not score keywords, check readability or audit your page. For that, use a dedicated on-page SEO checker and treat this editor as the place you draft and clean the markup.
How is this different from Word or Google Docs?
It is deliberately smaller. There are no tracked changes, comments, page layout, tables, images or multi-user editing. In exchange it loads instantly, needs no account, works offline, and produces clean semantic HTML rather than a proprietary document format. Use it for drafting content destined for the web, not for print layout.
About this tool and how it is maintained
Editorial and verification standards are documented in our editorial policy. Data handling is described in the privacy policy.