docs/plans/2026-04-03-slate-v2-plate-v2-comparative-research-plan.md
Supporting plan. For current queue and roadmap truth, see master-roadmap.md.
Run a phased architecture study across the shortlisted editor and non-editor references so we can sharpen:
slate-v2 plan firstplate-v2 architecture secondThis is not a market map.
This is not repo sightseeing.
The point is to extract only the ideas that survive contact with our locked constraints.
These are already decided and the research should not “rediscover” them:
slate-v2 stays data-model-first.slate-v2slate-dom-v2slate-react-v2slate-history-v2slate-react-v2 is explicitly React 19.2+ and React-perfect by intent.That means the research is not asking “should Slate become framework-agnostic again?”
It is asking:
plate-v2 than to slate-v2?This research should continuously update:
For every repo or reference, capture ideas under these buckets:
For each idea, classify it as exactly one of:
adopt-now-for-slate-v2adopt-later-for-slate-v2better-fit-for-plate-v2interesting-but-rejectDo not leave findings in a mushy “maybe useful” state.
In parallel, every major unresolved Slate pressure area should also be captured in the gap matrix with:
slate-v2 now/later vs plate-v2)This is the order that best sharpens the current plan:
slate-v2 proof stackedix passPurpose:
SlateProseMirrorPurpose:
LexicalTiptapPurpose:
Lexical for runtime/update/identity/render disciplineTiptap for productization, extension UX, and packaging strategyPretextPremirrorPurpose:
slate-v2plate-v2 or a higher-layer systemuse-editablerich-textareamarkdown-editorPurpose:
TanStack DBurqlVS CodeLanguage Server ProtocolEditContext APIOpen UI Richer Text FieldsPurpose:
Slate is the priority.
So every pass should answer in this order:
slate-v2 directly?plate-v2?If a finding mostly helps plate-v2, keep it, but do not let it distort the slate-v2 package plan.
This research is complete when:
slate-v2 doc set reflects the strongest direct findingsslate-v2 nowslate-v2 laterplate-v2slate-v2 with actual confidence instead of fashionable repo-envyedix: completedProseMirror: completedLexical: completedTiptap: completedPretext: completedPremirror: completeduse-editable: completedrich-textarea: completedmarkdown-editor: completedTanStack DB: completedurql: completedVS Code: completedLanguage Server Protocol: completedEditContext API: completedOpen UI Richer Text Fields: completedslate-v2Pretext as a measurement primitive and Premirror as a future plate-v2 / higher-layer architecture reference, not as excuses to bloat Slate coreTiptap as a plate-v2 product-layer benchmark more than a slate-v2 engine benchmarkplate-v2; use-editable is a good reminder that some editables should stay tinyrich-textarea, not brittle contenteditable projection like markdown-editorplate-v2 semantic architecture should probably look closer to TanStack DB plus urql:
normalized projection stores, incremental derived views, and exchange-like execution stages<input> / <textarea> based if the platform grows the right primitivesslate-v2 structural next step, which is still the clipboard-boundary proof