<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Domternal Blog &amp; Tutorials</title><description>Articles and step-by-step tutorials on building rich text editors with Domternal: Notion-style block UX, accessibility, ProseMirror internals, and Angular, React, and Vue.</description><link>https://domternal.dev/</link><language>en-us</language><item><title>Domternal 0.9.0: Lists That Feel Like Notion</title><link>https://domternal.dev/blog/domternal-0-9-0/</link><guid isPermaLink="true">https://domternal.dev/blog/domternal-0-9-0/</guid><description>What&apos;s new in Domternal 0.9.0: type-preserving list items, per-item Turn into, Notion-style list spacing, split-aware outdent, and wrappers that no longer pull in the block-menu package.</description><pubDate>Mon, 15 Jun 2026 00:00:00 GMT</pubDate><category>release</category><category>notion</category><category>prosemirror</category><category>webdev</category></item><item><title>Building a Comment Box Found Four Bugs in My Editor</title><link>https://domternal.dev/blog/building-a-comment-box-found-four-bugs-in-my-editor/</link><guid isPermaLink="true">https://domternal.dev/blog/building-a-comment-box-found-four-bugs-in-my-editor/</guid><description>Dogfooding a Vue comment box surfaced four real bugs in Domternal: an invisible placeholder, a clipped popup, hover beating arrow keys, and a CSS calc() trap.</description><pubDate>Fri, 12 Jun 2026 00:00:00 GMT</pubDate><category>prosemirror</category><category>debugging</category><category>showdev</category><category>webdev</category></item><item><title>Build a Notion-Style Editor in React</title><link>https://domternal.dev/tutorials/build-a-notion-style-editor-in-react/</link><guid isPermaLink="true">https://domternal.dev/tutorials/build-a-notion-style-editor-in-react/</guid><description>Step-by-step React tutorial for a Notion-style block editor with slash commands, drag handles, multi-level nesting, block colors and a floating outline.</description><pubDate>Wed, 10 Jun 2026 00:00:00 GMT</pubDate><category>tutorial</category></item><item><title>Notion-Style Block Editor for Any Framework - Domternal</title><link>https://domternal.dev/blog/notion-style-block-editor-headless-framework-agnostic/</link><guid isPermaLink="true">https://domternal.dev/blog/notion-style-block-editor-headless-framework-agnostic/</guid><description>Notion-style block editing as headless ProseMirror extensions: slash menu, drag handles, Turn into, block colors, and a scroll-spy outline, in any framework.</description><pubDate>Wed, 03 Jun 2026 00:00:00 GMT</pubDate><category>notion</category><category>showdev</category><category>typescript</category><category>webdev</category></item><item><title>Build a Comment Box with @Mentions in Vue</title><link>https://domternal.dev/tutorials/build-a-comment-box-with-mentions-in-vue/</link><guid isPermaLink="true">https://domternal.dev/tutorials/build-a-comment-box-with-mentions-in-vue/</guid><description>Step-by-step Vue tutorial for a comment box with an @mention popup, emoji autocomplete, Enter to send, and a thread that knows exactly who to notify.</description><pubDate>Thu, 28 May 2026 00:00:00 GMT</pubDate><category>tutorial</category></item><item><title>Rich Text in Angular Reactive Forms</title><link>https://domternal.dev/tutorials/rich-text-in-angular-reactive-forms/</link><guid isPermaLink="true">https://domternal.dev/tutorials/rich-text-in-angular-reactive-forms/</guid><description>Step-by-step Angular tutorial for a rich text editor inside reactive forms, with required validation that actually works, a character limit, lock and reset.</description><pubDate>Thu, 21 May 2026 00:00:00 GMT</pubDate><category>tutorial</category></item><item><title>Making a Rich Text Editor WCAG 2.1 AA Accessible</title><link>https://domternal.dev/blog/making-a-rich-text-editor-accessible-wcag-21-aa/</link><guid isPermaLink="true">https://domternal.dev/blog/making-a-rich-text-editor-accessible-wcag-21-aa/</guid><description>How we implemented WCAG 2.1 AA across 8 ProseMirror editor packages: focus indicators, ARIA roles, keyboard navigation, reduced motion.</description><pubDate>Mon, 13 Apr 2026 00:00:00 GMT</pubDate><category>accessibility</category><category>webdev</category><category>typescript</category><category>showdev</category></item><item><title>Angular Deserves Better Than React Editor Wrappers. So I Built One.</title><link>https://domternal.dev/blog/angular-deserves-better-than-react-editor-wrappers/</link><guid isPermaLink="true">https://domternal.dev/blog/angular-deserves-better-than-react-editor-wrappers/</guid><description>After years of React-first wrapper pain in Angular, I built Domternal: a headless ProseMirror editor with native Angular components.</description><pubDate>Mon, 23 Mar 2026 00:00:00 GMT</pubDate><category>angular</category><category>showdev</category><category>typescript</category><category>webdev</category></item></channel></rss>