▲ 139 r/angular+2 crossposts

Domternal: a rich text editor with first-class Angular components (signals, OnPush, zoneless-ready)

Domternal is an open-source (MIT) rich text editor built on ProseMirror, with first-class Angular components.

The clip shows one editor core as two surfaces: a Notion-style block editor and a classic toolbar editor.

The Angular part ("@domternal/angular")

- 6 standalone components (no NgModule): editor, toolbar, bubble menu, floating menu, emoji picker, Notion color picker
- Signals-driven, OnPush, zoneless-ready (the demo runs on zoneless Angular 21)
- The editor is a ControlValueAccessor, so it drops straight into ngModel or a reactive FormControl; outputFormat="json" emits JSON
- Toolbar and menus auto-render from whatever extensions you load, so there is no manual button wiring
- Works from Angular 17.1 through 21

Features

Notion-style blocks (drag handle, slash menu, smart paste, floating table of contents), tables, LaTeX math, images, @mentions, emoji, collapsible details, syntax-highlighted code blocks. 126 chainable commands, 70+ nodes, marks and extensions, all tree-shakeable. Light and dark theme via 160+ CSS variables. getHTML({ styled: true }) inlines the CSS so exported content still renders in an email client or a CMS.

Under the hood

Built on ProseMirror, strict TypeScript throughout. About 117 KB gzipped including ProseMirror. The same Playwright e2e suite runs green across all four framework wrappers, on top of 4,400+ unit tests.

It is MIT and currently at v0.11.2. I would love your feedback.

Site: https://domternal.dev
GitHub: https://github.com/domternal/domternal

u/Thomas_17188 — 4 days ago