PageSourceSearch

https://graphql.org/_next/static/chunks/pages/blog/2025-09-08-september-edition-9ffbea5332fd44c9.js

js graphql.org collected 2026-09-24 07:00:14 UTC 8,354 bytes, 1 lines download raw bytes

1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3834],{46734:function(e,n,t){(window.__NEXT_P=window.__NEXT_P||[]).push(["/blog/2025-09-08-september-edition",function(){return t(39251)}])},39251:function(e,n,t){"use strict";t.r(n),t.d(n,{useTOC:function(){return a}});var r=t(52676),i=t(92937),s=t(45043),o=t(79428);function a(e){let n={strong:"strong",...(0,o.a)()};return[{value:(0,r.jsx)(r.Fragment,{children:(0,r.jsx)(n.strong,{children:"Why It Matters"})}),id:"why-it-matters",depth:2},{value:(0,r.jsx)(r.Fragment,{children:(0,r.jsx)(n.strong,{children:"Notable Updates"})}),id:"notable-updates",depth:2},{value:(0,r.jsx)(r.Fragment,{children:(0,r.jsx)(n.strong,{children:"Thank you, contributors!"})}),id:"thank-you-contributors",depth:2},{value:(0,r.jsx)(r.Fragment,{children:(0,r.jsx)(n.strong,{children:"Get involved"})}),id:"get-involved",depth:2}]}n.default=(0,i.c)(function(e){let{toc:n=a(e)}=e,t={a:"a",br:"br",code:"code",h2:"h2",li:"li",p:"p",strong:"strong",ul:"ul",...(0,o.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(t.p,{children:["It’s here: the ",(0,r.jsx)(t.a,{href:"https://spec.graphql.org/September2025/",children:"September 2025 edition of the GraphQL specification"}),"!"]}),"\n",(0,r.jsxs)(t.p,{children:["This is the first edition of the specification since ",(0,r.jsx)(t.a,{href:"https://spec.graphql.org/October2021/",children:"October 2021"}),", and it reflects years of steady, collaborative work from the GraphQL community. More than 100 commits, hundreds of comments, and contributions from dozens of community members went into this update — all with the goal of keeping GraphQL stable, expressive, and primed for the next generation of AI-ready API development."]}),"\n",(0,r.jsx)(t.p,{children:"Since its initial release 10 years ago, GraphQL has grown into a critical layer of infrastructure at startups, enterprises, and platforms across industries. The spec has two guiding priorities:"}),"\n",(0,r.jsxs)(t.p,{children:[(0,r.jsx)(t.strong,{children:"Stability first"}),": With so many tools and services built on GraphQL, the ecosystem relies on a solid foundation. This release fixes inconsistencies, addresses edge cases, and helps avoid performance pitfalls."]}),"\n",(0,r.jsxs)(t.p,{children:[(0,r.jsx)(t.strong,{children:"Expressiveness for API consumers"}),": Developers use GraphQL because it’s intuitive, flexible, and powerful. This edition makes the language even more productive and expressive, particularly for AI-first applications."]}),"\n",(0,r.jsx)(t.h2,{id:n[0].id,children:n[0].value}),"\n",(0,r.jsx)(t.p,{children:"Several updates in this edition make GraphQL an even better foundation for AI assistants, codegen tools, and autonomous agents:"}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsx)(t.li,{children:"Descriptions on executable documents give LLMs richer context for intent understanding and safer refactoring."}),"\n",(0,r.jsx)(t.li,{children:"Schema Coordinates provide a precise, both human- and machine-readable way to reference fields and types, improving traceability, evals, and automated PR feedback."}),"\n",(0,r.jsx)(t.li,{children:"OneOf input objects simplify schema entrypoints whilst maintaining type safety by expressing mutually exclusive inputs directly in the schema. This is particularly helpful for prompt and form generation."}),"\n",(0,r.jsxs)(t.li,{children:["The clarified execution/error terminology and request ",(0,r.jsx)(t.code,{children:"extensions"})," make responses more predictable for deterministic parsers and toolchains."]}),"\n"]}),"\n",(0,r.jsx)(t.h2,{id:n[1].id,children:n[1].value}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.strong,{children:"OneOf Input Objects (a.k.a. input unions)"})," ",(0,r.jsx)(t.br,{}),"\nA long-requested feature! This unlocks more natural ways to model mutually exclusive inputs, leading to tidier schemas and unlocking use-cases that couldn’t be safely expressed previously - check out the ",(0,r.jsx)(t.a,{href:"https://graphql.org/blog/2025-09-04-multioption-inputs-with-oneof/",children:"blog post"}),". ",(0,r.jsx)(t.a,{href:"https://github.com/graphql/graphql-spec/pull/825",children:"RFC #825"})]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.strong,{children:"Schema Coordinates"})," ",(0,r.jsx)(t.br,{}),"\nA standardized way to refer to parts of a schema, paving the way for better tooling, error reporting, and developer experience. ",(0,r.jsx)(t.a,{href:"https://github.com/graphql/graphql-spec/pull/794",children:"RFC #794"})]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.strong,{children:"Descriptions on Documents"})," ",(0,r.jsx)(t.br,{}),"\nImproved support for documenting queries and operations — helpful for humans and increasingly relevant for AI-powered tools. ",(0,r.jsx)(t.a,{href:"https://github.com/graphql/graphql-spec/pull/1170",children:"RFC #1170"})]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.strong,{children:"Expanded Deprecation Support"})," ",(0,r.jsx)(t.br,{}),"\nDeprecation is now more broadly supported across schema elements, making it easier to evolve APIs without breaking clients. [RFCs ",(0,r.jsx)(t.a,{href:"https://github.com/graphql/graphql-spec/pull/805",children:"#805"}),", ",(0,r.jsx)(t.a,{href:"https://github.com/graphql/graphql-spec/pull/1040",children:"#1040"}),", ",(0,r.jsx)(t.a,{href:"https://github.com/graphql/graphql-spec/pull/1053",children:"#1053"}),", ",(0,r.jsx)(t.a,{href:"https://github.com/graphql/graphql-spec/pull/1142",children:"#1142"}),"]"]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.strong,{children:"Full Unicode Support"})," ",(0,r.jsx)(t.br,{}),"\nThe language grammar now supports the entire Unicode range, improving internationalization and accessibility. ",(0,r.jsx)(t.a,{href:"https://github.com/graphql/graphql-spec/pull/849",children:"RFC #849"})]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.strong,{children:"Editorial Improvements"})," ",(0,r.jsx)(t.br,{}),"\nThe spec is clearer, more consistent, and easier to contribute to. Ambiguities have been reduced, and the style guide has been modernized."]}),"\n"]}),"\n",(0,r.jsx)(t.h2,{id:n[2].id,children:n[2].value}),"\n",(0,r.jsx)(t.p,{children:"This edition wouldn’t exist without the dedication of the GraphQL community. Dozens of contributors — from core maintainers to first-time spec authors — invested their time and expertise to make GraphQL better for everyone."}),"\n",(0,r.jsx)(t.p,{children:"Special thanks to the many reviewers, implementers, and champions who shaped this release."}),"\n",(0,r.jsxs)(t.p,{children:["You can explore the full list of contributors in the ",(0,r.jsx)(t.a,{href:"https://github.com/graphql/graphql-spec/blob/main/changelogs/September2025.md",children:"changelog"}),"."]}),"\n",(0,r.jsx)(t.h2,{id:n[3].id,children:n[3].value}),"\n",(0,r.jsxs)(t.p,{children:["GraphQL is a living standard. If you’re building APIs, tooling, or clients, your voice matters in shaping its future. Anyone can join ",(0,r.jsx)(t.a,{href:"https://github.com/graphql/graphql-wg",children:"working group meetings"})," and contribute proposals, reviews, or feedback."]}),"\n",(0,r.jsxs)(t.p,{children:["\uD83D\uDCD6 ",(0,r.jsx)(t.strong,{children:"Read the full spec:"})," ",(0,r.jsx)(t.a,{href:"https://spec.graphql.org/September2025/",children:"GraphQL September 2025 Specification"})," ",(0,r.jsx)(t.br,{}),"\n\uD83D\uDD0E ",(0,r.jsx)(t.strong,{children:"Review all changes:"})," ",(0,r.jsx)(t.a,{href:"https://github.com/graphql/graphql-spec/compare/October2021...f29fbcd2ab5af763fce7ad62896eb62465a669b3",children:"Full changelog & diff"})," ",(0,r.jsx)(t.br,{}),"\n\uD83E\uDD1D ",(0,r.jsx)(t.strong,{children:"Contribute:"})," ",(0,r.jsx)(t.a,{href:"https://github.com/graphql/graphql-spec/blob/main/CONTRIBUTING.md",children:"How to get involved"})]})]})},"/blog/2025-09-08-september-edition",{filePath:"src/pages/blog/2025-09-08-september-edition.md",timestamp:1789481543e3,pageMap:s.v,frontMatter:{title:"Announcing the September 2025 Edition of the GraphQL Specification",tags:["spec"],date:"2025-09-08",byline:"Lee Byron",featured:!0},title:"Announcing the September 2025 Edition of the GraphQL Specification"},"undefined"==typeof RemoteContent?a:RemoteContent.useTOC)}},function(e){e.O(0,[3556,5043,2888,9774,179],function(){return e(e.s=46734)}),_N_E=e.O()}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.