docs/slate-issues/issue-clusters.md
This is the full macro-theme rescore over all 682 open Slate issues already triaged into the ledger.
The 682 count is the frozen 2026-04-02 research snapshot.
Gitcrawl live overlay (2026-05-04):
630 issues, 29 PRs, 659 open threads total54, all closed on GitHub#6051, #6053617 total clusters, 28 multi-member, 589 singletonThe old macro-theme counts below still describe the frozen 682-issue research
snapshot. Use the gitcrawl overlay for current live-open accounting and
duplicate/fix-chain discovery.
The point of this file is not to replace the ledger. The point is to collapse the issue-by-issue noise into a small set of ranked architectural themes that can drive v2 requirements, package ownership, and maintainer triage.
682 open issues682priority = (pain * recurrence) + architectural_depth + breadth + v2_leverage| Theme | Issues | Pain | Recurrence | Arch Depth | Breadth | V2 Leverage | Priority |
|---|---|---|---|---|---|---|---|
| Mobile, IME, And Input Semantics | 129 | 4.29 | 2.03 | 3.86 | 4.62 | 4.18 | 21.37 |
| Performance And Scalability | 13 | 3.77 | 1.92 | 4.53 | 3.89 | 3.92 | 19.58 |
| React Runtime, Identity, And Subscription Model | 111 | 3.61 | 1.69 | 3.64 | 3.86 | 3.81 | 17.41 |
| Selection, Focus, And DOM Bridge | 172 | 3.56 | 1.48 | 3.61 | 4.42 | 3.74 | 17.04 |
| Clipboard, Serialization, And External Formats | 37 | 3.32 | 1.65 | 3.57 | 4.44 | 3.05 | 16.54 |
| Core Model, Operations, Normalization, And History | 69 | 3.23 | 1.49 | 3.72 | 3.63 | 3.95 | 16.11 |
| API, Typing, And Extensibility | 33 | 2.64 | 1.42 | 2.94 | 3.59 | 2.39 | 12.67 |
| Docs, Examples, Support Noise, And Repo Churn | 118 | 2.00 | 1.29 | 1.72 | 3.41 | 0.88 | 8.59 |
The full 682-issue corpus still does not say “users reject Slate’s data model.” It says users keep bleeding at the runtime boundary: input methods, DOM selection ownership, React invalidation breadth, and browser-facing editing semantics.
The biggest change from the 201-issue pass is not a new theme. It is stronger confidence. The old issues keep reinforcing the same runtime and engine seams instead of introducing a different center of gravity.
Performance is the useful outlier. It is low-count but high-leverage, which is exactly why raw issue volume would have been a stupid ranking method.
One macro-taxonomy mistake is worth calling out explicitly: decorations, render-time marks, and annotation anchors were flattened across performance, React runtime, selection, and API-shape themes. That seam is recurrent enough to name directly even though it is cross-cutting.
Issues: 129
This is the top-priority theme in the full corpus. It covers Android, iOS, Firefox Android, Windows IMEs, Hangul, Chinese, Vietnamese, predictive typing, placeholders during composition, empty-state input, and suggestion replacement behavior.
What matters here:
101 issues are valid or likely-valid.97 are cross-package and 27 land directly in slate-react.98 direct, 16 indirect.Representative issues:
#6022 Android mark-toggle typing dismisses keyboard and jumps cursor#5989 Hangul composition breaks when placeholder is visible#5984 Android backspace requires two presses#5931 Windows suggestions append instead of replace#5130 Android Firefox predictive typing breaks badlyWhy this matters for v2:
Issues: 13
Low count, high leverage. This theme jumps because the issues that do show up are deep, valid, and strongly connected to the same runtime and engine seams.
What matters here:
12 issues are valid or likely-valid.9 direct, 3 indirect.slate, slate-react, slate-history, and cross-package seams.Representative issues:
#6038 batch-aware apply engine#5992 huge-document cut is slow#5945 large plaintext paste is slow#5216 Safari selection lag#5131 rerender count on selection changesWhy this matters for v2:
Issues: 111
This is the cleanest slate-react architecture cluster in the full corpus. It is about editor instance replacement, rerender breadth, decoration timing, focus initialization, hydration identity, controlled-value drift, and path resolution reliability under React-driven updates.
What matters here:
88 issues are valid or likely-valid.78 land directly in slate-react and 27 more are cross-package.72 direct, 22 indirect.Representative issues:
#5709 useSlate holds old editor instance after recreation#5697 ReactEditor.findPath reliability proposal#5987 decorate callback updates move the caret#5568 focus regression#5488 controlled value/update pain#5131 rerenders on selection changeWhy this matters for v2:
slate-react a coherent committed snapshot model, better identity rules, and narrower subscriptions.”Issues: 19 explicitly-tagged ledger rows, plus adjacent inline-selection fallout
This seam was hidden by the macro remap because it spans multiple ranked themes at once:
It is not a separate ranked macro theme because that would double-count the full-corpus totals. It is still a real recurrent seam, not a footnote.
Representative issues:
#5987 async decorate update moves the caret#3354 stable decorate array causes an infinite rerender loop#3352 cannot decorate siblings or span them cleanly#3383 overlapping marks and decorations with shared semantics lose payload#2465 mark rendering ergonomics are brittle because of the leaf-splitting model#4483 dynamic decorations are too globally invalidating#4477 collaborative comment anchors want a real annotation modelWhy this matters for v2:
slate-react needs a first-class render-time projection model for decorations and marks instead of treating them like incidental leaf churn.slate-v2 needs stable range and mark semantics that can survive multi-leaf selections, overlapping metadata, and annotation anchors.slate-dom-v2 still matters when decorated content interacts with DOM selection or inline boundaries, but this is not just a DOM problem.Issues: 172
This is the largest theme by raw count. It covers DOM point/path translation, focus restoration, inline-boundary behavior, shadow DOM, zero-width offsets, table and void selection, gesture directionality, and selection repair after editor actions.
What matters here:
135 issues are valid or likely-valid.102 are cross-package, with additional pressure in slate, slate-react, and ecosystem adapters.110 direct, 29 indirect.Representative issues:
#6034 wrong down-arrow cursor at end of table#5938 DOMEditor.findPath returns no or wrong path#5760 zero-length text node offset crash#5749 shadow DOM drag-and-drop throws#5690 double-click before inline element can crash SlateWhy this matters for v2:
Issues: 37
This theme is smaller, but coherent. It covers HTML paste parsing, clipboard fragment collisions, empty-line export, node-type preservation on paste, foreign DOM ingestion, and document-format adapter pressure.
What matters here:
31 issues are valid or likely-valid.21 are cross-package, with meaningful spill into ecosystem adapters and slate-react.16 direct, 11 indirect.Representative issues:
#5630 paste into selected content leaves undeletable block shape#5328 HTML containing data-slate-fragment can break parsing#5233 clipboard fragment format should be customizable#5151 paste into fully selected node changes its type#5253 portable text JSON loading requestWhy this matters for v2:
Issues: 69
Lower count than the runtime-boundary themes, but still high leverage. This is the engine-model cluster: operation ownership, normalization debt, history grouping, collaboration edges, and structural boundary semantics.
What matters here:
57 issues are valid or likely-valid.slate, with meaningful spill into slate-history, ecosystem layers, and cross-package behavior.49 direct, 11 indirect.Representative issues:
#5977 custom operations are not handled cleanly#5874 same node inserted more than once desyncs#5811 normalization loops explode on custom schema#5771 collaboration selection ops can explode#5587 Grammarly integration breaks history groupingWhy this matters for v2:
Issues: 33
This theme mixes real API and typing seams with a fair amount of expectation mismatch.
What matters here:
24 issues are valid.slate, slate-react, repo-only surface area, and some cross-package seams.11 direct, 11 indirect.Representative issues:
#5287 isBlock guard behavior is wrong#5246 Unicode-aware string helpers should be public#5599 hyperscript shorthand typing/docs pain#5404 useSlateStatic return type issue#5710 document replacement ergonomicsWhy this matters for v2:
Issues: 118
This is not a v2 architecture theme. It is a maintainer-load theme.
What matters here:
32 invalid, 23 stale candidates, 7 likely-invalid, 3 duplicate candidates.65 issues land in docs-only pressure and 28 land in site/examples.3 direct, 7 indirect.Representative issues:
#6007 NPM and GitHub releases do not match#5436 sticky toolbar example request#5403 show-more/show-less example request#5212 editable void example is misleading#5202 clone/install repo issue from old tooling historyWhy this matters:
slate-react deserves its own first-class v2 runtime story.The next useful files are:
Those should turn the theme map into package ownership and concrete v2 requirements.