docs/slate-issues/roadmap-from-issues.md
This is the build order implied by the full 682-issue corpus.
The 682 count is the frozen 2026-04-02 research snapshot.
Post-snapshot maintainer triage update:
54/54 queued issues are now closed628It is not “most requested features first.”
It is dependency order:
If the order changes, the work gets sloppier and the runtime packages keep paying for core debt.
Goal: stop the roadmap from drifting while implementation starts.
Primary packages: repo-only, research docs
Deliver:
slate-v2slate-dom-v2slate-react-v2slate-history-v2slate-hyperscript-v2Exit criteria:
slate-v2 Core FoundationGoal: replace the execution model without abandoning the Slate document model or operation model.
Primary package: slate-v2
Must deliver:
Must not try to solve yet:
Representative issue pressure:
#6038#5977#5771#5533#4750Exit criteria:
slate-v2slate-dom-v2 Runtime BoundaryGoal: create a real DOM bridge instead of letting DOM ownership leak everywhere.
Primary package: slate-dom-v2
Depends on: Phase 1
Must deliver:
Must not try to solve yet:
Representative issue pressure:
#5947#5938#5749#4789#4839#4881Exit criteria:
slate-react-v2 As A Snapshot RuntimeGoal: make React consume coherent committed state instead of mutable editor guts.
Primary package: slate-react-v2
Depends on: Phase 1 and Phase 2
Must deliver:
Must not try to solve yet:
Representative issue pressure:
#5709#5697#5568#5488#5131#4612#5987#3354#3352#3383#2465#4477Exit criteria:
Goal: finish the engine/runtime contract where history and external formats currently leak semantics.
Primary packages: slate-history-v2, slate-dom-v2, slate-v2
Depends on: Phase 1 through Phase 3
Must deliver:
Representative issue pressure:
#5587#5250#5364#5233#5328#5630Exit criteria:
Goal: cash out the new architecture on the worst recurring bug families.
Primary packages: slate-dom-v2, slate-react-v2, secondarily slate-v2
Depends on: Phase 1 through Phase 4
Target clusters:
Representative issue pressure:
#6022#5989#5984#5931#6034#5826Exit criteria:
Goal: optimize only after the architecture can carry the fixes honestly.
Primary packages: shared
Depends on: Phase 1 through Phase 5
Must deliver:
Representative issue pressure:
#6038#5992#5945#5216#5131#3656#3430Exit criteria:
Goal: make the thing teachable and adoptable after the architecture is real.
Primary packages: docs/examples/repo, all packages secondarily
Depends on: Phase 1 through Phase 6
Must deliver:
Must not happen early:
Representative issue pressure:
#6007#5212#4956#4882Exit criteria:
If the goal is to prove v2 is real without boiling the ocean, the smallest serious cut is:
slate-v2 transaction coreslate-dom-v2 selection bridge foundationslate-react-v2 snapshot subscriptionsThat is enough to prove whether the architecture is actually better or just prettier.
Defer these until the foundation exists:
slate-react-v2 before slate-v2 just recreates current cleanup-crew architecture.slate-dom-v2 exists is cargo cult.Start Phase 0 and Phase 1 together:
slate-v2 transaction core package shapeThat is the first real fork in the road. Everything else is downstream of it.