1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3047],{52895:function(e,t,i){(window.__NEXT_P=window.__NEXT_P||[]).push(["/community/contribute/development",function(){return i(97442)}])},2144:function(e,t,i){"use strict";i.d(t,{o:function(){return s}});var r=i(52676),n=i(4814),a=i(85454),o=i(17676);function s({items:e,numbered:t}){return(0,r.jsx)("ul",{className:"grid grid-cols-1 justify-stretch gap-2 pt-6 sm:grid-cols-2 lg:gap-4",children:e.map((e,i)=>{let s;let l=e.link.replace(/^\/learn\//,"").replace(/\/$/,""),p=o.g[l];return p&&(s=p.section),(0,r.jsx)("li",{className:"flex text-neu-900",children:(0,r.jsxs)("a",{href:e.link,className:(0,n.W)("gql-focus-visible grid w-full border border-neu-200 bg-neu-0 transition-colors [grid-template-areas:'header''desc'] [grid-template-rows:auto_1fr] hover:ring hover:ring-neu-100 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 dark:border-neu-100 dark:hover:ring-neu-50 lg:[grid-template-areas:'header_header''desc_arrow'] lg:[grid-template-columns:1fr_64px]","getting-started"===s&&"bg-pri-lighter/10 dark:bg-pri-lighter/5","best-practices"===s&&"bg-sec-lighter/10 dark:bg-sec-lighter/5"),children:[(0,r.jsxs)("span",{className:"flex flex-col gap-1 [grid-area:header]",children:[t&&(0,r.jsxs)("span",{className:"typography-body-sm px-2 pt-2 text-neu-700 max-lg:typography-body-md lg:px-4 lg:pt-4",children:[t," ",i+1]}),(0,r.jsxs)("span",{className:(0,n.W)("typography-h3 flex items-center gap-2 border-neu-200 text-neu-900 dark:border-neu-100",e.icon?"border-b":"pl-2 lg:pl-4"),children:[e.icon&&(0,r.jsx)("span",{className:"flex items-center justify-center border-r border-neu-200 p-2 lg:p-4",children:"function"==typeof e.icon?(0,r.jsx)(e.icon,{className:"size-8 shrink-0"}):e.icon}),e.title]})]}),(0,r.jsx)("p",{className:"typography-body-sm text-pretty p-4 text-neu-900 [grid-area:desc] max-lg:typography-body-md max-lg:border-t max-lg:border-neu-200 dark:max-lg:border-neu-100",children:e.description?e.description:e.link.replace(/^https?:\/\//,"")}),(0,r.jsx)("span",{className:(0,n.W)("hidden items-center justify-center place-self-end border-l border-neu-200 p-4 [grid-area:arrow] dark:border-neu-100 lg:flex",e.icon?"h-full":"border-t"),children:(0,r.jsx)(a.Z,{className:"size-8 shrink-0 -rotate-90"})})]})},e.title)})})}},97442:function(e,t,i){"use strict";i.r(t),i.d(t,{useTOC:function(){return l}});var r=i(52676),n=i(92937),a=i(45043),o=i(79428),s=i(2144);function l(e){return[{value:"Getting up to speed",id:"getting-up-to-speed",depth:2},{value:"Asking questions",id:"asking-questions",depth:2},{value:"GraphQL Foundation projects",id:"graphql-foundation-projects",depth:2}]}t.default=(0,n.c)(function(e){let{toc:t=l(e)}=e,i={a:"a",code:"code",h1:"h1",h2:"h2",li:"li",p:"p",ul:"ul",...(0,o.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.h1,{children:"Participating in Development"}),"\n",(0,r.jsxs)(i.p,{children:["GraphQL is developed in the open, through ",(0,r.jsx)(i.a,{href:"https://github.com/graphql",children:"GitHub"})," and working group meetings that are open for anyone to attend (so long as they are covered under the ",(0,r.jsx)(i.a,{href:"https://github.com/graphql/graphql-wg/tree/HEAD/membership",children:"free membership agreement"}),"). In addition, anybody is welcome to view the ",(0,r.jsx)(i.a,{href:"https://youtube.graphql.org",children:"recordings of our meetings on YouTube"})]}),"\n",(0,r.jsx)(i.h2,{id:t[0].id,children:t[0].value}),"\n",(0,r.jsxs)(i.p,{children:["All of our work ",(0,r.jsx)(i.a,{href:"https://github.com/graphql",children:"happens in the open"}),". In addition, we record our workgroupsâ meetings on ",(0,r.jsx)(i.a,{href:"https://youtube.graphql.org",children:"YouTube"}),". If you are interested in quickly getting up to speed on whatâs happening in a working group, the meeting minutes (",(0,r.jsx)(i.code,{children:"notes"})," folder in the relevant repository) and ",(0,r.jsx)(i.a,{href:"https://youtube.graphql.org",children:"replays"})," are a great place to begin."]}),"\n",(0,r.jsx)(i.h2,{id:t[1].id,children:t[1].value}),"\n",(0,r.jsxs)(i.p,{children:["The best place to ask a development-related question is in a working group meeting, or by opening a GitHub issue. Please note that if you have an implementation question, you may get a faster answer by ",(0,r.jsx)(i.a,{href:"/community/resources/official-channels/",children:"asking in one of the channels more geared toward users"}),"."]}),"\n",(0,r.jsx)(i.h2,{id:t[2].id,children:t[2].value}
1),"\n",(0,r.jsxs)(i.p,{children:["The ",(0,r.jsx)(i.code,{children:"graphql"})," GitHub organization is the home for projects that hold a unique role in the ecosystem: specifications, test suites, reference implementations, documentation sites, etc."]}),"\n",(0,r.jsxs)(i.p,{children:["Except for ",(0,r.jsx)(i.code,{children:"graphql-js"})," as a reference implementation, GraphQL implementations in different languages are encouraged to stay in separate organizations. This helps foster ecosystem diversity."]}),"\n",(0,r.jsxs)(i.p,{children:["In general, projects in the ",(0,r.jsx)(i.code,{children:"graphql"})," organization:"]}),"\n",(0,r.jsxs)(i.ul,{children:["\n",(0,r.jsx)(i.li,{children:"are open source."}),"\n",(0,r.jsx)(i.li,{children:"are actively maintained."}),"\n",(0,r.jsx)(i.li,{children:"hold a unique role in the ecosystem."}),"\n"]}),"\n",(0,r.jsx)(i.p,{children:"Current projects include:"}),"\n",(0,r.jsx)(s.o,{items:[{title:"GraphQL Specification",link:"https://github.com/graphql/graphql-spec",description:"This is a Working Draft of the Specification for GraphQL, a query language for APIs created by Facebook. The target audience for this specification is not the client developer, but those who have, or are actively interested in, building their own GraphQL implementations and tools. To join in with its development, join the main GraphQL Working Group"},{title:"GraphQL.js",link:"https://github.com/graphql/graphql-js",description:"The JavaScript reference implementation for GraphQL."},{title:"GraphiQL IDE",link:"https://github.com/graphql/graphiql",description:"Whether you want a simple GraphiQL IDE instance for your server, or a more advanced web or desktop GraphQL IDE experience for your framework or plugin, or you want to build an IDE extension or plugin, you've come to the right place!"},{title:"GraphQL Website",link:"https://github.com/graphql/graphql.github.io",description:"The source repository for this very website: GraphQL Documentation, community initiatives and more"},{title:"GraphQL over HTTP Specification",link:"https://github.com/graphql/graphql-over-http",description:"HTTP is the most common choice as the client-server protocol when using GraphQL because of its ubiquity. However the GraphQL specification deliberately does not specify the transport layer. This specification is intended to fill this gap by specifying how GraphQL should be served over HTTP. "},{title:"graphql-http",link:"https://github.com/graphql/graphql-http",description:"Simple, pluggable, zero-dependency, GraphQL over HTTP spec compliant server, client and audit suite."},{title:"GraphQL Composite Schema Spec",link:"https://github.com/graphql/composite-schemas-spec",description:"Describes how to construct a single unified GraphQL schema, the composite schema, from multiple GraphQL schemas, each termed a source schema."},{title:"GraphQL Scalars Specification",link:"https://github.com/graphql/graphql-scalars",description:"Providing a directory of GraphQL Custom Scalar specifications, contributed by the community. GraphQL Custom Scalar specifications are language agnostic and thus can be used to document and standardize behavior across different languages."},{title:"Dataloader",link:"https://github.com/graphql/dataloader",description:"A generic utility to be used as part of your application's data fetching layer to provide a simplified and consistent API over various remote data sources such as databases or web services via batching and caching."},{title:"SWAPI GraphQL Wrapper",link:"https://github.com/graphql/swapi-graphql",description:'A wrapper around the Star Wars API, or "swapi" (Swah-pee) the world\'s first quantified and programmatically-accessible data source for all the data from the Star Wars canon universe, converting it into a GraphQL schema.'}]}),"\n",(0,r.jsxs)(i.p,{children:["If you want to get involved in GraphQL, add yourself to the meeting agenda for one of our ",(0,r.jsx)(i.a,{href:"./project-meetings/#quick-guide-how-to-join",children:"working groups or implementations"}),", sign the document if you havenât already, and show up! Or, if you prefer, just open a PR against our projects as this will also initiate the spec membership signature process."]}),"\n",(0,r.jsx)(i.p,{children:"We welcome your participation!"})]})},"/community/contribute/development",{filePath:"src/pages/community/contribute/development.mdx",timestamp:1789481543e3,pageMap:a.v,frontMatter:{},title:"Participating in Development"},"undefined"==typeof RemoteContent?l:RemoteContent.useTOC)}},function(e){e.O(0,[3556,5043,2888,9774,179],function(){return e(e.s=52895)}),_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.