Built for very large documents
Typing feels immediate in a document of 10,000 paragraphs, about 400,000 words. Measured in a real browser against budgets, not assumed.
Open source · MIT · built on ProseMirror · 0.x preview
An HTML5 WYSIWYG editor with a headless core and an optional toolbar. Made for long documents, with no paid tiers and no closed extensions.
$ npm install stilo-editor
Typing feels immediate in a document of 10,000 paragraphs, about 400,000 words. Measured in a real browser against budgets, not assumed.
Content goes in as HTML and comes out as clean, semantic, self-contained HTML, with a strict allowlist for tags, attributes and inline styles.
The core works without any UI. The default toolbar and menus are a separate, replaceable module.
MIT licensed, aiming at the feature level of the established editors, with no paid tiers and no closed “pro” extensions.
Every feature is an extension with the same shape, so adding your own follows the same path.
Vanilla TypeScript, ESM only, types included and tree-shakable.
With the default extensions and toolbar. On macOS, use ⌘ for Ctrl and Option for Alt.
Bold, italic, underline, strikethrough, inline code, subscript and superscript, font family and size, text color and highlight, text case.
Ctrl+B Ctrl+I Ctrl+U
Headings, quotes, code blocks, horizontal lines, alignment and line spacing. Move any block up and down.
Ctrl+Alt+1…6 Alt+↑
Bulleted, numbered and checklists, nested with Tab. Type - , 1. or [ ] to start one.
Ctrl+Shift+7 8 9
Insert from a grid, add and delete rows and columns, merge and split cells, header rows, handles on rows and columns, resizable columns.
Tab Shift+Tab
A link popover with “open in new tab”. Paste an image or a screenshot and resize it with its handles.
Ctrl+K Ctrl+V
HTML pasted from the web, Microsoft Word and Google Docs is cleaned up: real lists, tables with their column widths. Or paste plain text.
Ctrl+Shift+V
Match case, whole word, replace one or all, with an exact count of the matches. A status bar counts words and characters.
Ctrl+F
**bold**, ==highlight==, # for headings, > for quotes, ``` for code, --- for a line.
Backspace undoes it
The toolbar follows the WAI-ARIA Toolbar pattern, every popover works with the keyboard alone, every tooltip shows its shortcut.
Alt+F10 Esc
Options, commands, events and the toolbar: API reference.