GraphiQL Next path proposal
Hi, I am one of the current GraphiQL maintainers, and I’m excited to share the future GraphiQL 4 and 5 proposal, which will introduce:
- Migration to Zustand for state management (replacing React context)
- Migration to Monaco-Editor/Monaco-GraphQL (replacing CodeMirror)
These versions will be released sequentially. Below is the detailed roadmap:
GraphiQL 3.9 x React-Compiler/Vite
GraphiQL 4 x React 19/New Tabs UI/ESM-based CDN examples
GraphiQL 4.1 x Zustand
GraphiQL 5 x Monaco-Editor/Monaco-GraphQL
Feel free to ask any relevant questions. The GraphQL TSC have indicated that if we're all in agreement they will approve my grant to work on this.
Let's get this built!
Dimitri
GraphiQL Next path proposal
Hi, I am one of the current GraphiQL maintainers, and I’m excited to share the future GraphiQL 4 and 5 proposal, which will introduce:
These versions will be released sequentially. Below is the detailed roadmap:
GraphiQL 3.9 x React-Compiler/Vite
GraphiQL 4 x React 19/New Tabs UI/ESM-based CDN examples
@headless/reactto v2 ingraphiql-reactGraphiQL 4.1 x Zustand
Extract plugins into separate packages (issue #2904):
Migrate from React context to Zustand (issue #2904)
useEditorContext=>useEditorStorefeat(@graphiql/react): migrate React context to zustand. ReplaceuseExecutionContextwithuseExecutionStorehook and replaceuseEditorContextwithuseEditorStorehook #3946useExecutionContext=>useExecutionStorefeat(@graphiql/react): migrate React context to zustand. ReplaceuseExecutionContextwithuseExecutionStorehook and replaceuseEditorContextwithuseEditorStorehook #3946usePluginContext=>usePluginStorefeat(@graphiql/react): migrate React context to zustand, replaceusePluginContextwithusePluginStorehook #3945useSchemaContext=>useSchemaStorefeat(@graphiql/react): migrate React context to zustand, replaceuseSchemaContextwithuseSchemaStorehook #3943useStorageContext=>useStoragefeat(@graphiql/react): migrate React context to zustand, replaceuseStorageContextwithuseStoragehook #3942useHistoryContext=>useHistoryfeat(@graphiql/plugin-history): migrate React context to zustand, replaceuseHistoryContextwithuseHistory,useHistoryActionshooks #3935useExplorerContext=>useDocExplorerfeat(@graphiql/plugin-doc-explorer): migrate React context to zustand, replaceuseExplorerContextwithuseDocExploreranduseDocExplorerActionshooks #3940Ensure all tests pass
GraphiQL 5 x Monaco-Editor/Monaco-GraphQL
query,variables,headersandresponseprops from<GraphiQL />#3735keyMapwas removedPersonandnamehttps://discord.com/channels/625400653321076807/966768858402816020/1379076825036095610onClickReferencein variables editoronClickReferencein Reactrefand access asref.currentinuseEffectFeel free to ask any relevant questions. The GraphQL TSC have indicated that if we're all in agreement they will approve my grant to work on this.
Let's get this built!
Dimitri