<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:webfeeds="http://webfeeds.org/rss/1.0" version="2.0">
  <channel>
    <atom:link href="http://pubsubhubbub.appspot.com/" rel="hub"/>
    <atom:link href="https://f43.me/graphql-team-blog.xml" rel="self" type="application/rss+xml"/>
    <title>GraphQL Team Blog</title>
    <description>Blog | GraphQL</description>
    <link>http://graphql.org</link>
    <webfeeds:icon>https://s2.googleusercontent.com/s2/favicons?alt=feed&amp;domain=graphql.org</webfeeds:icon>
    <generator>f43.me</generator>
    <lastBuildDate>Sun, 19 Apr 2026 15:49:21 +0200</lastBuildDate>
    <item>
      <title><![CDATA[Meet the latest 2026 Ambassador Cohort]]></title>
      <description><![CDATA[<p><a title="Blog" class="text-neu-700 dark:text-neu-400 min-w-6 last:text-neu-800 dark:last:text-neu-800 leading-none whitespace-pre gql-focus-visible ring-inset hover:text-neu-900 hover:underline underline-offset-2 shrink-0" href="https://graphql.org/blog/">Blog</a></p><p><a class="gql-focus-visible -m-1 flex p-1 ring-inset ring-neu-400 transition-opacity duration-75 hover:ring focus:!outline-offset-0 dark:ring-neu-50 [:has(&gt;:hover)&gt;&amp;:not(:hover)]:opacity-70" href="https://graphql.org/tags/announcements/">announcements</a></p>
<p>Jem Gillam<time datetime="2026-04-16T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">April 16, 2026</time></p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The GraphQL Foundation is happy to announce the latest cohort of GraphQL Ambassadors! Ambassadors represent a diverse range of geographies, backgrounds, and use cases — from maintainers of popular libraries and meetup organizers to educators writing guides and tutorials, and beyond. Join us in welcoming Akshat, Ayush, Emily and Ivan to the team!</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Ivan has been deeply involved in GraphQL since its early days, contributing extensively to graphql-js and the specification itself. He also authored the initial version of the GraphQL over HTTP specification, which formalises how GraphQL operations are transported over HTTP. Alongside this work, Ivan has been a regular speaker and advocate for GraphQL in the community.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Emily represents the next generation of spec and tooling contributors. Through her work on large-scale GraphQL gateways and her role championing the <a rel="noopener noreferrer" target="_blank" href="https://github.com/graphql/graphql-wg/blob/main/rfcs/FieldExtensions.md" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">Field Extensions RFC</a>, she is helping evolve how GraphQL schemas can be extended and composed in real-world systems. She has also been sharing her insights through talks and contributions to ecosystem tooling, bringing a thoughtful perspective as she continues to grow within the community.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Akshat brings a strong focus on practical GraphQL adoption - from performance and security best practices through to mentorship and community education - helping developers build robust APIs in real-world environments. Lastly, Ayush is exploring how GraphQL fits into the next generation of infrastructure, advocating for its role in orchestrating complex systems and inspiring more students and early-career engineers to get involved in the ecosystem.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Together, this cohort reflects both the depth and the future of GraphQL: experienced voices who have helped shape the ecosystem, and new contributors who are expanding its reach into new domains and communities.</p>
<h2 id="how-to-get-involved" class="typography-h3 mt-10 text-neu-900">How to Get Involved</h2>
<ul class="[:is(ol,ul)_&amp;]:_my-3 [&amp;:not(:first-child)]:_mt-6 _list-disc ltr:_ml-6 rtl:_mr-6"><li class="_my-2">
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7"><strong>Nominate an Ambassador.</strong> Do you know someone doing incredible work with GraphQL? <a rel="noopener noreferrer" target="_blank" href="https://forms.gle/hN7reX8aKQ6BqSJm7" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">Nominate them</a> (or <a rel="noopener noreferrer" target="_blank" href="https://forms.gle/zRKVfcTPQ9kFn4Ps6" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">yourself</a>)!</p>
</li>
<li class="_my-2">
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7"><strong>Connect locally.</strong> Attend <a class="gql-focus-visible typography-link text-neu-900 underline-offset-2" href="https://graphql.org/blog/community/events/">events and workshops</a> hosted by Ambassadors in your region.</p>
</li>
<li class="_my-2">
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7"><strong>Share your story.</strong> If you’re publishing, teaching, or building with GraphQL, we’d love to hear from you.</p>
</li>
</ul><h2 id="whats-next" class="typography-h3 mt-10 text-neu-900">What’s Next</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The Ambassadors program is part of our broader effort to strengthen community engagement and education around GraphQL. Look forward to spotlights on our Ambassador team, upcoming blogs and speaking opportunities, and ways you can collaborate with these leaders.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Together, we’re building not just technology, but a thriving, global GraphQL community.</p>
<p><a title="Seeking SMEs for GraphQL Conf 2026" class="gql-focus-visible typography-link flex max-w-[50%] items-center gap-2 border border-neu-200 pr-2 text-left text-base no-underline hover:bg-neu-50 hover:ring hover:ring-neu-100 dark:border-neu-100 dark:hover:bg-neu-50/50 dark:hover:ring-neu-50" href="https://graphql.org/blog/2026-01-16-seeking-graphql-subject-matter-experts/">Seeking SMEs for GraphQL Conf 2026</a></p>]]></description>
      <link>https://graphql.org/blog/2026-04-16-meet-the-spring-ambassador-cohort</link>
      <guid>https://graphql.org/blog/2026-04-16-meet-the-spring-ambassador-cohort</guid>
      <pubDate>Thu, 16 Apr 2026 02:00:00 +0200</pubDate>
    </item>
    <item>
      <title><![CDATA[2026 Call For Projects]]></title>
      <description><![CDATA[<main class="w-full min-w-0 max-w-6xl px-6 pt-4 md:px-12"><p><a title="Blog" class="text-neu-700 dark:text-neu-400 min-w-6 last:text-neu-800 dark:last:text-neu-800 leading-none whitespace-pre gql-focus-visible ring-inset hover:text-neu-900 hover:underline underline-offset-2 shrink-0" href="https://graphql.org/blog/">Blog</a></p>
<p><a class="gql-focus-visible -m-1 flex p-1 ring-inset ring-neu-400 transition-opacity duration-75 hover:ring focus:!outline-offset-0 dark:ring-neu-50 [:has(&gt;:hover)&gt;&amp;:not(:hover)]:opacity-70" href="https://graphql.org/tags/announcements/">announcements</a></p>
<p>Help the GraphQL ecosystem grow<time datetime="2026-04-13T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">April 13, 2026</time></p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">We’re excited to announce the first GraphQL ecosystem Call For Projects! If you are building tools, advocating, or more generally supporting GraphQL, this program is for you.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Our goal is to offer financial support and recognition for individuals who are helping move the ecosystem forward.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Each selected project will receive a $5000 grant as well as promotion on the GraphQL blog and socials.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The Call for Projects is part of the general <a rel="noopener noreferrer" target="_blank" href="https://graphql.org/community/foundation/community-grant/" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">GraphQL grant program</a> and submissions must meet some criteria:</p>
<ul class="[:is(ol,ul)_&amp;]:_my-3 [&amp;:not(:first-child)]:_mt-6 _list-disc ltr:_ml-6 rtl:_mr-6"><li class="_my-2">Contributes to a  project or another GraphQL property (<a rel="noopener noreferrer" target="_blank" href="https://www.youtube.com/channel/UCIVbABX6aSk5hy5UPAhQdmQ" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">YouTube</a>, socials, …).</li>
<li class="_my-2">Must be submitted by individuals (companies are not eligible for funding).</li>
<li class="_my-2">Requires signature of a grant agreement (<a rel="noopener noreferrer" target="_blank" href="https://github.com/graphql/foundation/blob/HEAD/grants/GraphQL_Grantee_Agreement-preview.pdf" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">preview</a>).</li>
<li class="_my-2">Requires a graphql.org blog post explaining the work.</li>
</ul><p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">For 2026, we encourage participants to submit projects around the themes below:</p>
<ul class="[:is(ol,ul)_&amp;]:_my-3 [&amp;:not(:first-child)]:_mt-6 _list-disc ltr:_ml-6 rtl:_mr-6"><li class="_my-2"><a rel="noopener noreferrer" target="_blank" href="https://github.com/graphql/ai-wg/issues" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">AI</a></li>
<li class="_my-2"><a rel="noopener noreferrer" target="_blank" href="https://github.com/graphql/golden-path-wg/" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">Golden path</a></li>
<li class="_my-2">Security</li>
<li class="_my-2"><a rel="noopener noreferrer" target="_blank" href="https://github.com/graphql/graphql-js/issues" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">graphql-js improvements</a></li>
<li class="_my-2">Guides and tutorials</li>
</ul><p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">For example, these topics have been discussed recently in the community and would be good starting points for contributions:</p>
<ul class="[:is(ol,ul)_&amp;]:_my-3 [&amp;:not(:first-child)]:_mt-6 _list-disc ltr:_ml-6 rtl:_mr-6"><li class="_my-2">Implement alternative serialization format (CBOR, argo) in graphql-js.</li>
<li class="_my-2">Implement <a rel="noopener noreferrer" target="_blank" href="https://github.com/graphql/ai-wg/blob/main/rfcs/semantic-introspection.md" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">semantic introspection</a> in graphql-js to make it easier for agents to discover GraphQL schemas and types.</li>
<li class="_my-2">Implement new experimental GraphQL features such as <a rel="noopener noreferrer" target="_blank" href="https://github.com/graphql/graphql-spec/pull/1163" class="gql-focus-visible typography-link text-neu-900 underline-offset-2"> or service capabilities</a> in graphql-js.</li>
<li class="_my-2">Implement a type-safe query builder library using TypeScript.</li>
<li class="_my-2">Design and implement a “<a rel="noopener noreferrer" target="_blank" href="https://github.com/graphql/community-wg/issues/165" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">caniuse.graphql.org</a>” website to make it easy to see at a glance what experimental features are supported in different frameworks.</li>
<li class="_my-2">Propose and implement an alternative way to thread in inputs to @skip/@include (highlighted as a problem <a rel="noopener noreferrer" target="_blank" href="https://www.youtube.com/watch?t=498&amp;v=Orgyp3xOqwY&amp;feature=youtu.be" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">here</a>).</li>
<li class="_my-2">Design and implement a <a rel="noopener noreferrer" target="_blank" href="https://github.com/graphql/community-wg/issues/158" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">content hub</a> for easily spreading the word about GraphQL.</li>
<li class="_my-2">Run a <a rel="noopener noreferrer" target="_blank" href="https://github.com/graphql/community-wg/issues/55" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">GraphQL survey</a>.</li>
<li class="_my-2">Modernize and reimplement <a rel="noopener noreferrer" target="_blank" href="https://www.howtographql.com/" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">https://www.howtographql.com/</a> with modern tools.</li>
<li class="_my-2">Document <a rel="noopener noreferrer" target="_blank" href="https://github.com/graphql/graphql.github.io/issues/2353" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">additional GraphQL Schema Guidelines</a> on the graphql.org website.</li>
<li class="_my-2">Illustrated guides for newcomers.</li>
</ul><p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">This list is not exhaustive and all submissions will be carefully examined. If you are unsure about where to start, join the <a rel="noopener noreferrer" target="_blank" href="https://discord.graphql.org" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">Discord server</a> to brainstorm ideas.</p>
<ul class="[:is(ol,ul)_&amp;]:_my-3 [&amp;:not(:first-child)]:_mt-6 _list-disc ltr:_ml-6 rtl:_mr-6"><li class="_my-2">May 31, 2026: deadline for submissions.</li>
<li class="_my-2">June 30, 2026: winners are announced.</li>
<li class="_my-2">Dec 31, 2026: program closes.</li>
</ul>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">You can apply now by filing the <a rel="noopener noreferrer" target="_blank" href="https://docs.google.com/forms/d/e/1FAIpQLSciopqGoQE2hBhxsb5E6dq12VrD221Zv4dsGWa1nQM35FT1nA/viewform" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">GraphQL grant application</a>.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">For any questions please reach out to <a class="gql-focus-visible typography-link text-neu-900 underline-offset-2" href="https://graphql.org/cdn-cgi/l/email-protection#4926392c3b283d2026273a092e3b283921382567263b2e">[email protected]</a> or join the discussion on <a rel="noopener noreferrer" target="_blank" href="https://discord.graphql.org" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">Discord</a> (channel ).</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">We’re looking forward to your proposals!</p>
<p><a title="Seeking SMEs for GraphQL Conf 2026" class="gql-focus-visible typography-link flex max-w-[50%] items-center gap-2 border border-neu-200 pr-2 text-left text-base no-underline hover:bg-neu-50 hover:ring hover:ring-neu-100 dark:border-neu-100 dark:hover:bg-neu-50/50 dark:hover:ring-neu-50" href="https://graphql.org/blog/2026-01-16-seeking-graphql-subject-matter-experts/">Seeking SMEs for GraphQL Conf 2026</a></p>
</main>]]></description>
      <link>https://graphql.org/blog/2026-04-13-call-for-projects</link>
      <guid>https://graphql.org/blog/2026-04-13-call-for-projects</guid>
      <pubDate>Mon, 13 Apr 2026 02:00:00 +0200</pubDate>
    </item>
    <item>
      <title><![CDATA[GraphQL Foundation Budget Report, 2025-2026]]></title>
      <description><![CDATA[<p><a title="Blog" class="text-neu-700 dark:text-neu-400 min-w-6 last:text-neu-800 dark:last:text-neu-800 leading-none whitespace-pre gql-focus-visible ring-inset hover:text-neu-900 hover:underline underline-offset-2 shrink-0" href="https://graphql.org/blog/">Blog</a></p><p><a class="gql-focus-visible -m-1 flex p-1 ring-inset ring-neu-400 transition-opacity duration-75 hover:ring focus:!outline-offset-0 dark:ring-neu-50 [:has(&gt;:hover)&gt;&amp;:not(:hover)]:opacity-70" href="https://graphql.org/tags/foundation/">foundation</a></p>
<p>GraphQL Foundation<time datetime="2026-04-09T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">April 9, 2026</time></p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The primary mission of the GraphQL Foundation is to ensure that the GraphQL community is able to focus on the continued evolution of the specification and reference implementations. We accomplish this through a number of core activities, some of which are directly related to hosting and administering core projects, and others through growing and engaging the user community. Our budget is created and approved by our member companies via the Governing Board. As part of our commitment to transparency, we are publishing the first-ever GraphQL Foundation Budget Report and will continue to do so regularly into the future.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">All figures are expressed in USD.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Link to Budget Summary Spreadsheet: <a rel="noopener noreferrer" target="_blank" href="https://docs.google.com/spreadsheets/d/1xwvaIrSyKPbxjG9o6MDh-tQBnajJPuiBBFdWi-A8lSY/edit?usp=sharing" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">GraphQL Foundation 2025-2026 Budget Summary</a></p>
<h2 id="2025-summary" class="typography-h3 mt-10 text-neu-900">2025 Summary</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">We ended 2025 having spent 2.9% ($17,729) more than forecast. Details below.</p>
<h3 id="what-we-learned" class="typography-body-lg mt-8 text-neu-900">What we learned</h3>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7"><strong>Event forecasting is a challenge</strong>. GraphQLConf 2025 underperformed in terms of sponsorship and attendance numbers. Thanks to the conservative budgeting by the Linux Foundation’s Events team, we also came in significantly under budget, which balanced out the ledger.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7"><strong>Carryovers are not ideal</strong>. The GraphQL Foundation is not a bank and should ideally not carry a large surplus year-over-year. This is because our funds are meant to be invested into our community! Our carryforward has progressively and appropriately shrunk over time; we are ending the year with $189,180 in the bank, a modest decrease from 2024’s figure.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7"><strong>Successful year for Developer Grants</strong>. Continuing the previous point, we awarded more grant money this year than ever before. These investments are at the heart of the GraphQL Foundation’s mission and should be celebrated.</p>
<h3 id="spending-by-category" class="typography-body-lg mt-8 text-neu-900">Spending by category</h3>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Our budget is grouped into five different sections:</p>
<h4 id="community-engagement-and-marketing" class="typography-body-md font-semibold mt-8 text-neu-900">Community engagement and marketing</h4>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">We spent $387,883. The biggest line item, by far, was GraphQLConf 2025. This category also included “swag” and social media management software.</p>
<h4 id="legal" class="typography-body-md font-semibold mt-8 text-neu-900">Legal</h4>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">We spent $213 on trademark maintenance.</p>
<h4 id="general--administrative" class="typography-body-md font-semibold mt-8 text-neu-900">General &amp; administrative</h4>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">This amounted to $36,682, attributable to finance, accounting, compliance auditing, taxes and governance support.</p>
<h4 id="staff-travel-and-board" class="typography-body-md font-semibold mt-8 text-neu-900">Staff, travel, and board</h4>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">We spent $102,895 in this category. Nearly all of this went to Program Management services provided by the Linux Foundation and our Community Gardener, Graphile. LF Program Management takes care of back-of-house functions like conference coordination and membership management, while our Community Gardener manages various GraphQL Specification Project initiatives, including the main specification, GraphQL.js, GraphiQL, and countless other responsibilities that ensure the health of the technical project and support the mission of the Foundation. A small portion was allocated to fund staff travel to GraphQLConf.</p>
<h4 id="it-infrastructure-and-staff" class="typography-body-md font-semibold mt-8 text-neu-900">IT infrastructure and staff</h4>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">We spent $73,595 in this category, which includes typical IT infrastructure expenses such as hosting as well as our Developer Grant Program. The Developer Grant Program awarded $18,000 in grants in 2025 to community members who made meaningful improvements to GraphQL technical projects. Take a look, and consider applying for 2026!</p>
<h3 id="revenue" class="typography-body-lg mt-8 text-neu-900">Revenue</h3>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The GraphQL Foundation’s budget is drawn from member dues, conference sponsorships, conference attendee registration fees, and carryover from previous years. The GraphQL Foundation collected $219,667 in dues this year. We took in $187,910 in sponsorship and conference pass sales. We also had a $382,871 carryover from 2024.</p>
<h2 id="2026-budget" class="typography-h3 mt-10 text-neu-900">2026 Budget</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">We are planning for $266,382 of expenditures and anticipating $211,000 of revenue, which will leave us with $133,798 to carry forward into 2027.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">See the linked spreadsheet for a line-by-line breakdown. Our priorities this year are cutting administrative costs, right-sizing the conference, and adding new streams of funding for the Community Working Group, Ambassadors, and Locals to leverage. We believe this will create new sources of content, engagement, outreach, and education for our community.</p>
<h3 id="themes-and-priorities" class="typography-body-lg mt-8 text-neu-900">Themes and priorities</h3>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7"><strong>A lean, smart budget</strong>. This year’s plan reduces overall spending without compromising on our mission. Despite outlying fewer expenditures, we are still able to hold our marquee event, invest in grants, and even introduce a new funding stream to our community.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7"><strong>Investment in our most engaged contributors</strong>. The GraphQL crowdfund is not a new platform but it hasn’t been very active since it was created. A lot has changed, though! 2025 brought us a new Community Working Group, GraphQL AI Working Group, and the Ambassadors Program. By expanding the surface area of the GraphQL project, we are inviting more contributors into the fold and magnifying the potential impact of our most engaged community members. The planned crowdfund block grants are there to support members of the community to be able to direct investment into areas that will support the mission of the GraphQL Foundation. Examples include boosting our YouTube presence, swag orders for acknowledging community contributions to technical working groups, and other tactical expenses. A charter will be necessary so that there is a common understanding of what expenses would be appropriate for this fund.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7"><strong>Meta’s investment makes a big difference</strong>. We were able to get this budget together in this shape thanks to the knowledge that Meta would be providing an incredible amount of support for GraphQLConf. The GraphQL community is so grateful for your investment. Thank you to everyone at Meta who is making this happen!</p>
<h2 id="making-an-impact" class="typography-h3 mt-10 text-neu-900">Making an impact</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Supporting the GraphQL community is a valuable service. Consider joining the GraphQL Foundation, read more <a rel="noopener noreferrer" target="_blank" href="https://graphql.org/community/foundation/" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">here</a>. We would like to thank our current <a rel="noopener noreferrer" target="_blank" href="https://graphql.org/community/foundation/members/" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">members</a> for their continued investment in our mission. Consider <a rel="noopener noreferrer" target="_blank" href="https://graphql.org/conf/2026/#sponsors" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">sponsoring GraphQLConf 2026</a>. Donations to the <a rel="noopener noreferrer" target="_blank" href="https://crowdfunding.lfx.linuxfoundation.org/projects/graphql" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">GraphQL Crowdfund</a> help fund initiatives from the Community Working Group and our GraphQL Ambassadors initiative.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">We are grateful for our community and hope this report serves the ecosystem well.</p>
<p><a title="Seeking SMEs for GraphQL Conf 2026" class="gql-focus-visible typography-link flex max-w-[50%] items-center gap-2 border border-neu-200 pr-2 text-left text-base no-underline hover:bg-neu-50 hover:ring hover:ring-neu-100 dark:border-neu-100 dark:hover:bg-neu-50/50 dark:hover:ring-neu-50" href="https://graphql.org/blog/2026-01-16-seeking-graphql-subject-matter-experts/">Seeking SMEs for GraphQL Conf 2026</a></p>]]></description>
      <link>https://graphql.org/blog/2026-04-09-graphql-foundation-budget-2026</link>
      <guid>https://graphql.org/blog/2026-04-09-graphql-foundation-budget-2026</guid>
      <pubDate>Thu, 09 Apr 2026 02:00:00 +0200</pubDate>
    </item>
    <item>
      <title><![CDATA[Announcing GraphQL Days 2026]]></title>
      <description><![CDATA[<p><a title="Blog" class="text-neu-700 dark:text-neu-400 min-w-6 last:text-neu-800 dark:last:text-neu-800 leading-none whitespace-pre gql-focus-visible ring-inset hover:text-neu-900 hover:underline underline-offset-2 shrink-0" href="https://graphql.org/blog/">Blog</a></p><p><a class="gql-focus-visible -m-1 flex p-1 ring-inset ring-neu-400 transition-opacity duration-75 hover:ring focus:!outline-offset-0 dark:ring-neu-50 [:has(&gt;:hover)&gt;&amp;:not(:hover)]:opacity-70" href="https://graphql.org/tags/announcements/">announcements</a></p>
<p>Meet the GraphQL community worldwide<time datetime="2026-04-07T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">April 7, 2026</time></p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">GraphQL Day (<a rel="noopener noreferrer" target="_blank" href="https://graphql.org/day" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">graphql.org/day</a>) is going global in 2026! After a successful debut in Paris, GraphQL Day is going on tour worldwide as part of <a rel="noopener noreferrer" target="_blank" href="https://joinfost.io/" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">FOST (Future of Software Technologies)</a> — a federation of conferences bringing together the GraphQL, AsyncAPI, OpenAPI, and JSON Schema communities.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">GraphQL Day is the place to meet the GraphQL community: startups, enterprise, open source maintainers, vendors, business leaders, students and more! Expect content for both experts and beginners. FOST is the perfect opportunity to connect with wider ecosystem and stay on top of API technologies.</p>
<h2 id="2026-schedule" class="typography-h3 mt-10 text-neu-900">2026 Schedule</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">For 2026, you can expect GraphQL Days in the cities below:</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">More locations are being investigated. Subscribe to the GraphQL socials (<a rel="noopener noreferrer" target="_blank" href="https://x.com/GraphQL" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">X</a>, <a rel="noopener noreferrer" target="_blank" href="https://bsky.app/profile/graphql.org" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">BlueSky</a>, <a rel="noopener noreferrer" target="_blank" href="https://www.linkedin.com/company/51722505/" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">LinkedIn</a>, <a rel="noopener noreferrer" target="_blank" href="https://www.graphqlweekly.com/" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">GraphQL Weekly</a>) to get the latest news!</p>
<h2 id="call-for-speakers" class="typography-h3 mt-10 text-neu-900">Call for Speakers</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">We’re looking for speakers across all events! Any GraphQL topic is welcome — production war stories, technical deep-dives, workshops, or lightning talks. We especially appreciate talks that speak to the broader FOST audience, including folks from adjacent API communities.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7"><a rel="noopener noreferrer" target="_blank" href="https://forms.gle/M1kiuvwK2wLJyNzi9" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">Submit your talk →</a></p>
<h2 id="get-your-tickets" class="typography-h3 mt-10 text-neu-900">Get Your Tickets</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Singapore tickets are available now, with tickets for the other cities coming soon. Visit <a rel="noopener noreferrer" target="_blank" href="https://graphql.org/day" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">graphql.org/day</a> for all the details and to grab your spot.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">See you there!</p>
<p><a title="Seeking SMEs for GraphQL Conf 2026" class="gql-focus-visible typography-link flex max-w-[50%] items-center gap-2 border border-neu-200 pr-2 text-left text-base no-underline hover:bg-neu-50 hover:ring hover:ring-neu-100 dark:border-neu-100 dark:hover:bg-neu-50/50 dark:hover:ring-neu-50" href="https://graphql.org/blog/2026-01-16-seeking-graphql-subject-matter-experts/">Seeking SMEs for GraphQL Conf 2026</a></p>]]></description>
      <link>https://graphql.org/blog/2026-04-07-graphql-day-2026</link>
      <guid>https://graphql.org/blog/2026-04-07-graphql-day-2026</guid>
      <pubDate>Tue, 07 Apr 2026 02:00:00 +0200</pubDate>
    </item>
    <item>
      <title><![CDATA[Announcing GraphQL Days 2026]]></title>
      <description><![CDATA[<p><a title="Blog" class="text-neu-700 dark:text-neu-400 min-w-6 last:text-neu-800 dark:last:text-neu-800 leading-none whitespace-pre gql-focus-visible ring-inset hover:text-neu-900 hover:underline underline-offset-2 shrink-0" href="https://graphql.org/blog/">Blog</a></p><p><a class="gql-focus-visible -m-1 flex p-1 ring-inset ring-neu-400 transition-opacity duration-75 hover:ring focus:!outline-offset-0 dark:ring-neu-50 [:has(&gt;:hover)&gt;&amp;:not(:hover)]:opacity-70" href="https://graphql.org/tags/announcements/">announcements</a></p>
<p>Meet the GraphQL community worldwide<time datetime="2026-04-02T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">April 2, 2026</time></p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">GraphQL Day (<a rel="noopener noreferrer" target="_blank" href="https://graphql.org/day" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">graphql.org/day</a>) is going global in 2026! After a successful debut in Paris, GraphQL Day is going on tour worldwide as part of <a rel="noopener noreferrer" target="_blank" href="https://joinfost.io/" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">FOST (Future of Software Technologies)</a> — a federation of conferences bringing together the GraphQL, AsyncAPI, OpenAPI, and JSON Schema communities.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">GraphQL Day is the place to meet the GraphQL community: startups, enterprise, open source maintainers, vendors, business leaders, students and more! Expect content for both experts and beginners. FOST is the perfect opportunity to connect with wider ecosystem and stay on top of API technologies.</p>
<h2 id="2026-schedule" class="typography-h3 mt-10 text-neu-900">2026 Schedule</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">For 2026, you can expect GraphQL Days in the cities below:</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">More locations are being investigated. Subscribe to the GraphQL socials (<a rel="noopener noreferrer" target="_blank" href="https://x.com/GraphQL" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">X</a>, <a rel="noopener noreferrer" target="_blank" href="https://bsky.app/profile/graphql.org" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">BlueSky</a>, <a rel="noopener noreferrer" target="_blank" href="https://www.linkedin.com/company/51722505/" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">LinkedIn</a>, <a rel="noopener noreferrer" target="_blank" href="https://www.graphqlweekly.com/" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">GraphQL Weekly</a>) to get the latest news!</p>
<h2 id="call-for-speakers" class="typography-h3 mt-10 text-neu-900">Call for Speakers</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">We’re looking for speakers across all events! Any GraphQL topic is welcome — production war stories, technical deep-dives, workshops, or lightning talks. We especially appreciate talks that speak to the broader FOST audience, including folks from adjacent API communities.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7"><a rel="noopener noreferrer" target="_blank" href="https://forms.gle/M1kiuvwK2wLJyNzi9" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">Submit your talk →</a></p>
<h2 id="get-your-tickets" class="typography-h3 mt-10 text-neu-900">Get Your Tickets</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Singapore tickets are available now, with tickets for the other cities coming soon. Visit <a rel="noopener noreferrer" target="_blank" href="https://graphql.org/day" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">graphql.org/day</a> for all the details and to grab your spot.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">See you there!</p>
<p><a title="Seeking SMEs for GraphQL Conf 2026" class="gql-focus-visible typography-link flex max-w-[50%] items-center gap-2 border border-neu-200 pr-2 text-left text-base no-underline hover:bg-neu-50 hover:ring hover:ring-neu-100 dark:border-neu-100 dark:hover:bg-neu-50/50 dark:hover:ring-neu-50" href="https://graphql.org/blog/2026-01-16-seeking-graphql-subject-matter-experts/">Seeking SMEs for GraphQL Conf 2026</a></p>]]></description>
      <link>https://graphql.org/blog/2026-04-02-graphql-day-2026</link>
      <guid>https://graphql.org/blog/2026-04-02-graphql-day-2026</guid>
      <pubDate>Thu, 02 Apr 2026 02:00:00 +0200</pubDate>
    </item>
    <item>
      <title><![CDATA[A new era for GraphQL observability]]></title>
      <description><![CDATA[<p><a title="Blog" class="text-neu-700 dark:text-neu-400 min-w-6 last:text-neu-800 dark:last:text-neu-800 leading-none whitespace-pre gql-focus-visible ring-inset hover:text-neu-900 hover:underline underline-offset-2 shrink-0" href="https://graphql.org/blog/">Blog</a></p><p><a class="gql-focus-visible -m-1 flex p-1 ring-inset ring-neu-400 transition-opacity duration-75 hover:ring focus:!outline-offset-0 dark:ring-neu-50 [:has(&gt;:hover)&gt;&amp;:not(:hover)]:opacity-70" href="https://graphql.org/tags/announcements/">announcements</a></p>
<p>Martin Bonnin and Mark Larah<time datetime="2026-04-01T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">April 1, 2026</time></p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">GraphQL is ten years old. During those ten years, teams small and large have adopted the typesafe, concise query language. It powers everything from tiny side projects to some of the most demanding APIs on the planet. The type system, the developer tooling, the ecosystem — all of it has matured tremendously.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">And yet, one thing has remained a persistent point of criticism: the <a rel="noopener noreferrer" target="_blank" href="https://x.com/iamdevloper/status/1384074981840097289" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">HTTP 200 status code</a>. By returning 200 even when errors occur, GraphQL makes it harder for existing monitoring tools, proxies, and CDNs to detect failures. Teams building on GraphQL have had to work around this limitation from day one, and it remains one of the most common pain points raised by newcomers and experienced users alike.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Today, we’re fixing that once and for all: <strong>GraphQL is switching to HTTP 500</strong>.</p>
<h2 id="why-graphql-returned-200" class="typography-h3 mt-10 text-neu-900">Why GraphQL returned 200</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">To understand why this change matters, let’s look at why 200 made sense in the first place. Unlike REST APIs, where an HTTP 404 or 500 immediately tells you something went wrong, GraphQL works differently. A GraphQL response can contain <strong>both</strong>  and  at the same time. A single query might fetch five fields successfully and fail on a sixth — and the client still needs the five good fields.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Because partial data is a valid and expected outcome, the HTTP status code alone can’t summarize what happened. The real error information lives inside the response body:</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The request itself succeeded — the server understood the query, executed it, and returned what it could. That’s a 200 in HTTP terms. The  array tells the client exactly which fields failed and why, while  still carries everything that resolved correctly.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">This was a reasonable trade-off at the time, but it made traditional monitoring much harder. Your dashboards see a wall of  while users may be experiencing real failures. Alerting on HTTP status codes alone won’t catch a broken resolver that’s silently nulling out a critical field. After ten years, the community has spoken loud and clear: this has to change.</p>
<h2 id="the-fix-http-500-by-default" class="typography-h3 mt-10 text-neu-900">The fix: HTTP 500 by default</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">After years of debate and confusion, the GraphQL Working Group has reached a historic decision: <strong>starting with the October 2026 spec release, all GraphQL responses will return HTTP 500</strong>.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">That’s right. Every single one.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The reasoning is simple. If returning 200 for errors was confusing, the solution is to return an error status code for everything. 500 Internal Server Error is the most honest status code available — after all, something <em>could</em> be wrong, and you won’t know until you check the response body. Which is exactly what you should have been doing all along.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">This brings several advantages:</p>
<ul class="[:is(ol,ul)_&amp;]:_my-3 [&amp;:not(:first-child)]:_mt-6 _list-disc ltr:_ml-6 rtl:_mr-6"><li class="_my-2"><strong>Observability is solved.</strong> Your dashboards will light up like a Christmas tree. You’ll never miss an issue again because <em>every</em> request looks like an issue.</li>
<li class="_my-2"><strong>Job security for SREs.</strong> With a 100% error rate, the on-call rotation has never been more exciting. The incident response platform industry is expected to boom.</li>
<li class="_my-2"><strong>No more misleading metrics.</strong> Your 99.9% success rate was a lie anyway. Now your 0% success rate is at least consistent.</li>
<li class="_my-2"><strong>Developers will finally read the response body.</strong> We’ve tried documentation, conference talks, and blog posts. Nothing worked. Fear works.</li>
</ul><p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The  array will remain unchanged, but a new  boolean will be added to the response for clients that want to know if the data is actually usable:</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">We look forward to a new era of GraphQL observability!</p>
<hr class="_my-8 _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400" /><p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">PS: <em>If you’ve read this far, congrats and happy first of April!</em></p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7"><em>You can now use the status code of your liking together with the <a rel="noopener noreferrer" target="_blank" href="https://graphql.github.io/graphql-over-http/draft/#sec-application-graphql-response-json" class="gql-focus-visible typography-link text-neu-900 underline-offset-2"> content type</a>.</em></p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7"><em>We also recommend that servers implement tracing with OpenTelemetry (or similar); resolvers that throw errors can be observed via <a rel="noopener noreferrer" target="_blank" href="https://opentelemetry.io/docs/specs/semconv/general/recording-errors/#recording-errors-on-spans" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">errors recorded on spans</a>.</em></p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7"><em>Join us at <a rel="noopener noreferrer" target="_blank" href="https://graphql.org/conf/2026/" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">GraphQLConf</a> in a few of weeks to learn more!</em></p>
<p><a title="Seeking SMEs for GraphQL Conf 2026" class="gql-focus-visible typography-link flex max-w-[50%] items-center gap-2 border border-neu-200 pr-2 text-left text-base no-underline hover:bg-neu-50 hover:ring hover:ring-neu-100 dark:border-neu-100 dark:hover:bg-neu-50/50 dark:hover:ring-neu-50" href="https://graphql.org/blog/2026-01-16-seeking-graphql-subject-matter-experts/">Seeking SMEs for GraphQL Conf 2026</a></p>]]></description>
      <link>https://graphql.org/blog/2026-04-01-a-new-era-for-graphql-observability</link>
      <guid>https://graphql.org/blog/2026-04-01-a-new-era-for-graphql-observability</guid>
      <pubDate>Wed, 01 Apr 2026 02:00:00 +0200</pubDate>
    </item>
    <item>
      <title><![CDATA[GraphQLConf is now 19-20 May 2026]]></title>
      <description><![CDATA[<main class="w-full min-w-0 max-w-6xl px-6 pt-4 md:px-12"><p><a title="Blog" class="text-neu-700 dark:text-neu-400 min-w-6 last:text-neu-800 dark:last:text-neu-800 leading-none whitespace-pre gql-focus-visible ring-inset hover:text-neu-900 hover:underline underline-offset-2 shrink-0" href="https://graphql.org/blog/">Blog</a></p>
<p><a class="gql-focus-visible -m-1 flex p-1 ring-inset ring-neu-400 transition-opacity duration-75 hover:ring focus:!outline-offset-0 dark:ring-neu-50 [:has(&gt;:hover)&gt;&amp;:not(:hover)]:opacity-70" href="https://graphql.org/tags/announcements/">announcements</a></p>
<p>GraphQL Foundation<time datetime="2026-03-17T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">March 17, 2026</time></p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Due to a variety of factors, the date for GraphQLConf 2026 is changing. Please mark your calendars for 19-20 May, 2026! We will still be at the Meta campus in Fremont, California.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The Governing Board did not make this decision lightly; due to limitations with the original site, it became clear that the space was infeasible for a conference of this scope. After exploring several “Plan B” scenarios with events teams at Meta and The Linux Foundation, we determined that rescheduling was the only workable solution.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">There is a silver-lining: Shifting dates slightly will allow us to welcome more members of the community safely and more comfortably. We are very much looking forward to GraphQL 2026.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">View the program and register here: <a rel="noopener noreferrer" target="_blank" href="https://graphql.org/conf/2026/" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">graphql.org/conf/2026</a>.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Thank you to our Platinum sponsor, Meta, who is graciously providing the space for this event. We also wish to thank our Gold sponsors, The Guild and Wundergraph; our Silver sponsors, Apollo GraphQL and ChilliCream; and our Bronze sponsor, Grafast. If you are interested in sponsoring GraphQLConf, we have packages beginning at only $1,000 USD. See our <a rel="noopener noreferrer" target="_blank" href="https://events.linuxfoundation.org/wp-content/uploads/2026/01/sponsor_GraphQLConf_2026_012126.pdf" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">prospectus</a> for more information.</p>
<p><a title="Seeking SMEs for GraphQL Conf 2026" class="gql-focus-visible typography-link flex max-w-[50%] items-center gap-2 border border-neu-200 pr-2 text-left text-base no-underline hover:bg-neu-50 hover:ring hover:ring-neu-100 dark:border-neu-100 dark:hover:bg-neu-50/50 dark:hover:ring-neu-50" href="https://graphql.org/blog/2026-01-16-seeking-graphql-subject-matter-experts/">Seeking SMEs for GraphQL Conf 2026</a></p>
</main>]]></description>
      <link>https://graphql.org/blog/2026-03-17-graphqlconf-date-change</link>
      <guid>https://graphql.org/blog/2026-03-17-graphqlconf-date-change</guid>
      <pubDate>Tue, 17 Mar 2026 01:00:00 +0100</pubDate>
    </item>
    <item>
      <title><![CDATA[GraphQLConf 2026: May 6-7 in Menlo Park]]></title>
      <description><![CDATA[<p><a title="Blog" class="text-neu-700 dark:text-neu-400 min-w-6 last:text-neu-800 dark:last:text-neu-800 leading-none whitespace-pre gql-focus-visible ring-inset hover:text-neu-900 hover:underline underline-offset-2 shrink-0" href="https://graphql.org/blog/">Blog</a></p><p><a class="gql-focus-visible -m-1 flex p-1 ring-inset ring-neu-400 transition-opacity duration-75 hover:ring focus:!outline-offset-0 dark:ring-neu-50 [:has(&gt;:hover)&gt;&amp;:not(:hover)]:opacity-70" href="https://graphql.org/tags/announcements/">announcements</a></p>
<p>GraphQL Foundation<time datetime="2026-01-29T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">January 29, 2026</time></p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">GraphQLConf will return to its roots in the Bay Area on May 6-7, 2026 at the Meta office campus in Menlo Park, CA. The Bay Area has always played a special role in the GraphQL story. From the earliest internal experiments to the first open-source release and initial meetups, this region helped define what GraphQL would become. Bringing GraphQLConf back to the area is an opportunity to reflect on how far the ecosystem has grown while looking ahead to what’s next.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">More details can be found on the <a rel="noopener noreferrer" target="_blank" href="https://graphql.org/conf/2026/" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">conference website</a>.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">We are deeply grateful to Meta for their generosity in making both their facilities and their event support team available to GraphQL users. GraphQLConf is an event run in service of the community, and support like this allows us to focus our resources on what matters most: creating a welcoming, inclusive, and high-quality experience for everyone who builds with GraphQL. We couldn’t do this without partners who believe in the long-term health of the ecosystem.</p>
<h2 id="accessible-to-all" class="typography-h3 mt-10 text-neu-900">Accessible to all</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">This year, conference registration will be essentially free for attendees!</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">However, it’s well known that free tickets can lead to increased no-shows, which in turn can make planning difficult and prevent others from attending. We’re currently working on a ticketing model that encourages attendance while keeping the event accessible. More details will be shared once the model is finalized; our goal is simple: keep GraphQLConf open to everyone, try to offset some expenditures, and respect the community’s time and the generosity of our hosts.</p>
<h2 id="what-to-expect" class="typography-h3 mt-10 text-neu-900">What to Expect</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">GraphQL continues to evolve rapidly, and GraphQLConf 2026 will reflect the breadth and depth of the modern ecosystem.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Major themes are expected to include:</p>
<ul class="[:is(ol,ul)_&amp;]:_my-3 [&amp;:not(:first-child)]:_mt-6 _list-disc ltr:_ml-6 rtl:_mr-6"><li class="_my-2">AI and GraphQL</li>
<li class="_my-2">UI and product development</li>
<li class="_my-2">Backend architecture</li>
<li class="_my-2">Security and trust</li>
<li class="_my-2">Federation, composite schemas, and distributed systems</li>
<li class="_my-2">Developer experience</li>
<li class="_my-2">Tooling, performance, and operations</li>
<li class="_my-2">Getting started with GraphQL</li>
<li class="_my-2">…and much more</li>
</ul><p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Whether you’re building client applications, designing schemas, operating federated graphs at scale, or exploring how GraphQL fits into an AI-driven future, GraphQLConf is the place to connect and learn. And the vibes are sure to be great if prior conferences are any indication!</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">This year the conference will be two days instead of three, a change from prior years; we’re hoping to organize more informal get-togethers for the Working Group, TSC, Board and Ambassadors before/after the conference — details to follow.</p>
<h2 id="call-for-proposals-is-open" class="typography-h3 mt-10 text-neu-900">Call for Proposals Is Open</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">We want to hear from you.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The <a rel="noopener noreferrer" target="_blank" href="https://sessionize.com/graphqlconf-2026/" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">Call for Proposals (CFP)</a> is now open, and we encourage submissions from across the community — practitioners, maintainers, newcomers, and long-time contributors alike.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">If you’ve learned something the hard way, built something interesting, or have a perspective that could help others, we’d love to see your talk.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">GraphQLConf exists because of community and industry support.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The GraphQL Foundation is actively seeking sponsors who want to invest in the GraphQL ecosystem and help make this event accessible to developers around the world.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">We have options for every budget level for your team, starting at <strong>just $1,000 USD</strong>.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7"><a rel="noopener noreferrer" target="_blank" href="https://events.linuxfoundation.org/wp-content/uploads/2026/01/sponsor_GraphQLConf_2026_012126.pdf" class="gql-focus-visible typography-link text-neu-900 underline-offset-2"> View the prospectus: GraphQLConf 2026 Sponsorship</a></p>
<h2 id="from-autumn-to-spring" class="typography-h3 mt-10 text-neu-900">From Autumn to Spring</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">We had such a good time at GraphQLConf 2025 that we couldn’t wait twelve whole months to get it started again! We’ve been talking about moving this gathering earlier in the year for a while, and Meta’s availability helped us get it done. So mark your calendar for May 6-7, 2026, and join us in Menlo Park for two days of learning, collaboration, and connection around the future of GraphQL.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">More details on registration, speakers, and schedules will be announced soon </p>
<p><a title="Seeking SMEs for GraphQL Conf 2026" class="gql-focus-visible typography-link flex max-w-[50%] items-center gap-2 border border-neu-200 pr-2 text-left text-base no-underline hover:bg-neu-50 hover:ring hover:ring-neu-100 dark:border-neu-100 dark:hover:bg-neu-50/50 dark:hover:ring-neu-50" href="https://graphql.org/blog/2026-01-16-seeking-graphql-subject-matter-experts/">Seeking SMEs for GraphQL Conf 2026</a></p>]]></description>
      <link>https://graphql.org/blog/2026-01-29-graphqlconf-2026-announcement</link>
      <guid>https://graphql.org/blog/2026-01-29-graphqlconf-2026-announcement</guid>
      <pubDate>Thu, 29 Jan 2026 01:00:00 +0100</pubDate>
    </item>
    <item>
      <title><![CDATA[GraphQL AI Working Group Recap: January 2026]]></title>
      <description><![CDATA[<p><a title="Blog" class="text-neu-700 dark:text-neu-400 min-w-6 last:text-neu-800 dark:last:text-neu-800 leading-none whitespace-pre gql-focus-visible ring-inset hover:text-neu-900 hover:underline underline-offset-2 shrink-0" href="https://graphql.org/blog/">Blog</a></p><p><a class="gql-focus-visible -m-1 flex p-1 ring-inset ring-neu-400 transition-opacity duration-75 hover:ring focus:!outline-offset-0 dark:ring-neu-50 [:has(&gt;:hover)&gt;&amp;:not(:hover)]:opacity-70" href="https://graphql.org/tags/blog/">blog</a></p>
<p>Kewei Qu<time datetime="2026-01-22T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">January 22, 2026</time></p>
<h2 id="overview" class="typography-h3 mt-10 text-neu-900">Overview</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The GraphQL AI Working Group met in January 2026 to continue advancing the foundational building blocks that enable agentic AI systems to safely and reliably construct GraphQL operations. Building on prior discussions around schema navigation and operation generation, this session focused on improving how agents understand schema intent, develop against GraphQL APIs without live backends, and adopt semantic techniques using accessible open source tooling.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The discussion centered on three related topics: Semantic Introspection, the  directive for improving agentic development workflows, and an open source GraphQL embedding implementation.</p>
<h2 id="building-blocks-for-agentic-graphql-operation-construction" class="typography-h3 mt-10 text-neu-900">Building Blocks for Agentic GraphQL Operation Construction</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">A recurring goal of the working group is to reduce hallucination, invalid field selection, and incorrect assumptions when AI agents generate GraphQL operations. The January meeting explored three complementary building blocks that strengthen agent grounding and developer experience.</p>
<h3 id="semantic-introspection" class="typography-body-lg mt-8 text-neu-900">Semantic Introspection</h3>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The group reviewed the Semantic Introspection RFC, which proposes extending standard GraphQL introspection with richer, semantics-aware metadata.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Traditional introspection exposes the structural shape of a schema, such as types, fields, and arguments. Semantic introspection builds on this by surfacing machine-readable signals about intent, meaning, and relationships between schema elements. These semantic hints allow agents to reason more effectively about which parts of a schema are relevant for a given task and how fields and types are expected to be used.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">By providing higher-level context directly through introspection, this approach helps agents navigate large or complex schemas more intelligently, improves the accuracy of generated operations, and reduces reliance on heuristic or purely text-based schema exploration.</p>
<h3 id="mock-directive-for-agentic-development" class="typography-body-lg mt-8 text-neu-900"> Directive for Agentic Development</h3>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The working group also discussed a proposed GraphQL mocking specification centered around a  directive, designed to improve development and testing workflows for both humans and AI agents.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">When an operation is annotated with , client tooling intercepts execution and returns predefined mock responses instead of making a network request to a live backend. Mock responses are typically defined in adjacent JSON files and must conform to the expected GraphQL response shape.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">This approach enables rapid prototyping, predictable testing, and faster iteration cycles for agentic systems that generate and refine operations. It is particularly valuable when agents need to explore schema behavior, validate operation structure, or develop against APIs that are unavailable, unstable, or still under construction.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">By standardizing how mocks are declared and consumed, this proposal lowers friction for agentic development and encourages more consistent tooling support across the GraphQL ecosystem.</p>
<h3 id="open-source-graphql-embedding-implementation" class="typography-body-lg mt-8 text-neu-900">Open Source GraphQL Embedding Implementation</h3>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Watson presented an open source embedding prototype that generates semantic embeddings at the GraphQL type and field level using an OLLAMA-based setup.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The implementation demonstrated that even with a lightweight open source model and as little as 8 GB of RAM, it is possible to generate embeddings that meaningfully support schema navigation and dynamic GraphQL operation construction. Despite using inexpensive infrastructure, the system was able to help agents identify relevant schema elements and compose valid operations in real time.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">This work is particularly empowering for the broader GraphQL community, as it shows that semantic and agentic techniques are not limited to teams with access to state-of-the-art models or large compute budgets. Instead, open source and resource-efficient approaches can still deliver practical and impactful results.</p>
<h2 id="next-steps" class="typography-h3 mt-10 text-neu-900">Next Steps</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The working group identified several areas of continued focus:</p>
<ol class="[:is(ol,ul)_&amp;]:_my-3 [&amp;:not(:first-child)]:_mt-6 _list-decimal ltr:_ml-6 rtl:_mr-6"><li class="_my-2">Refining the Semantic Introspection RFC and exploring reference implementations.</li>
<li class="_my-2">Iterating on the  directive specification and evaluating client and tooling integration.</li>
<li class="_my-2">Expanding and benchmarking open source embedding approaches to further lower the barrier to entry for agentic GraphQL tooling.</li>
</ol><p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Together, these efforts aim to make GraphQL an increasingly reliable and expressive interface for AI-driven systems, while preserving the strong typing, correctness, and clarity that GraphQL is known for.</p>
<h2 id="get-involved" class="typography-h3 mt-10 text-neu-900">Get Involved</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Grab a calendar invite at <a rel="noopener noreferrer" target="_blank" href="https://calendar.graphql.org" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">https://calendar.graphql.org</a><br />To join, open a PR against the agenda at <a rel="noopener noreferrer" target="_blank" href="https://github.com/graphql/ai-wg/tree/main/agendas" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">https://github.com/graphql/ai-wg/tree/main/agendas</a> and add yourself. If you have not already signed the free GraphQL specification membership agreement, the EasyCLA robot will guide you through the process once you open the PR.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Like all GraphQL working groups, this one is <strong>open to everyone</strong>. Whether you are building AI APIs, researching agentic tooling, or simply curious about the intersection of GraphQL and AI, you are welcome to participate. If you cannot attend live, you can always catch up via <a rel="noopener noreferrer" target="_blank" href="https://www.youtube.com/@GraphQLFoundation" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">the GraphQL Foundation Working Groups YouTube channel</a>.</p>
<p><a title="Seeking SMEs for GraphQL Conf 2026" class="gql-focus-visible typography-link flex max-w-[50%] items-center gap-2 border border-neu-200 pr-2 text-left text-base no-underline hover:bg-neu-50 hover:ring hover:ring-neu-100 dark:border-neu-100 dark:hover:bg-neu-50/50 dark:hover:ring-neu-50" href="https://graphql.org/blog/2026-01-16-seeking-graphql-subject-matter-experts/">Seeking SMEs for GraphQL Conf 2026</a></p>]]></description>
      <link>https://graphql.org/blog/2026-01-22-recap-jan-2026-ai-wg</link>
      <guid>https://graphql.org/blog/2026-01-22-recap-jan-2026-ai-wg</guid>
      <pubDate>Thu, 22 Jan 2026 01:00:00 +0100</pubDate>
    </item>
    <item>
      <title><![CDATA[GraphQL AI Working Group Recap: November 2025]]></title>
      <description><![CDATA[<p><a title="Blog" class="text-neu-700 dark:text-neu-400 min-w-6 last:text-neu-800 dark:last:text-neu-800 leading-none whitespace-pre gql-focus-visible ring-inset hover:text-neu-900 hover:underline underline-offset-2 shrink-0" href="https://graphql.org/blog/">Blog</a></p><p><a class="gql-focus-visible -m-1 flex p-1 ring-inset ring-neu-400 transition-opacity duration-75 hover:ring focus:!outline-offset-0 dark:ring-neu-50 [:has(&gt;:hover)&gt;&amp;:not(:hover)]:opacity-70" href="https://graphql.org/tags/blog/">blog</a></p>
<p>Kewei Qu<time datetime="2026-01-20T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">January 20, 2026</time></p>
<h2 id="overview" class="typography-h3 mt-10 text-neu-900">Overview</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The GraphQL AI Working Group met in November 2025 to continue its exploration of how large language model agents can safely and reliably interact with GraphQL APIs. Building on the October discussion, the session focused on techniques that help agents write valid GraphQL operations with minimal hallucination and execute those operations on behalf of users to unblock real world data access needs.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The discussion centered on two complementary approaches for guiding agents through large GraphQL schemas, followed by an update on early model benchmarking efforts.</p>
<h2 id="writing-valid-graphql-operations-with-llm-agents" class="typography-h3 mt-10 text-neu-900">Writing Valid GraphQL Operations with LLM Agents</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">A primary goal of the working group is to reduce incorrect field selection, invalid queries, and fabricated schema elements when LLMs generate GraphQL operations. Two approaches were discussed in depth.</p>
<h3 id="approach-one-similarity-search-over-the-schema" class="typography-body-lg mt-8 text-neu-900">Approach One: Similarity Search Over the Schema</h3>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The first approach uses semantic similarity search to help an agent navigate a GraphQL schema.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The agent begins at the root query and mutation fields of a given schema. From there, it performs a level based traversal, identifying relevant types and fields using similarity search against the user’s intent. The agent then recursively explores related types and fields, gradually constructing a valid GraphQL operation.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">This method allows the agent to stay grounded in the actual schema structure while dynamically discovering only the parts of the schema that are relevant to the task at hand. It is particularly useful for large schemas where providing the entire schema to the model is impractical.</p>
<h3 id="approach-two-checked-in-subschemas" class="typography-body-lg mt-8 text-neu-900">Approach Two: Checked In Subschemas</h3>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The second approach relies on checked in subschemas that are designed to fit comfortably within an LLM context window.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">In this model, the agent is initially provided with an entry point subschema that contains all accessible root fields for queries and mutations, along with commonly used types. Additional schema dependencies are declared using a directive such as , which instructs the agent to load and reference other subschemas as needed.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">This approach constrains the agent’s view of the schema while still allowing it to expand its knowledge in a controlled and explicit way. Detailed documentation and design discussion for this mechanism can be found in the working group issue tracker, specifically <a rel="noopener noreferrer" target="_blank" href="https://github.com/graphql/ai-wg/issues/54" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">issue number 54 in the GraphQL AI Working Group repository</a>.</p>
<h2 id="early-model-benchmarking-results" class="typography-h3 mt-10 text-neu-900">Early Model Benchmarking Results</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The working group also shared an update on early benchmarking efforts comparing how different LLMs perform at writing GraphQL operations.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">At this stage, the group does not yet have a fully reliable GraphQL AST based grading system, which means results cannot be evaluated with complete certainty. Despite this limitation, early experiments show promising trends.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Initial results indicate that Claude Sonnet 4.5 models are producing the strongest outcomes in terms of correctness and schema adherence, with GPT 5 models following closely behind. These findings are considered preliminary and are intended to guide future, more rigorous evaluation work rather than serve as definitive rankings.</p>
<h2 id="next-steps" class="typography-h3 mt-10 text-neu-900">Next Steps</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The working group identified several areas of focus for upcoming meetings and collaboration:</p>
<ol class="[:is(ol,ul)_&amp;]:_my-3 [&amp;:not(:first-child)]:_mt-6 _list-decimal ltr:_ml-6 rtl:_mr-6"><li class="_my-2">Developing reference implementations of LLM agents that apply schema similarity search and subschema based navigation.</li>
<li class="_my-2">Building a robust GraphQL AST based grading system to improve the accuracy of benchmarking.</li>
<li class="_my-2">Publishing shared benchmarks and example schemas to help the broader community evaluate and iterate on GraphQL aware AI agents.</li>
</ol><p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">These efforts aim to make GraphQL a reliable and first class interface for AI driven systems while preserving the strong typing and correctness guarantees that GraphQL provides.</p>
<h2 id="get-involved" class="typography-h3 mt-10 text-neu-900">Get Involved</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Grab a calendar invite at <a rel="noopener noreferrer" target="_blank" href="https://calendar.graphql.org" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">calendar.graphql.org</a>! To join, open a <a rel="noopener noreferrer" target="_blank" href="https://github.com/graphql/ai-wg/tree/main/agendas" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">PR against the agenda</a> and add yourself. If you’ve not already signed the free GraphQL specification membership agreement, the EasyCLA robot will guide you how to do so once you’ve opened the PR.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Like all GraphQL working groups, this one is <strong>open to everyone</strong>. Whether you’re building AI APIs, researching integrations, or just curious about the possibilities, you’re welcome to join. If you can’t make it, you can always catch up via the <a rel="noopener noreferrer" target="_blank" href="https://www.youtube.com/@GraphQLFoundation" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">GraphQL Foundation Working Groups YouTube channel</a>.</p>
<p><a title="Seeking SMEs for GraphQL Conf 2026" class="gql-focus-visible typography-link flex max-w-[50%] items-center gap-2 border border-neu-200 pr-2 text-left text-base no-underline hover:bg-neu-50 hover:ring hover:ring-neu-100 dark:border-neu-100 dark:hover:bg-neu-50/50 dark:hover:ring-neu-50" href="https://graphql.org/blog/2026-01-16-seeking-graphql-subject-matter-experts/">Seeking SMEs for GraphQL Conf 2026</a></p>]]></description>
      <link>https://graphql.org/blog/2026-01-20-recap-nov-2025-ai-wg</link>
      <guid>https://graphql.org/blog/2026-01-20-recap-nov-2025-ai-wg</guid>
      <pubDate>Tue, 20 Jan 2026 01:00:00 +0100</pubDate>
    </item>
    <item>
      <title><![CDATA[Recap First GraphQL AI Working Group Meeting]]></title>
      <description><![CDATA[<p><a title="Blog" class="text-neu-700 dark:text-neu-400 min-w-6 last:text-neu-800 dark:last:text-neu-800 leading-none gql-focus-visible ring-inset hover:text-neu-900 hover:underline underline-offset-2" href="https://graphql.org/blog/">Blog</a><a title="Recap First GraphQL AI Working Group Meeting" class="text-neu-700 dark:text-neu-400 min-w-6 last:text-neu-800 dark:last:text-neu-800 leading-none gql-focus-visible ring-inset hover:text-neu-900 hover:underline underline-offset-2" href="https://graphql.org/blog/2025-11-13-recap-oct-ai-wg/">Recap First GraphQL AI Working Group Meeting</a></p><p><a class="-m-1 flex p-1 ring-inset ring-neu-400 transition-opacity duration-75 hover:ring focus:!outline-offset-0 dark:ring-neu-50 [:has(&gt;:hover)&gt;&amp;:not(:hover)]:opacity-70" href="https://graphql.org/tags/blog/">blog</a></p>
<p>Kewei Qu<time datetime="2025-11-13T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">November 13, 2025</time></p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The GraphQL AI Working Group brings together community members who are exploring how GraphQL and AI can work together to shape the next generation of developer tools, APIs, and intelligent systems. We have contributors from many backgrounds, including long-term maintainers of GraphQL projects, technical leaders integrating GraphQL with AI systems, and newcomers eager to learn about open source collaboration. This combination of experience and curiosity made our first meeting both dynamic and inspiring.</p>
<h2 id="graphql-for-server-to-server-communication" class="typography-h3 mt-10 text-neu-900">GraphQL for Server to Server Communication</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The meeting began with a discussion on GraphQL for server to server communication, especially in the context of the Model Context Protocol (MCP). Participants examined how GraphQL, traditionally used for client to server interactions, is increasingly being adopted for backend systems where one service calls another through GraphQL.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">A number of important points surfaced. Some participants reflected on how earlier community guidance advised against this pattern, favoring federation for multi-service communication. Others described how in many systems, GraphQL resolvers have historically been thin wrappers around underlying endpoints that handle authentication close to the data source. When GraphQL is used between services, authentication becomes a more complex concern that may require new design patterns, such as identifying caller types or introducing middleware to handle access control and logging.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The group also discussed how GraphQL is not tied to any specific transport protocol, which makes it flexible compared to gRPC or REST. Several participants suggested that this versatility should be highlighted more clearly through educational content. As an action item, the group proposed a blog series on GraphQL for server to server communication to share practical examples and best practices.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The second major topic focused on how large language models author GraphQL operations. This includes both AI-assisted code generation, where models create queries to be committed to a codebase, and dynamic use cases where an LLM calls a GraphQL API through MCP.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Participants shared a wide range of experiences. Several observed that LLMs struggle with schema discovery and query construction, especially when schemas are large or deeply nested. Others noted that error feedback in GraphQL is written for human developers and could be made more structured to help models recover from mistakes automatically.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">There was also discussion on schema size and token limits. In production environments, schemas can easily exceed the model context window, leading to experiments with schema reduction and incremental schema loading. Some participants mentioned using semantic search to bridge the gap, allowing models to reason over documentation rather than raw schema definitions.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Another recurring theme was the lack of machine-readable hints in existing schemas. Adding descriptors or annotations could help LLMs better understand relationships between fields and choose the correct path when multiple options exist. The group recognized this as a promising direction for future exploration.</p>
<h2 id="next-steps-and-deliverables" class="typography-h3 mt-10 text-neu-900">Next Steps and Deliverables</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">To carry this work forward, the working group outlined several concrete goals:</p>
<ul class="[:is(ol,ul)_&amp;]:_my-3 [&amp;:not(:first-child)]:_mt-6 _list-disc ltr:_ml-6 rtl:_mr-6"><li class="_my-2">
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">A GraphQL writer agent reference implementation that demonstrates how an AI system can construct, validate, and refine operations.</p>
</li>
<li class="_my-2">
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">An MCP reference implementation or specification to illustrate GraphQL as a structured protocol for AI-driven systems.</p>
</li>
<li class="_my-2">
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">A benchmark study comparing how different models perform at generating valid GraphQL operations.</p>
</li>
<li class="_my-2">
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">A public benchmark schema and test suite for the community to experiment with. This will provide a shared playground and a foundation for developing a reference agent proficient in GraphQL.</p>
</li>
</ul><p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">These discussions mark an exciting beginning for the GraphQL AI Working Group. The intersection of structured data and intelligent systems offers many opportunities for collaboration and innovation.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">You can read the full meeting <a rel="noopener noreferrer" target="_blank" href="https://docs.google.com/document/d/1tJqUC9UI4EzY7U0sSqfsOuUDF6Q8LBcsSBwbgsE33sM/edit?tab=t.0" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">notes</a> and follow future updates on the <a rel="noopener noreferrer" target="_blank" href="https://github.com/graphql/ai-wg" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">GraphQL AI Working Group Github page</a></p>
<h2 id="get-involved" class="typography-h3 mt-10 text-neu-900">Get Involved</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7"><strong>Our next meeting is on November 27</strong> - grab the calendar invite at <a rel="noopener noreferrer" target="_blank" href="https://calendar.graphql.org" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">calendar.graphql.org</a>! To join, open <a rel="noopener noreferrer" target="_blank" href="https://github.com/graphql/ai-wg/tree/main/agendas" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">PR against the agenda</a> and add yourself, then follow the prompts to sign the EasyCLA.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Like all GraphQL working groups, this one is <strong>open to everyone</strong>. Whether you’re building AI APIs, researching integrations, or just curious about the possibilities, you’re welcome to join. If you can’t make it, you can always catch up via the <a rel="noopener noreferrer" target="_blank" href="https://www.youtube.com/@GraphQLFoundation" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">GraphQL Foundation Working Groups YouTube channel</a>.</p>]]></description>
      <link>https://graphql.org/blog/2025-11-13-recap-oct-ai-wg</link>
      <guid>https://graphql.org/blog/2025-11-13-recap-oct-ai-wg</guid>
      <pubDate>Thu, 13 Nov 2025 01:00:00 +0100</pubDate>
    </item>
    <item>
      <title><![CDATA[GraphQL Locals 2025: Increasing Support]]></title>
      <description><![CDATA[<main class="w-full min-w-0 max-w-6xl px-6 pt-4 md:px-12"><p>GraphQL Locals 2025: Increasing Support</p>
<p><a class="-m-1 flex p-1 ring-inset ring-neu-400 transition-opacity duration-75 hover:ring focus:!outline-offset-0 dark:ring-neu-50 [:has(&gt;:hover)&gt;&amp;:not(:hover)]:opacity-70" href="https://graphql.org/tags/announcements/">announcements</a><a class="-m-1 flex p-1 ring-inset ring-neu-400 transition-opacity duration-75 hover:ring focus:!outline-offset-0 dark:ring-neu-50 [:has(&gt;:hover)&gt;&amp;:not(:hover)]:opacity-70" href="https://graphql.org/tags/foundation/">foundation</a></p>
<p>Benjie Gillam<time datetime="2025-10-16T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">October 16, 2025</time></p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Since launching the <strong>GraphQL Local Initiative</strong> last year, communities around the world have been gathering to share knowledge, collaborate, and strengthen their local GraphQL ecosystems. Over the past year, we’ve seen:</p>
<ul class="[:is(ol,ul)_&amp;]:_my-3 [&amp;:not(:first-child)]:_mt-6 _list-disc ltr:_ml-6 rtl:_mr-6"><li class="_my-2"><strong>GraphQL London</strong> hosting three or four events a year — with another due in November</li>
<li class="_my-2"><strong>GraphQL Sydney</strong> diving into hot topics like GraphQL nullability</li>
<li class="_my-2"><strong>GraphQL Berlin</strong> meeting the day after GraphQLConf 2025 concluded in Amsterdam, requiring quick travel for Stephen and Michael!</li>
<li class="_my-2"><strong>GraphQL Hyderabad</strong> celebrating a fantastic first meetup</li>
<li class="_my-2"><strong>GraphQL Austin</strong> forming over ramen to plan a new series of events</li>
<li class="_my-2"><strong>GraphQL Paris</strong> and <strong>GraphQL Oslo</strong> preparing to meet later this month</li>
</ul><p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">We also have local organizers working to bring people together in <strong>Białystok</strong>, <strong>Philadelphia</strong>, <strong>Chennai</strong>, <strong>Belgium</strong>, and more locations!</p>
<h2 id="weve-heard-you" class="typography-h3 mt-10 text-neu-900">We’ve heard you</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Feedback from organizers and attendees has been clear, so we’re launching our 2025 refresh of the Locals program:</p>
<ul class="[:is(ol,ul)_&amp;]:_my-3 [&amp;:not(:first-child)]:_mt-6 _list-disc ltr:_ml-6 rtl:_mr-6"><li class="_my-2"><strong>Simpler applications:</strong> Videos are no longer required — photos can substitute where needed</li>
<li class="_my-2"><strong>More flexible events:</strong> Locals can now host more than just talks — discussions, workshops, hackathons, Q&amp;As, live recordings, and more are now eligible for support</li>
<li class="_my-2"><strong>Increased sponsorship:</strong> Support per event has doubled, from <strong>USD $200</strong> to <strong>USD $400</strong>, to help with food, drinks, and venue costs</li>
<li class="_my-2"><strong>Clearer TSC oversight:</strong> Independent meetups often die when the organizer steps down; by appointing a GraphQL TSC member as an admin, we can help ensure the continuity of the community over the long term</li>
</ul><p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">These updates come directly from your feedback. You’re building something amazing, and we want to support you!</p>
<h2 id="get-involved" class="typography-h3 mt-10 text-neu-900">Get involved</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Find your nearest group in <a class="typography-link text-neu-900 underline-offset-2" href="https://graphql.org/community/events/">GraphQL Events &amp; Meetups</a>, or get help setting one up via the <a class="typography-link text-neu-900 underline-offset-2" href="https://graphql.org/community/foundation/local-initiative/">GraphQL Local Initiative</a>.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Together, we’re building a global network of local communities — sharing ideas, growing connections, and keeping GraphQL vibrant everywhere.</p>
</main>]]></description>
      <link>https://graphql.org/blog/2025-10-16-graphql-local-initiative-update</link>
      <guid>https://graphql.org/blog/2025-10-16-graphql-local-initiative-update</guid>
      <pubDate>Thu, 16 Oct 2025 02:00:00 +0200</pubDate>
    </item>
    <item>
      <title><![CDATA[Recap First GraphQL AI Working Group Meeting]]></title>
      <description><![CDATA[<p><a title="Blog" class="text-neu-700 dark:text-neu-400 min-w-6 last:text-neu-800 dark:last:text-neu-800 leading-none gql-focus-visible ring-inset hover:text-neu-900 hover:underline underline-offset-2" href="https://graphql.org/blog/">Blog</a><a title="Recap First GraphQL AI Working Group Meeting" class="text-neu-700 dark:text-neu-400 min-w-6 last:text-neu-800 dark:last:text-neu-800 leading-none gql-focus-visible ring-inset hover:text-neu-900 hover:underline underline-offset-2" href="https://graphql.org/blog/2025-10-30-recap-oct-ai-wg/">Recap First GraphQL AI Working Group Meeting</a></p><p><a class="-m-1 flex p-1 ring-inset ring-neu-400 transition-opacity duration-75 hover:ring focus:!outline-offset-0 dark:ring-neu-50 [:has(&gt;:hover)&gt;&amp;:not(:hover)]:opacity-70" href="https://graphql.org/tags/blog/">blog</a></p>
<p>Kewei Qu<time datetime="2025-10-14T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">October 14, 2025</time></p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The GraphQL AI Working Group brings together community members who are exploring how GraphQL and AI can work together to shape the next generation of developer tools, APIs, and intelligent systems. We have contributors from many backgrounds, including long-term maintainers of GraphQL projects, technical leaders integrating GraphQL with AI systems, and newcomers eager to learn about open source collaboration. This combination of experience and curiosity made our first meeting both dynamic and inspiring.</p>
<h2 id="graphql-for-server-to-server-communication" class="typography-h3 mt-10 text-neu-900">GraphQL for Server to Server Communication</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The meeting began with a discussion on GraphQL for server to server communication, especially in the context of the Model Context Protocol (MCP). Participants examined how GraphQL, traditionally used for client to server interactions, is increasingly being adopted for backend systems where one service calls another through GraphQL.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">A number of important points surfaced. Some participants reflected on how earlier community guidance advised against this pattern, favoring federation for multi-service communication. Others described how in many systems, GraphQL resolvers have historically been thin wrappers around underlying endpoints that handle authentication close to the data source. When GraphQL is used between services, authentication becomes a more complex concern that may require new design patterns, such as identifying caller types or introducing middleware to handle access control and logging.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The group also discussed how GraphQL is not tied to any specific transport protocol, which makes it flexible compared to gRPC or REST. Several participants suggested that this versatility should be highlighted more clearly through educational content. As an action item, the group proposed a blog series on GraphQL for server to server communication to share practical examples and best practices.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The second major topic focused on how large language models author GraphQL operations. This includes both AI-assisted code generation, where models create queries to be committed to a codebase, and dynamic use cases where an LLM calls a GraphQL API through MCP.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Participants shared a wide range of experiences. Several observed that LLMs struggle with schema discovery and query construction, especially when schemas are large or deeply nested. Others noted that error feedback in GraphQL is written for human developers and could be made more structured to help models recover from mistakes automatically.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">There was also discussion on schema size and token limits. In production environments, schemas can easily exceed the model context window, leading to experiments with schema reduction and incremental schema loading. Some participants mentioned using semantic search to bridge the gap, allowing models to reason over documentation rather than raw schema definitions.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Another recurring theme was the lack of machine-readable hints in existing schemas. Adding descriptors or annotations could help LLMs better understand relationships between fields and choose the correct path when multiple options exist. The group recognized this as a promising direction for future exploration.</p>
<h2 id="next-steps-and-deliverables" class="typography-h3 mt-10 text-neu-900">Next Steps and Deliverables</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">To carry this work forward, the working group outlined several concrete goals:</p>
<ul class="[:is(ol,ul)_&amp;]:_my-3 [&amp;:not(:first-child)]:_mt-6 _list-disc ltr:_ml-6 rtl:_mr-6"><li class="_my-2">
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">A GraphQL writer agent reference implementation that demonstrates how an AI system can construct, validate, and refine operations.</p>
</li>
<li class="_my-2">
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">An MCP reference implementation or specification to illustrate GraphQL as a structured protocol for AI-driven systems.</p>
</li>
<li class="_my-2">
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">A benchmark study comparing how different models perform at generating valid GraphQL operations.</p>
</li>
<li class="_my-2">
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">A public benchmark schema and test suite for the community to experiment with. This will provide a shared playground and a foundation for developing a reference agent proficient in GraphQL.</p>
</li>
</ul><p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">These discussions mark an exciting beginning for the GraphQL AI Working Group. The intersection of structured data and intelligent systems offers many opportunities for collaboration and innovation.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">You can read the full meeting <a rel="noopener noreferrer" target="_blank" href="https://docs.google.com/document/d/1tJqUC9UI4EzY7U0sSqfsOuUDF6Q8LBcsSBwbgsE33sM/edit?tab=t.0" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">notes</a> and follow future updates on the <a rel="noopener noreferrer" target="_blank" href="https://github.com/graphql/ai-wg" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">GraphQL AI Working Group Github page</a></p>
<h2 id="get-involved" class="typography-h3 mt-10 text-neu-900">Get Involved</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7"><strong>Our next meeting is on November 27</strong> - grab the calendar invite at <a rel="noopener noreferrer" target="_blank" href="https://calendar.graphql.org" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">calendar.graphql.org</a>! To join, open <a rel="noopener noreferrer" target="_blank" href="https://github.com/graphql/ai-wg/tree/main/agendas" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">PR against the agenda</a> and add yourself, then follow the prompts to sign the EasyCLA.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Like all GraphQL working groups, this one is <strong>open to everyone</strong>. Whether you’re building AI APIs, researching integrations, or just curious about the possibilities, you’re welcome to join. If you can’t make it, you can always catch up via the <a rel="noopener noreferrer" target="_blank" href="https://www.youtube.com/@GraphQLFoundation" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">GraphQL Foundation Working Groups YouTube channel</a>.</p>]]></description>
      <link>https://graphql.org/blog/2025-10-30-recap-oct-ai-wg</link>
      <guid>https://graphql.org/blog/2025-10-30-recap-oct-ai-wg</guid>
      <pubDate>Tue, 14 Oct 2025 02:00:00 +0200</pubDate>
    </item>
    <item>
      <title><![CDATA[Announcing GraphQL AI Working Group]]></title>
      <description><![CDATA[<main class="w-full min-w-0 max-w-6xl px-6 pt-4 md:px-12"><p>Announcing GraphQL AI Working Group</p>
<p><a class="-m-1 flex p-1 ring-inset ring-neu-400 transition-opacity duration-75 hover:ring focus:!outline-offset-0 dark:ring-neu-50 [:has(&gt;:hover)&gt;&amp;:not(:hover)]:opacity-70" href="https://graphql.org/tags/announcements/">announcements</a></p>
<p>Jeff Auriemma and Kewei Qu<time datetime="2025-10-14T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">October 14, 2025</time></p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">We’re excited to share the launch of a new <strong>AI Working Group</strong> to explore how GraphQL can best support the growing needs of generative artificial intelligence and machine learning.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">As AI adoption accelerates, developers are using GraphQL to power everything from MCP tools to vector search (Retrieval-Augmented Generation) and embeddings to streaming model responses. The AI Working Group will bring the community together to share use cases and challenges in AI + GraphQL and document common practices for using GraphQL with AI tooling.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">We anticipate that the group will propose spec improvements and extensions to benefit both human and AI consumers, and raise opportunities to coordinate across organizations to support interoperability and compatibility.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7"><strong>Our first meeting is coming up on October 23</strong> - grab the calendar invite at <a class="typography-link text-neu-900 underline-offset-2" href="https://graphql.org/blog/calendar.graphql.org">calendar.graphql.org</a>! To join, open <a rel="noopener noreferrer" target="_blank" href="https://github.com/graphql/ai-wg/tree/main/agendas" class="typography-link text-neu-900 underline-offset-2">PR against the agenda</a> and add yourself, then follow the prompts to sign the EasyCLA.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Like all GraphQL working groups, this one is <strong>open to everyone</strong>. Whether you’re building AI APIs, researching integrations, or just curious about the possibilities, you’re welcome to join. If you can’t make it, you can always catch up via the <a rel="noopener noreferrer" target="_blank" href="https://www.youtube.com/@GraphQLFoundation" class="typography-link text-neu-900 underline-offset-2">GraphQL Foundation Working Groups YouTube channel</a>.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7"> Get involved:</p>
<ul class="[:is(ol,ul)_&amp;]:_my-3 [&amp;:not(:first-child)]:_mt-6 _list-disc ltr:_ml-6 rtl:_mr-6"><li class="_my-2">Follow updates on the <a rel="noopener noreferrer" target="_blank" href="https://github.com/graphql" class="typography-link text-neu-900 underline-offset-2">GraphQL GitHub</a></li>
<li class="_my-2"><a rel="noopener noreferrer" target="_blank" href="https://calendar.graphql.org" class="typography-link text-neu-900 underline-offset-2">Subscribe</a> for community calendar invites</li>
<li class="_my-2">Bring your ideas and feedback to help shape the group’s work</li>
</ul><p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">AI is transforming software development, and GraphQL is uniquely suited to make AI systems more accessible and connected. We can’t wait to see what we’ll build together.</p>
</main>]]></description>
      <link>https://graphql.org/blog/2025-10-14-announcing-ai-wg</link>
      <guid>https://graphql.org/blog/2025-10-14-announcing-ai-wg</guid>
      <pubDate>Tue, 14 Oct 2025 02:00:00 +0200</pubDate>
    </item>
    <item>
      <title><![CDATA[Announcing the September 2025 Edition of the GraphQL Specification]]></title>
      <description><![CDATA[<p>Announcing the September 2025 Edition of the GraphQL Specification</p><p><time datetime="2025-09-08T00:00:00.000Z">September 8, 2025</time> by Lee Byron</p>
<p><a class="rounded bg-zinc-200 px-2.5 py-1 font-bold capitalize transition-colors hover:!bg-primary hover:text-white hover:!no-underline dark:bg-zinc-700 dark:hover:text-zinc-900" href="https://graphql.org/tags/spec/">spec</a></p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">It’s here: the <a rel="noopener noreferrer" target="_blank" href="https://spec.graphql.org/September2025/" class="typography-link text-neu-900 underline-offset-2">September 2025 edition of the GraphQL specification</a>!</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">This is the first edition of the specification since <a rel="noopener noreferrer" target="_blank" href="https://spec.graphql.org/October2021/" class="typography-link text-neu-900 underline-offset-2">October 2021</a>, 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.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">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:</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7"><strong>Stability first</strong>: 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.</p>
<p><strong>Expressiveness for API consumers</strong>: 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.</p>
<h2 id="why-it-matters" class="typography-h3 mt-10 text-neu-900"><strong>Why It Matters</strong></h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Several updates in this edition make GraphQL an even better foundation for AI assistants, codegen tools, and autonomous agents:</p>
<ul class="[:is(ol,ul)_&amp;]:_my-3 [&amp;:not(:first-child)]:_mt-6 _list-disc ltr:_ml-6 rtl:_mr-6"><li class="_my-2">Descriptions on executable documents give LLMs richer context for intent understanding and safer refactoring.</li>
<li class="_my-2">Schema Coordinates provide a precise, both human- and machine-readable way to reference fields and types, improving traceability, evals, and automated PR feedback.</li>
<li class="_my-2">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.</li>
<li class="_my-2">The clarified execution/error terminology and request  make responses more predictable for deterministic parsers and toolchains.</li>
</ul>
<ul class="[:is(ol,ul)_&amp;]:_my-3 [&amp;:not(:first-child)]:_mt-6 _list-disc ltr:_ml-6 rtl:_mr-6"><li class="_my-2">
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7"><strong>OneOf Input Objects (a.k.a. input unions)</strong><br />A 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 <a rel="noopener noreferrer" target="_blank" href="https://graphql.org/blog/2025-09-04-multioption-inputs-with-oneof/" class="typography-link text-neu-900 underline-offset-2">blog post</a>. <a rel="noopener noreferrer" target="_blank" href="https://github.com/graphql/graphql-spec/pull/825" class="typography-link text-neu-900 underline-offset-2">RFC #825<br /></a></p>
</li>
<li class="_my-2">
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7"><strong>Schema Coordinates</strong><br />A standardized way to refer to parts of a schema, paving the way for better tooling, error reporting, and developer experience. <a rel="noopener noreferrer" target="_blank" href="https://github.com/graphql/graphql-spec/pull/794" class="typography-link text-neu-900 underline-offset-2">RFC #794<br /></a></p>
</li>
<li class="_my-2">
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7"><strong>Descriptions on Documents</strong><br />Improved support for documenting queries and operations — helpful for humans and increasingly relevant for AI-powered tools. <a rel="noopener noreferrer" target="_blank" href="https://github.com/graphql/graphql-spec/pull/1170" class="typography-link text-neu-900 underline-offset-2">RFC #1170<br /></a></p>
</li>
<li class="_my-2">
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7"><strong>Expanded Deprecation Support</strong><br />Deprecation is now more broadly supported across schema elements, making it easier to evolve APIs without breaking clients. [RFCs <a rel="noopener noreferrer" target="_blank" href="https://github.com/graphql/graphql-spec/pull/805" class="typography-link text-neu-900 underline-offset-2">#805</a>, <a rel="noopener noreferrer" target="_blank" href="https://github.com/graphql/graphql-spec/pull/1040" class="typography-link text-neu-900 underline-offset-2">#1040</a>, <a rel="noopener noreferrer" target="_blank" href="https://github.com/graphql/graphql-spec/pull/1053" class="typography-link text-neu-900 underline-offset-2">#1053</a>, <a rel="noopener noreferrer" target="_blank" href="https://github.com/graphql/graphql-spec/pull/1142" class="typography-link text-neu-900 underline-offset-2">#1142</a>]</p>
</li>
<li class="_my-2">
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7"><strong>Full Unicode Support</strong><br />**The language grammar now supports the entire Unicode range, improving internationalization and accessibility. <a rel="noopener noreferrer" target="_blank" href="https://github.com/graphql/graphql-spec/pull/849" class="typography-link text-neu-900 underline-offset-2">RFC #849<br /></a></p>
</li>
<li class="_my-2">
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7"><strong>Editorial Improvements</strong><br />The spec is clearer, more consistent, and easier to contribute to. Ambiguities have been reduced, and the style guide has been modernized.</p>
</li>
</ul><h2 id="thank-you-contributors" class="typography-h3 mt-10 text-neu-900"><strong>Thank you, contributors!</strong></h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">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.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Special thanks to the many reviewers, implementers, and champions who shaped this release.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">You can explore the full list of contributors in the <a rel="noopener noreferrer" target="_blank" href="https://github.com/graphql/graphql-spec/blob/main/changelogs/September2025.md" class="typography-link text-neu-900 underline-offset-2">changelog</a>.</p>
<h2 id="get-involved" class="typography-h3 mt-10 text-neu-900"><strong>Get involved</strong></h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">GraphQL is a living standard. If you’re building APIs, tooling, or clients, your voice matters in shaping its future. Anyone can join <a rel="noopener noreferrer" target="_blank" href="https://github.com/graphql/graphql-wg" class="typography-link text-neu-900 underline-offset-2">working group meetings</a> and contribute proposals, reviews, or feedback.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">📖 <strong>Read the full spec:</strong> <a rel="noopener noreferrer" target="_blank" href="https://spec.graphql.org/September2025/" class="typography-link text-neu-900 underline-offset-2">GraphQL September 2025 Specification<br /></a> 🔎 <strong>Review all changes:</strong> <a rel="noopener noreferrer" target="_blank" href="https://github.com/graphql/graphql-spec/compare/October2021...f29fbcd2ab5af763fce7ad62896eb62465a669b3" class="typography-link text-neu-900 underline-offset-2">Full changelog &amp; diff<br /></a> 🤝 <strong>Contribute:</strong> <a rel="noopener noreferrer" target="_blank" href="https://github.com/graphql/graphql-spec/blob/main/CONTRIBUTING.md" class="typography-link text-neu-900 underline-offset-2">How to get involved</a></p>]]></description>
      <link>https://graphql.org/blog/2025-09-08-september-edition</link>
      <guid>https://graphql.org/blog/2025-09-08-september-edition</guid>
      <pubDate>Mon, 08 Sep 2025 02:00:00 +0200</pubDate>
    </item>
    <item>
      <title><![CDATA[Introducing the New GraphQL.org: A Decade of Evolution, Redesigned]]></title>
      <description><![CDATA[<p>Introducing the New GraphQL.org: A Decade of Evolution, Redesigned</p><p><time datetime="2025-09-08T00:00:00.000Z">September 8, 2025</time> by Saihajpreet Singh &amp; Piotr Monwid-Olechnowicz</p>
<p><a class="rounded bg-zinc-200 px-2.5 py-1 font-bold capitalize transition-colors hover:!bg-primary hover:text-white hover:!no-underline dark:bg-zinc-700 dark:hover:text-zinc-900" href="https://graphql.org/tags/announcement/">announcement</a></p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">After ten years of continuous growth and evolution, we’re excited to announce the complete redesign of GraphQL.org!</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">What started as a simple query language has transformed into the backbone of modern API development at companies like Meta, Netflix, GitHub, and thousands of others worldwide.</p>
<h2 id="why-now" class="typography-h3 mt-10 text-neu-900">Why Now?</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">GraphQL has come a long way since its inception. As the ecosystem has matured and adoption has scaled globally, our website needed to evolve too. The previous design served us well as we expanded, but it was time for a refresh that truly reflects where GraphQL stands today and where it’s heading.</p>
<h2 id="whats-new" class="typography-h3 mt-10 text-neu-900">What’s New</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Our redesigned homepage now clearly communicates not just what GraphQL is, but why it matters for modern development:</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7"><strong>Clear Value Propositions:</strong> We’ve highlighted GraphQL’s three core benefits: delivering the best user experience, ensuring security and stability, and enabling efficient distributed development.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7"><strong>Proven at Scale:</strong> See how leading companies leverage GraphQL in production environments.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7"><strong>Use Case Guidance:</strong> Whether you’re building a mobile app, managing microservices, or developing AI-powered applications, discover if GraphQL is right for your project.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7"><strong>Enhanced Resources:</strong> From the five pillars of GraphQL to data colocation patterns, we’ve organized our content to help you succeed at every stage of your GraphQL journey.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7"><strong>Community Focus:</strong> Stronger connections to our vibrant community resources and contribution opportunities.</p>
<h2 id="behind-the-scenes-technical-craftsmanship" class="typography-h3 mt-10 text-neu-900">Behind the Scenes: Technical Craftsmanship</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Beyond the visual refresh, this redesign showcases some interesting technical details that our community might appreciate:</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7"><strong>Creative Problem-Solving:</strong> That smooth rotation animation you’ll see? It’s not just for aesthetics. <a rel="noopener noreferrer" target="_blank" href="https://stackoverflow.com/questions/74085350/backdrop-filter-doesnt-apply-if-parents-opacity-is-less-than-1" class="typography-link text-neu-900 underline-offset-2">It’s actually the only way to animate the element without breaking the highlight effects</a> from the underlying wire graphics. Sometimes constraints lead to the most elegant solutions.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7"><strong>Developer Experience:</strong> We discovered it’s faster to iterate on syntax highlighting themes in VSCode than in our Nextra-shiki setup. This led us to accidentally <a rel="noopener noreferrer" target="_blank" href="https://github.com/hasparus/k-colorable" class="typography-link text-neu-900 underline-offset-2">create an entirely new custom syntax highlighting theme</a> as a side effect of the redesign process.</p>
<h2 id="explore-the-new-experience" class="typography-h3 mt-10 text-neu-900">Explore the New Experience</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The redesigned GraphQL.org better reflects the maturity and sophistication of both the specification and its ecosystem. We’ve maintained our commitment to clear documentation while adding the context and guidance that today’s developers need.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7"><a rel="noopener noreferrer" target="_blank" href="https://graphql.org/" class="typography-link text-neu-900 underline-offset-2">Visit the new GraphQL.org →</a></p>
<h2 id="get-involved" class="typography-h3 mt-10 text-neu-900">Get Involved</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">This redesign represents input from our entire community. As always, we welcome your feedback and contributions. Join the conversation in our <a rel="noopener noreferrer" target="_blank" href="https://github.com/graphql/community-wg" class="typography-link text-neu-900 underline-offset-2">Community Working Group</a> and help shape the future of GraphQL.</p>]]></description>
      <link>https://graphql.org/blog/2025-09-08-announcing-graphqldotorg</link>
      <guid>https://graphql.org/blog/2025-09-08-announcing-graphqldotorg</guid>
      <pubDate>Mon, 08 Sep 2025 02:00:00 +0200</pubDate>
    </item>
    <item>
      <title><![CDATA[GraphQL: Supercharging AI]]></title>
      <description><![CDATA[<p><time datetime="2025-07-03T00:00:00.000Z">July 3, 2025</time> by Stephen Spalding</p><p><a class="rounded bg-zinc-200 px-2.5 py-1 font-bold capitalize transition-colors hover:!bg-primary hover:text-white hover:!no-underline dark:bg-zinc-700 dark:hover:text-zinc-900" href="https://graphql.org/tags/blog/">blog</a></p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">In 2015, when GraphQL was first introduced, it solved a very human problem: helping developers query exactly the data they needed, no more and no less. It introduced a contract between client and server that was typed, introspectable, and composable, quickly reshaping the way we think about APIs.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Nearly a decade later, that same contract is proving essential for a very different kind of client: <strong>intelligent systems</strong>.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">As large language models (LLMs) and agentic software grow more capable, a new challenge has emerged. These systems don’t just need access to raw data; they need <strong>structured context</strong> they can understand, explore, and act upon. And once again, GraphQL is rising to meet that need.</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400"><strong>Intelligent Systems Need Structured Interfaces</strong></h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">LLMs and agentic architectures are powerful, but they’re inherently limited by the quality and structure of the context they receive. Whether summarizing customer data, retrieving internal documentation, or executing multi-step plans, they rely on <strong>clear, machine-navigable interfaces</strong> to understand their environment.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Traditional APIs like REST or RPC weren’t built for that. They expose data, but not semantics. They support integration, but not discovery.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">GraphQL offers a better fit:</p>
<ul class="[:is(ol,ul)_&amp;]:_my-3 [&amp;:not(:first-child)]:_mt-6 _list-disc ltr:_ml-6 rtl:_mr-6"><li class="_my-2"><strong>A self-describing schema</strong>, so agents can explore what’s possible</li>
<li class="_my-2"><strong>Strong typing</strong>, so models can reason about inputs and outputs</li>
<li class="_my-2"><strong>Composability</strong>, enabling flexible, targeted access to data and functionality</li>
</ul><p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">These aren’t just developer conveniences. They are enablers of intelligent interaction.</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400"><strong>MCP ❤️ GraphQL</strong></h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The <strong>Model Context Protocol (MCP)</strong> is a new standard for giving LLMs and agents access to structured, machine-readable context. It defines how tools and APIs describe their capabilities in a consistent way, so models can plan, query, and act more intelligently.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7"><strong>GraphQL is a natural fit.</strong> With strong typing, clear semantics, and introspectable schemas, GraphQL addresses many of MCP’s core challenges out of the box. By making APIs self-describing and composable, GraphQL transforms static interfaces into dynamic environments that intelligent systems can understand and use effectively.</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400"><strong>The Evolution of APIs in the AI Era</strong></h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">This reflects a broader shift from human-centered APIs to <strong>machine-navigable protocols</strong>. In this transition, GraphQL plays a unique role:</p>
<ul class="[:is(ol,ul)_&amp;]:_my-3 [&amp;:not(:first-child)]:_mt-6 _list-disc ltr:_ml-6 rtl:_mr-6"><li class="_my-2">It provides a shared contract between developers and intelligent systems</li>
<li class="_my-2">It makes capabilities explicit, enabling dynamic interactions without hardcoding</li>
<li class="_my-2">It supports tooling, validation, and composability at scale</li>
</ul><p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">These strengths, once used to streamline frontend and backend development, are now foundational for AI-native systems that must reason about the world in real time.</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400"><strong>From Developer Tools to Intelligent Systems</strong></h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">GraphQL’s original mission was to help developers “describe the data they want, and get exactly that.” Today, the “developers” might be autonomous agents, orchestration layers, or LLMs writing queries on the fly.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">We’re entering an era where APIs aren’t just for connecting systems; they’re for teaching models how to interact with them. That means APIs must be <strong>introspectable, type-safe, and composable</strong>—the very things GraphQL has offered from the beginning.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">In the age of AI, <strong>structure matters</strong>. And GraphQL delivers <strong>structure</strong>, <strong>composability</strong>, and <strong>introspection</strong> like nothing else. If you’re building AI-native apps, it’s time to stop thinking of GraphQL as just a frontend tool—and start seeing it as <strong>the API protocol for intelligent systems</strong>.</p>]]></description>
      <link>https://graphql.org/blog/2025-07-03-graphql-supercharging-ai</link>
      <guid>https://graphql.org/blog/2025-07-03-graphql-supercharging-ai</guid>
      <pubDate>Thu, 03 Jul 2025 02:00:00 +0200</pubDate>
    </item>
    <item>
      <title><![CDATA[📣 May 2025 GraphQL Foundation Board Meeting Recap]]></title>
      <description><![CDATA[<p><time datetime="2025-06-27T00:00:00.000Z">June 27, 2025</time> by GraphQL Governing Board</p><p><a class="rounded bg-zinc-200 px-2.5 py-1 font-bold capitalize transition-colors hover:!bg-primary hover:text-white hover:!no-underline dark:bg-zinc-700 dark:hover:text-zinc-900" href="https://graphql.org/tags/blog/">blog</a></p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The GraphQL Foundation Governing Board met for its monthly board meeting on May 15 to share updates across community, technical, and operational committee initiatives. Here’s a quick look at what was covered:</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">🌐 Community &amp; Website Updates</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Work continues on the redesign of <a href="https://graphql.org" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">graphql.org</a>, led by the Community Working Group. The new site will feature refreshed messaging, community-focused sections, and improved support for case studies. Community input is welcome via GitHub and monthly working group meetings. It’s looking great!</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">📅 GraphQL Conf 2025 Planning</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Preparations for GraphQLConf 2025 are fully underway! The Call for Proposals has closed, and submissions are under review with support from 16 subject matter experts from the community and the TSC. Sponsorships are coming in from members like <strong>Apollo</strong>, <strong>Grafbase</strong>, and <strong>Meta</strong>, and attendance targets are on track. Two new local GraphQL meetup groups have launched in India, and discussions about a potential ambassador program are in development.</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">💸 Budget &amp; Strategy</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The Foundation is considering shifting its fiscal planning to align with the conference, which would simplify planning and help center GraphQLConf as a key milestone each year. Grant-funded projects are progressing well, including improvements to GraphiQL and documentation.</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">🔧 Technical Progress</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The Technical Steering Committee (TSC) shared updates on several fronts:</p>
<ul class="[:is(ol,ul)_&amp;]:_my-3 [&amp;:not(:first-child)]:_mt-6 _list-disc ltr:_ml-6 rtl:_mr-6"><li class="_my-2">A release candidate for the new <strong>GraphQL over HTTP specification</strong> is nearly ready.</li>
<li class="_my-2">Key proposals like <strong>Input Unions</strong> and updated <strong>deprecation rules</strong> have been accepted into the spec.</li>
<li class="_my-2">Legacy versions of <strong>graphql-js</strong> have been formally deprecated, with a new versioning policy now in place.</li>
<li class="_my-2">A new <strong>OpenTelemetry Working Group</strong> has launched to improve observability support for GraphQL.</li>
</ul><h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">📣 Get Involved</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The Foundation is looking for help organizing the conference schedule, gathering community case studies, and contributing to ongoing spec work. If you’re interested in supporting the ecosystem, now’s a great time to jump in!</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Stay tuned for more updates at <a href="https://graphql.org" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">graphql.org</a> and follow us for the latest on GraphQLConf 2025.</p>]]></description>
      <link>https://graphql.org/blog/2025-06-27-governing-board-recap</link>
      <guid>https://graphql.org/blog/2025-06-27-governing-board-recap</guid>
      <pubDate>Fri, 27 Jun 2025 02:00:00 +0200</pubDate>
    </item>
    <item>
      <title><![CDATA[GraphQL.js Docs Updates, April - May 2025]]></title>
      <description><![CDATA[<p><time datetime="2025-06-26T00:00:00.000Z">June 26, 2025</time> by Sarah Sanders</p><p><a class="rounded bg-zinc-200 px-2.5 py-1 font-bold capitalize transition-colors hover:!bg-primary hover:text-white hover:!no-underline dark:bg-zinc-700 dark:hover:text-zinc-900" href="https://graphql.org/tags/blog/">blog</a></p>
<blockquote class="[&amp;:not(:first-child)]:_mt-6 _border-gray-300 _italic _text-gray-700 dark:_border-gray-700 dark:_text-gray-400 ltr:_border-l-2 ltr:_pl-6 rtl:_border-r-2 rtl:_pr-6">
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The GraphQL Foundation offers <a href="https://graphql.org/foundation/community-grant/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Community Grants</a> to help incentivize key technical and community initiatives. As part of the grant, applicants commit to write a blog post report describing their work and its impact on the GraphQL community. The following report was written by grant recipient Sarah Sanders in June 2025, summarizing the documentation updates she contributed to the GraphQL.js reference guides during her project.</p>
</blockquote>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">About the project</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The <a href="https://github.com/graphql/graphql-js" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphQL.js</a> library is the reference implementation of the GraphQL specification in JavaScript, and it’s widely used both directly and indirectly by many GraphQL tools and servers. While the implementation itself is robust and actively maintained, the supporting documentation had room to grow—especially when it came to helping developers understand <em>how</em> GraphQL.js reflects the spec and <em>how</em> to use its APIs in real projects.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">With that in mind, I applied for a GraphQL Foundation Community Grant to work on improving the GraphQL.js documentation. My goal was to make the guides more approachable for newcomers, more accurate for advanced users, and more aligned with the specification for everyone.</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">What I worked on</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">This project involved a full audit of the existing GraphQL.js guides, followed by targeted updates to improve clarity, structure, and completeness. I focused on areas that were either under-documented or potentially confusing, and worked to ensure the guides explained not just <em>what</em> GraphQL.js does, but <em>why</em> and <em>how</em> it does it.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Some key improvements include:</p>
<ul class="[:is(ol,ul)_&amp;]:_my-3 [&amp;:not(:first-child)]:_mt-6 _list-disc ltr:_ml-6 rtl:_mr-6"><li class="_my-2">Clearer explanations of schema construction and how types are defined in GraphQL.js</li>
<li class="_my-2">Improved guidance on how execution and validation flow maps to the spec</li>
<li class="_my-2">Expanded sections on custom scalars and other advanced patterns</li>
<li class="_my-2">New guides on testing and production-readiness</li>
</ul><p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">All updates are live on the <a href="https://www.graphql-js.org/docs/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphQL.js docs site</a>.</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">What’s next</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">I hope these updates help more developers learn and use GraphQL.js effectively, and serve as a foundation for future improvements to the reference documentation. There’s still more we can do and I’d love to see others in the community build on this work.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">This project was a rewarding chance to contribute meaningfully to the GraphQL ecosystem, and I’m thankful to the maintainers who reviewed, discussed, and supported the updates throughout the process. If you’re considering a documentation or community contribution, I encourage you to explore the <a href="https://graphql.org/foundation/community-grant/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphQL Foundation’s Community Grant Program</a>. It’s a great way to go deep, give back, and help others along the way.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Feel free to reach out if you’re thinking about submitting a proposal. I’m happy to share what I learned! You can reach me via <a href="https://github.com/sarahxsanders" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GitHub</a> or <a href="https://www.linkedin.com/in/sarah-s-42913121a/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">LinkedIn</a>.</p>]]></description>
      <link>https://graphql.org/blog/2025-06-26-docs-updates</link>
      <guid>https://graphql.org/blog/2025-06-26-docs-updates</guid>
      <pubDate>Thu, 26 Jun 2025 02:00:00 +0200</pubDate>
    </item>
    <item>
      <title><![CDATA[🆕 Announcing graphql-js.org!]]></title>
      <description><![CDATA[<p><time datetime="2025-06-20T00:00:00.000Z">June 20, 2025</time> by GraphQL-js Maintainers</p><p><a class="rounded bg-zinc-200 px-2.5 py-1 font-bold capitalize transition-colors hover:!bg-primary hover:text-white hover:!no-underline dark:bg-zinc-700 dark:hover:text-zinc-900" href="https://graphql.org/tags/blog/">blog</a></p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Dear Community,</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">We’re excited to share a milestone in the GraphQL-JS journey, one that puts our community at the center of everything we do.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">For years, GraphQL-JS documentation lived under the broader graphql.org umbrella at . While this made sense back then, we want to serve y’all better, we want upgrade guides and everything graphql-js specific to live in one easy to navigate place.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">We’re thrilled to announce that GraphQL-JS has moved to its dedicated home at <a href="https://www.graphql-js.org" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]"><strong>graphql-js.org</strong></a>.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">This isn’t simply a change of address, it’s a commitment to the community that has made GraphQL-JS what it is today. This new home represents the first step in a larger mission: giving you the comprehensive documentation, clear upgrade paths, and responsive support that a project of this scale deserves.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">What This Means for You</p>
<ul class="[:is(ol,ul)_&amp;]:_my-3 [&amp;:not(:first-child)]:_mt-6 _list-disc ltr:_ml-6 rtl:_mr-6"><li class="_my-2"><strong>Easier discovery</strong>: No more hunting through nested documentation structures</li>
<li class="_my-2"><strong>Focused experience</strong>: Everything GraphQL-JS related in one dedicated space</li>
<li class="_my-2"><strong>Better navigation</strong>: Documentation organized around your workflow, not our internal structure</li>
</ul><p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Coming soon:</p>
<ul class="[:is(ol,ul)_&amp;]:_my-3 [&amp;:not(:first-child)]:_mt-6 _list-disc ltr:_ml-6 rtl:_mr-6"><li class="_my-2"><strong>Comprehensive upgrade guides</strong>: Clear, step-by-step paths between major versions, GraphQL V17 will be our first attempt at this</li>
<li class="_my-2"><strong>Enhanced reference documentation</strong>: Every API documented with real-world examples</li>
</ul>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">We see this move as an inflection point, a moment where we recommit to being the reference implementation the community deserves. GraphQL-JS isn’t just code; it’s the foundation that teams around the world build upon. Whether you’re implementing a new GraphQL server, debugging a complex schema, or upgrading between major versions, you deserve documentation and tooling that makes your job easier, not harder.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">This is our promise: we’re not just maintaining GraphQL-JS, we’re investing in its future and yours.</p>
<hr class="_my-8 _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400" /><p class="[&amp;:not(:first-child)]:_mt-6 _leading-7"><em>The GraphQL-JS Maintainers</em></p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7"><em>Questions or feedback about the new site? We’d love to hear from you in our <a href="https://github.com/graphql/graphql-js/discussions" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GitHub discussions</a> or on the <a href="https://discord.graphql.org" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphQL community Discord</a> in channel .</em></p>]]></description>
      <link>https://graphql.org/blog/2025-06-20-graphql-js-org</link>
      <guid>https://graphql.org/blog/2025-06-20-graphql-js-org</guid>
      <pubDate>Fri, 20 Jun 2025 02:00:00 +0200</pubDate>
    </item>
    <item>
      <title><![CDATA[📣 April 2025 GraphQL Foundation Board Meeting Recap]]></title>
      <description><![CDATA[<p><time datetime="2025-05-15T00:00:00.000Z">May 15, 2025</time> by GraphQL Governing Board</p><p><a class="rounded bg-zinc-200 px-2.5 py-1 font-bold capitalize transition-colors hover:!bg-primary hover:text-white hover:!no-underline dark:bg-zinc-700 dark:hover:text-zinc-900" href="https://graphql.org/tags/blog/">blog</a></p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The GraphQL Foundation Governing Board met April 17 to discuss ongoing community efforts, technical progress, and upcoming events—read on for the highlights:</p>
<h3 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-8 _text-2xl"><strong>🖥️ Website Redesign Underway</strong></h3>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The first version of the new GraphQL.org design is live for community feedback on <a href="https://github.com/graphql/community-wg/issues/21#issuecomment-2766734209" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GitHub</a>! Championed by The Guild, the new site focuses on communicating GraphQL’s value to different types of users. Check it out on GitHub and <a href="http://figma.com/proto/aPUvZDSxJfYDJtPd7GF2sB/GraphQL.org?page-id=10%3A13019&amp;node-id=649-3367&amp;viewport=-2607%2C336%2C0.13&amp;t=eZKIRpRkrWRATgQb-9&amp;scaling=scale-down&amp;content-scaling=fixed&amp;starting-point-node-id=649%3A3367&amp;show-proto-sidebar=1" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Figma</a>—your feedback is welcome.</p>
<h3 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-8 _text-2xl"><strong>🌍 Planning GraphQL All-Hands</strong></h3>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">We had fabulous input and a great turn out for our first public board meeting, which was held at GraphQLConf 2024. We’re building on that idea with a plan to host twice-a-year <strong>GraphQL All-Hands</strong> sessions. These gatherings will celebrate progress, share strategic updates, and foster open discussion. The next one will take place at <a href="https://graphql.org/conf/2025/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphQLConf 2025</a> this fall!</p>
<h3 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-8 _text-2xl"><strong>📊 Community Survey Discussion</strong></h3>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Several Board and community members are exploring a user survey to help shape technical priorities, improve documentation, and inform event content. The Board discussed options to help the effort start small and release iteratively—stay tuned!</p>
<h3 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-8 _text-2xl"><strong>💸 Budget &amp; Membership</strong></h3>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">We’re exploring aligning our fiscal planning with GraphQLConf to better match our annual rhythm. We also celebrated progress on new community grants! 🎉</p>
<h3 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-8 _text-2xl"><strong>🎤 GraphQLConf 2025</strong></h3>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">We’re expanding community involvement in the CFP process by becoming a <strong>Subject Matter Expert</strong>—we’re looking for volunteers to help rank talks for the conference program. Also, we’re proud to support an <a href="https://graphql.org/blog/graphql-stream-team/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">ALS charity swim team</a> happening before the conference. The CFP closed <strong>May 12</strong>.</p>]]></description>
      <link>https://graphql.org/blog/2025-05-15-governing-board-recap</link>
      <guid>https://graphql.org/blog/2025-05-15-governing-board-recap</guid>
      <pubDate>Thu, 15 May 2025 02:00:00 +0200</pubDate>
    </item>
    <item>
      <title><![CDATA[Join the GraphQL Stream Team at GraphQLConf 2025!]]></title>
      <description><![CDATA[<p><time datetime="2025-04-29T00:00:00.000Z">April 29, 2025</time> by GraphQLConf Programming Committee</p><p><a class="rounded bg-zinc-200 px-2.5 py-1 font-bold capitalize transition-colors hover:!bg-primary hover:text-white hover:!no-underline dark:bg-zinc-700 dark:hover:text-zinc-900" href="https://graphql.org/tags/blog/">blog</a></p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">We’re excited to announce that this year, alongside GraphQLConf 2025 in Amsterdam, we’re diving into something a little different. This is your once in a lifetime opportunity to swim in the Amsterdam canals and craft some fin-tastic puns. We’ve created a team to participate in the <a href="https://www.amsterdamcityswim.nl/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Amsterdam City Swim</a>, and we’d love for you to join the <a href="https://www.amsterdamcityswim.nl/teams/graphql-stream-team" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphQL Stream Team</a> on Sunday, September 7th!</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7"><strong>Why We’re Swimming</strong></p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The Amsterdam City Swim isn’t just a unique athletic event—it’s a powerful fundraiser supporting research into ALS (amyotrophic lateral sclerosis), a devastating neurological disease that still has no cure. Every stroke we take helps raise money and awareness, and contributes to the ongoing fight against ALS.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">As developers, technologists, and open source enthusiasts, we often work together to solve complex problems. Now, we’re channeling that same energy into something beyond our everyday work—supporting a cause that impacts lives around the world. Our goal is to raise €2,500.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7"><strong>Who Can Join?</strong></p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Anyone is welcome, even if you aren’t able to attend GraphQLConf! All you need is a swimsuit/wetsuit and goggles. Whether you’re a seasoned swimmer or just in it for the adventure, we want you. <strong>There are two different distance options - 750m + 2.25 km.</strong></p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7"><strong>Not a Fish?</strong></p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">We love a fan club! We’ll arrange a meetup spot for spectators and a post-swim soiree.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7"><strong>Ready to Take the Plunge?</strong></p>
<ul class="[:is(ol,ul)_&amp;]:_my-3 [&amp;:not(:first-child)]:_mt-6 _list-disc ltr:_ml-6 rtl:_mr-6"><li class="_my-2">Sign up for our team: <a href="https://www.amsterdamcityswim.nl/teams/graphql-stream-team" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphQLConf Stream Team</a></li>
<li class="_my-2">Make a <a href="https://www.amsterdamcityswim.nl/teams/graphql-stream-team/donate" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">donation</a></li>
<li class="_my-2">Spread the word: Invite your colleagues, friends, and family</li>
<li class="_my-2">Pack your swim gear for Amsterdam!</li>
</ul><p class="[&amp;:not(:first-child)]:_mt-6 _leading-7"><strong>Let’s Make a Splash</strong></p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">GraphQLConf 2025 is already shaping up to be an unforgettable event. Let’s make it even more meaningful by showing what our community can do when we come together for a good cause.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Are you in? We welcome you with open fins!</p>]]></description>
      <link>https://graphql.org/blog/graphql-stream-team</link>
      <guid>https://graphql.org/blog/graphql-stream-team</guid>
      <pubDate>Tue, 29 Apr 2025 02:00:00 +0200</pubDate>
    </item>
    <item>
      <title><![CDATA[March 2025 GraphQL Foundation Board Meeting Recap]]></title>
      <description><![CDATA[<p><time datetime="2025-04-18T00:00:00.000Z">April 18, 2025</time> by GraphQL Governing Board</p><p><a class="rounded bg-zinc-200 px-2.5 py-1 font-bold capitalize transition-colors hover:!bg-primary hover:text-white hover:!no-underline dark:bg-zinc-700 dark:hover:text-zinc-900" href="https://graphql.org/tags/blog/">blog</a></p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7"><em>Note: The GraphQL Foundation Governing Board will be authoring monthly blog post summaries of their meetings. This is the first approved post, with more to come!</em></p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">GraphQL Foundation’s Governing Board gathered on March 20 for a productive meeting focused on transparency, community growth, and continued technical progress. One key highlight was the board’s support for hosting <strong>biannual public “Town Hall”–style meetings</strong>, inspired by the first such meeting at GraphQLConf 2024. These events—one of which will be held during GraphQLConf 2025 in September—aim to bring more visibility to the Foundation’s work and encourage community participation and input.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">On the technical front, the <strong>Technical Steering Committee (TSC)</strong> shared updates on nullability, upcoming changes to graphql-js, and ongoing work on the incremental delivery specification. The team also encouraged feedback from Board Members and the community on behalf of GraphQL over HTTP.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The new <strong>Community Working Group</strong>, under the TSC, reported strong early engagement, including work on a refreshed GraphQL.org landing page and an open, async collaboration model based on GitHub issues.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The <strong>Marketing &amp; Content Committee</strong> reported that efforts are underway to produce a series of case studies and better support industry-specific adoption stories. The team is also exploring more tailored messaging and additional social media campaigns to promote the conference, Local initiatives, and GraphQL-related news.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Preparations for GraphQLConf 2025 in Amsterdam are well underway. The CFP has seen increased submissions compared to last year, and new voting tools will enable more inclusive talk selection. Ticket sales are tracking to plan, and the Foundation is actively seeking additional sponsors to support the event.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Finally, the <strong>Budget Committee</strong> presented a draft of a new membership pitch deck designed to better communicate the impact and benefits of joining the GraphQL Foundation. The committee is continuing to refine this deck and will solicit ongoing feedback on the messaging.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Stay tuned for more updates as we continue working together to support the GraphQL ecosystem and community. If your organization is interested in sponsoring GraphQL Conf or contributing a case study, we’d love to hear from you!</p>]]></description>
      <link>https://graphql.org/blog/2025-04-18-governing-board-recap</link>
      <guid>https://graphql.org/blog/2025-04-18-governing-board-recap</guid>
      <pubDate>Fri, 18 Apr 2025 02:00:00 +0200</pubDate>
    </item>
    <item>
      <title><![CDATA[How to write a successful conference proposal]]></title>
      <description><![CDATA[<p><time datetime="2025-02-11T00:00:00.000Z">February 11, 2025</time> by Donna Zhou</p><p><a class="rounded bg-zinc-200 px-2.5 py-1 font-bold capitalize transition-colors hover:!bg-primary hover:text-white hover:!no-underline dark:bg-zinc-700 dark:hover:text-zinc-900" href="https://graphql.org/tags/blog/">blog</a></p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">By the end of this blog, you’ll know:</p>
<ul class="[:is(ol,ul)_&amp;]:_my-3 [&amp;:not(:first-child)]:_mt-6 _list-disc ltr:_ml-6 rtl:_mr-6"><li class="_my-2">how to write a conference proposal, and</li>
<li class="_my-2">how to maximise your chance of getting selected to speak</li>
</ul><p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Speaking at a conference is a goal you can achieve now. You don’t have to wait until you’ve “made it” as a principal engineer.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">I’m going to share with you what I’ve learned from speaking at the <a href="https://graphql.org/conf/2023/sessions/81daf0dd0b26efdc784ba0a530e54a68/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphQL Conference</a> and how I maximised my chances of getting selected. I’m going to share the full text of my successful conference proposal so you can see how achievable this is. I will also share advice from <a href="https://github.com/benjie" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Benjie</a>, a GraphQL Conference proposal reviewer and member of the Technical Steering Committee.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">By this end of this blog, you will have the skills and confidence to write your own successful conference proposal.</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Why you should speak at a conference</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Speaking at conferences is a great way to share knowledge and a fantastic opportunity to meet and learn from your peers. The GraphQL Conference is a fantastic way to connect with the community in person.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Although it is not the primary motivation, speaking at a conference helps you stand out as an engineer. It demonstrates that you are an expert on the topic.</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">You are already enough</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Many developers want to speak at a conference, yet I’m sure the next thought most people have is “but I’m not senior or good enough to do that!”</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">You don’t need to wait until you are a big deal principal engineer to give a conference talk. At any stage of your career, you have valuable information to share. I’m sure you have already achieved something worth sharing in a conference talk.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">In this blog I will explain how to take the experiences you already have, and present it as a winning conference proposal. <strong>You are already enough!</strong></p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Selecting conference talk ideas</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">You will maximise your chance of getting selected if you choose a topic <strong>that more engineers are interested in</strong>.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Before I became a software engineer, I was a stand-up comedian. When making jokes is your job, you need a systematic way to generate many ideas (jokes) and test them with audiences. You can use the same approach for selecting conference topic ideas.</p>
<h3 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-8 _text-2xl">Generating talk ideas</h3>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Comedians have to generate new ideas (jokes) all the time. Demanding jobs such as Saturday Night Live require new scripts every week. It’s part of the job, so quickly generating ideas is the first skill they teach you at comedy school.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Here’s what I learned at The Second City (the comedy school where Tina Fey, Stephen Colbert, and Steve Carell studied). To generate heaps of ideas, get a blank piece of paper (or digital equivalent) and start writing down ideas <strong>without judging them or editing them.</strong> I suggest setting a short timer to timebox the activity, for example 10 minutes.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The most important point about this exercise is not pre-judging yourself. Humans are not good at multi-threading. If you’re busy judging your ideas, you don’t have enough brain power to be creative. Give yourself the permission to come up with crappy ideas. This is only an exercise and nobody is going to see what you write down.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">You can also use prompts to help you think of talk ideas:</p>
<ul class="[:is(ol,ul)_&amp;]:_my-3 [&amp;:not(:first-child)]:_mt-6 _list-disc ltr:_ml-6 rtl:_mr-6"><li class="_my-2">What have I worked on in the last 12 months (or longer)?</li>
<li class="_my-2">Where have I been spending my time over the past year?</li>
<li class="_my-2">What are the technologies that I’m interested in?</li>
<li class="_my-2">What have I been reading about?</li>
</ul><p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">After the timer is up and you have your ideas, then you can look through and start selecting your most promising ideas. Remember, only start judging after finishing writing down all the ideas.</p>
<h3 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-8 _text-2xl">Testing talk ideas</h3>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">It’s useful to think about the conference proposal selection process from the perspective of a conference organiser. I interviewed Benjie, part of the team organising the GraphQL Conference and Technical Steering Committee, for his advice. He told me, the most important thing he looked for was <strong>interesting topics and unique perspectives</strong>. The most important factor in getting accepted to speak at a conference is having an idea that resonates.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">So how do you know if your idea is interesting? An effective way to assess your talk ideas is to test them with colleagues. If your idea resonates with them, you’ve probably found an idea that many developers want to learn about.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Test your conference ideas where it’s appropriate. Perhaps a team demo, brown bags, meetups, writing an internal blog, or simply talking to colleagues. What grabs their attention? Which conversation topics come up again and again?</p>
<h3 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-8 _text-2xl">Narrowing down the list</h3>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">To maximise your chances of getting selected, you should only submit your most promising talk ideas.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Try and rank your remaining conference talk ideas with these prompts (you’ll see why in the next section):</p>
<ul class="[:is(ol,ul)_&amp;]:_my-3 [&amp;:not(:first-child)]:_mt-6 _list-disc ltr:_ml-6 rtl:_mr-6"><li class="_my-2">Which of these ideas resonated most with colleagues?</li>
<li class="_my-2">Which of these ideas do I have the most expertise in?</li>
<li class="_my-2">Which of these ideas am I most proud of, or most excited by?</li>
</ul><p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">I usually only have one or two proposals at a time, which I submit to many conferences. You might have more ideas, but try and keep your list short. Be efficient with your time and only submit the ideas you are sure about.</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Writing the proposal</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Here are my top tips, including suggestions from Benjie.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">After explaining these tips, in the next section I’ll share the full text of my GraphQL Conference proposal, so you can see how achievable this is.</p>
<h3 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-8 _text-2xl">Get straight to the point</h3>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">A conference organiser needs to understand what your proposal is about within the first few seconds of reading your proposal. Get straight to the point about what you are going to share.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Conference organisers don’t have time to call you and ask for clarification, so you must make sure what you write is very clear. Ask colleagues and friends to review your proposal for clarity.</p>
<h3 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-8 _text-2xl">A proposal is like a movie trailer</h3>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">You’ll see below, a proposal is very short. You’ll usually be given a small word limit.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">You only have enough room to explain the main idea of your talk. You don’t have enough room to explain all the points you will present in the talk. This is like a movie trailer. Show just enough excitement to grab a person’s interest, but don’t give the full story away. If they want to know all the details, they’ll have to accept your talk first!</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The proposal never contains slides nor speech content. You write slides and the speech after being accepted, so don’t worry about having this ready beforehand.</p>
<h3 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-8 _text-2xl">Explain why you’re the best person to give the talk</h3>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Demonstrate your credentials and why you’re the best person to give this talk. Explain why you are knowledgeable about the topic.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Benjie said he was looking for <strong>unique perspectives</strong>. Demonstrate why you’re uniquely qualified to deliver this talk.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">A conference organiser might not know who you are. Explaining your credentials is essential so the organiser trusts you to deliver on your talk proposal.</p>
<h3 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-8 _text-2xl">Emphasis community connections (optional)</h3>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">If you have participated in the community, write about how you’ve contributed to the community. Similar to the previous point, a conference organiser doesn’t know anything about most applicants. If the organisers have seen or interacted with you already, they will have more trust in you.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">I’ve been involved in the GraphQL community as a maintainer of GraphQL Java and contributed to the specification. The conference organisers trusted me to deliver the talk because they could see I was already contributing to the community.</p>
<h3 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-8 _text-2xl">Save your work</h3>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Save your proposal, so you can recycle the proposal for other conferences. It also means you’re protected in case a website loses your work.</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">My GraphQL Conference proposal in full</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">This was the conference proposal that got accepted for the GraphQL Conference in 2023. See how I used the tips above in the additional notes below.</p>
<blockquote class="[&amp;:not(:first-child)]:_mt-6 _border-gray-300 _italic _text-gray-700 dark:_border-gray-700 dark:_text-gray-400 ltr:_border-l-2 ltr:_pl-6 rtl:_border-r-2 rtl:_pr-6">
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7"><strong>Title:</strong> How to make your first open source contribution (1)</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7"><strong>Description:</strong> Have you always wanted to make an open source contribution, but not sure where to start? (2)</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Getting started with open source is much easier than it seems.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">A year ago, I started regularly contributing to GraphQL Java and the GraphQL Scalars project. I caught the open source bug and made it a habit, and now I’m a maintainer of GraphQL Java (3). It has been an incredible learning experience, and it has been very rewarding to meet the engineers using the library all over the world.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">But it wasn’t always an open source fairytale! Many years ago I tried to contribute to another project, and it was a total failure. I didn’t have a great experience and it put me off open source for a long time. In this talk, I want to explain what I did differently to succeed this time around (4).</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7"><strong>Speaker bio:</strong> I am a maintainer of GraphQL Java and software engineer at Atlassian (5). I’ve published a book, GraphQL with Java and Spring, all about the official Spring for GraphQL integration and the GraphQL Java library.</p>
</blockquote>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Notice my proposal was very short, but it was also very clear. A tip: when you ask colleagues to review your proposal, don’t ask them “was it clear?” because they’ll probably say “yes” to be polite. If you want more accurate feedback, instead ask them to explain the proposal back to you.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Additional commentary on my proposal</p>
<ol class="[:is(ol,ul)_&amp;]:_my-3 [&amp;:not(:first-child)]:_mt-6 _list-decimal ltr:_ml-6 rtl:_mr-6"><li class="_my-2">Straight to the point in the title: My talk is going to be about how a beginner can make their first open source contribution. I would avoid puns, jokes, and pop culture references in the title because they might not make sense to a reviewer and can detract from your message.</li>
<li class="_my-2">Why this talk is interesting: this is a common question many engineers have.</li>
<li class="_my-2">Emphasise your credentials to build trust, and emphasise community connections.</li>
<li class="_my-2">Why this talk is interesting: I didn’t always succeed. I initially failed miserably, but made changes and then became a maintainer. Note that I don’t actually explain any steps for how to make an open source contribution in this short proposal. I deliberately stopped short of explaining so you’ll only find out if you accept my conference talk! Remember, this is like a movie trailer. Show just enough excitement to grab a person’s interest, but don’t give the story away.</li>
<li class="_my-2">Explaining my credentials, why I’m uniquely qualified to give this talk. I also mentioned where I work and the book so it’s easier to verify my credentials.</li>
</ol><h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Dealing with rejection</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Rejection sucks, particularly after putting in so much effort to write a proposal. Even great talk proposals can still be rejected. Perhaps the conference organisers were looking for different topics, or there was some other factor you can’t control.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">This is why I want to prepare you upfront, you will be applying to many conferences. If you keep trying, you will eventually get accepted. You can reuse most of your talk proposal for other conferences, so your effort is not wasted. You should only spend a few minutes on each subsequent application.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">If it helps, I tried to reframe my disappointment of getting rejected. Instead, I tried to make a game out of collecting rejections. My goal was to collect 100 conference rejections, because I knew every submission was improving my chances. Although I was rejected from quite a few conferences, I didn’t achieve my “goal” of 100 rejections.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">When a rejection happens, it’s worth remembering your reasons for wanting to speak at a conference, which I wrote about at the top of this page. I promise the payoff is worth the uncomfortable feeling of getting rejected. Don’t give up.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">While I encourage you to continue trying, each rejection also gives you the opportunity to assess if there is anything you can do better next time. In my experience, conference organisers are usually too busy to deliver detailed feedback. You could instead ask a colleague or friend for help. Try to ask colleagues who have already spoken at conferences, as they’ve already achieved what you’re aiming for.</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Apply for GraphQLConf 2025</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">In this page we walked through every thing you need to know for writing a successful conference proposal.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">You already have what it takes. I encourage you to apply to speak at GraphQLConf 2025! The call for proposals is open, <a href="https://sessionize.com/graphqlconf-2025" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">apply now!</a>.</p>]]></description>
      <link>https://graphql.org/blog/2025-02-11-how-to-write-a-successful-conference-proposal</link>
      <guid>https://graphql.org/blog/2025-02-11-how-to-write-a-successful-conference-proposal</guid>
      <pubDate>Tue, 11 Feb 2025 01:00:00 +0100</pubDate>
    </item>
    <item>
      <title><![CDATA[Welcoming New TSC Members]]></title>
      <description><![CDATA[<p><time datetime="2025-02-05T00:00:00.000Z">February 5, 2025</time> by Lee Byron</p><p><a class="rounded bg-zinc-200 px-2.5 py-1 font-bold capitalize transition-colors hover:!bg-primary hover:text-white hover:!no-underline dark:bg-zinc-700 dark:hover:text-zinc-900" href="https://graphql.org/tags/foundation/">foundation</a></p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The GraphQL Technical Steering Committee is the body responsible for the technical oversight of all our open source projects and management of our open source community. Every year we vote on self-nominees to rotate up to half of TSC members, and we’ve just concluded the most recent vote.</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Welcoming our new TSC members</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">I’m excited to share that we have elected two new members to the GraphQL Technical Steering Committee (TSC), <a href="https://github.com/martinbonnin" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Martin Bonnin</a> and <a href="https://github.com/PascalSenn" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Pascal Senn</a>, technical leads at Apollo and ChilliCream respectively. They have been consistent contributors to the GraphQL open source project over the last few years and I’m thrilled to have their help in and commitment to guiding and advancing the GraphQL technical project and broader ecosystem.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">In addition, we also re-elected three existing members, <a href="https://github.com/Keweiqu" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Kewei Qu</a> a technical lead at Meta working on the original GraphQL deployment, <a href="https://github.com/robrichard" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Rob Richard</a> an engineer at 1stDibs at the lead of the Streaming GraphQL project, and <a href="https://github.com/urigo" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Uri Goldshtein</a> founder of The Guild. These all join our existing <a href="https://github.com/orgs/graphql/teams/tsc/members" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">TSC members</a>.</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Open Working Groups and the Role of the TSC</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">GraphQL is an open project. All are welcome to join our <a href="https://github.com/graphql/graphql-wg/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">working group</a> meetings, champion proposals for project-wide improvements, or contribute directly across our open source projects.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">It has been critical to keep access to these working groups open, but it does mean a rotating cast of contributors over time. The primary role of the TSC is to provide continuity as the stewards of this group and our processes, and co-owners of our technical projects.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">While the TSC is a closed group, our focus is always on strengthening the work that happens in our open Working Group meetings—that is where technical work moves forward.</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Our Processes</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">To learn more about the TSC and how we work, check out these resources:</p>
<ul class="[:is(ol,ul)_&amp;]:_my-3 [&amp;:not(:first-child)]:_mt-6 _list-disc ltr:_ml-6 rtl:_mr-6"><li class="_my-2"><strong><a href="https://github.com/graphql/graphql-wg/issues/1612" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">2025 TSC Elections</a></strong> — we use Github issues for most things across the Working Group and TSC, and this one tracked the TSC election itself. Anyone could self-nominate via a Google Form, and we held a vote via OpaVote.</li>
<li class="_my-2"><strong><a href="https://github.com/graphql/graphql-wg/blob/main/GraphQL-TSC.md" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">TSC Charter</a></strong> — this lists out in detail how the TSC is governed, which contains more detail about when and how we take votes, and what we’re accountable for.</li>
<li class="_my-2"><strong><a href="https://github.com/graphql/graphql-wg/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphQL Working Group</a></strong> — this is where we organize meetings and contribution across the Working Group, where you’ll find past and upcoming agendas and can join an upcoming meeting simply by adding yourself to the next agenda file in a PR.</li>
</ul><hr class="_my-8 _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400" /><p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">I’m beyond lucky to get to work with such a talented group of volunteers both directly on the TSC and across the GraphQL community.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Welcome, Martin and Pascal!</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">— Lee</p>]]></description>
      <link>https://graphql.org/blog/2025-02-05-welcome-tsc-members-2025</link>
      <guid>https://graphql.org/blog/2025-02-05-welcome-tsc-members-2025</guid>
      <pubDate>Wed, 05 Feb 2025 01:00:00 +0100</pubDate>
    </item>
    <item>
      <title><![CDATA[Announcing GraphQLConf 2025: Amsterdam Awaits! 🌍✨]]></title>
      <description><![CDATA[<p><time datetime="2024-12-18T00:00:00.000Z">December 18, 2024</time> by GraphQL Foundation</p><p><a class="transition-colors py-1 px-2.5 capitalize rounded bg-zinc-200 dark:bg-zinc-700 font-bold hover:!no-underline hover:!bg-primary hover:text-white dark:hover:text-zinc-900" href="https://graphql.org/tags/announcements/">announcements</a></p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Mark your calendars - <strong>GraphQLConf</strong> is set to take place in the vibrant and historic city of <strong>Amsterdam, Netherlands</strong>, on <strong>September 8-10, 2025</strong>!</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">After a successful 2024 event, we’re thrilled to announce that GraphQLConf is heading to Europe for the very first time in 2025! This milestone reflects an overwhelming interest and passion from the European developer community, making GraphQL more accessible for developers and innovators worldwide. Get ready to immerse yourself in three days of learning, connecting, and celebrating the GraphQL ecosystem with a truly diverse, international community.</p>
<hr class="_my-8 _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400" /><h3 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-8 _text-2xl"><strong>What to Expect</strong></h3>
<h4 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-8 _text-xl"><strong>🚀 High-Quality Content</strong></h4>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Hear from the pioneers of GraphQL and influential thought leaders shaping the future of APIs and developer experience. From the original creators to cutting-edge contributors, our stage will host the best minds in the industry.</p>
<h4 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-8 _text-xl"><strong>💡 Hands-On Workshops</strong></h4>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Level up your GraphQL skills with immersive, hands-on workshops. Whether you’re a beginner or a seasoned pro, we’ll have sessions tailored to help you build faster, query smarter, and optimize better.</p>
<h4 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-8 _text-xl"><strong>🌐 Community Connections</strong></h4>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Network with developers, maintainers, and contributors from around the world. The conference will feature meetups, collaboration zones, and plenty of space to share ideas.</p>
<h4 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-8 _text-xl"><strong>🎉 A Memorable Venue</strong></h4>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Amsterdam offers a perfect blend of historic charm and modern innovation. From the canals to the cutting-edge tech scene, the city provides an inspiring backdrop for this year’s event.</p>
<hr class="_my-8 _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400" /><h3 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-8 _text-2xl"><strong>Why Amsterdam?</strong></h3>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">As one of Europe’s most tech-forward cities, Amsterdam is an innovative environment with a thriving GraphQL developer community. Its central location makes it easily accessible for attendees from across Europe and beyond. Plus, its rich culture and welcoming vibe ensure you’ll leave with more than just new knowledge—you’ll have memories to last a lifetime.</p>
<hr class="_my-8 _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400" /><h3 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-8 _text-2xl"><strong>Save the Date &amp; Get Your Ticket</strong></h3>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">📅 <strong>When?</strong> September 8-10, 2025</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">📍 <strong>Where?</strong> <a href="https://maps.app.goo.gl/FoJG5KrjrM7U9Pva6" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Pakhuis de Zwijger</a> - Amsterdam, Netherlands</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Mark your calendars and secure your spot at the best rates - <a href="https://cvent.me/PBNYEe" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">early bird registration</a> is a great way to spend any remaining 2024 budget!</p>
<hr class="_my-8 _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400" /><h3 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-8 _text-2xl"><strong>Get Involved</strong></h3>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Want to help shape the GraphQLConf 2025 experience? Here’s how you can participate:</p>
<ul class="[:is(ol,ul)_&amp;]:_my-3 [&amp;:not(:first-child)]:_mt-6 _list-disc ltr:_ml-6 rtl:_mr-6"><li class="_my-2"><strong><a href="https://forms.gle/jRsE2u8pokLX93RGA" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Speak at the Event</a></strong>: We’re looking for diverse voices to share innovative ideas, technical insights, and real-world GraphQL success stories. Our CFP will open in early 2025.</li>
<li class="_my-2"><strong><a href="https://events.linuxfoundation.org/wp-content/uploads/2024/12/sponsor_GraphQLConf_2025.pdf" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Become a Sponsor</a></strong>: Align your brand with the global GraphQL community and connect with influential developers. As a GraphQLConf sponsor, you’ll be an authoritative voice on cutting edge API topics.</li>
<li class="_my-2"><strong><a href="https://forms.gle/jRsE2u8pokLX93RGA" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Join the Community Team</a></strong>: Help us make the event unforgettable and highly relevant by volunteering with our programming committee or hosting local meetups leading up to the conference.</li>
</ul><p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Questions about getting involved? Send us a note at <a class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]" href="mailto:graphqlconf@graphql.org">graphqlconf@graphql.org</a>.</p>
<hr class="_my-8 _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400" /><h3 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-8 _text-2xl"><strong>Follow for Updates</strong></h3>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Stay connected for announcements about speakers, schedules, and registration. Follow us on <a href="https://bsky.app/profile/graphql.org" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Bluesky</a>, <a href="https://twitter.com/GraphQLConf" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Twitter/X</a> and<a href="https://linkedin.com/company/graphqlconf" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">LinkedIn</a> and join the conversation with #GraphQLConf2025.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">We can’t wait to see you in Amsterdam!</p>]]></description>
      <link>https://graphql.org/blog/announcing-graphqlconf-2025-amsterdam-awaits</link>
      <guid>https://graphql.org/blog/announcing-graphqlconf-2025-amsterdam-awaits</guid>
      <pubDate>Wed, 18 Dec 2024 01:00:00 +0100</pubDate>
    </item>
    <item>
      <title><![CDATA[Learn Documentation Update, October - November 2024]]></title>
      <description><![CDATA[<p><time datetime="2024-12-12T00:00:00.000Z">December 12, 2024</time> by Mandi Wise</p><p><a class="transition-colors py-1 px-2.5 capitalize rounded bg-zinc-200 dark:bg-zinc-700 font-bold hover:!no-underline hover:!bg-primary hover:text-white dark:hover:text-zinc-900" href="https://graphql.org/tags/grants/">grants</a></p>
<blockquote class="[&amp;:not(:first-child)]:_mt-6 _border-gray-300 _italic _text-gray-700 dark:_border-gray-700 dark:_text-gray-400 ltr:_border-l-2 ltr:_pl-6 rtl:_border-r-2 rtl:_pr-6">
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The GraphQL Foundation offers <a href="https://graphql.org/foundation/community-grant/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Community Grants</a> to help incentivize key technical and community initiatives. As part of the grant, applicants commit to write a blog post report describing their work and its impact on the GraphQL community. The following report was written by successful grant applicant Mandi Wise in November 2024, detailing the documentation updates she submitted during October and November of that year.</p>
</blockquote>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">The opportunity</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The <a href="https://graphql.org/learn/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Learn documentation</a> has been a key resource on this site since its launch. And because of their search engine ranking, the tutorial pages are often one of the first stops for someone starting their GraphQL learning journey. They’re also a great resource for those already working on GraphQL projects who want to ensure they implement best practices.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The Learn docs have undergone some maintenance and iteration since their initial publication, but there were <a href="https://github.com/graphql/graphql.github.io/issues/41" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">some long-outstanding tasks</a> for this section of the site, as well as several open docs-related issues in the repository that had been submitted by community members. I have some experience teaching and writing about GraphQL, so in late August, I decided to submit a proposal to the <a href="https://graphql.org/foundation/community-grant/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphQL Community Grant</a> program so I could make a focused effort to address a collection of the open issues, as well as fill in some other content gaps that had emerged as the specification has evolved and certain best practices have become well-established in the community.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The grant application was approved by the GraphQL Foundation a few weeks later into September, and I started work on the project by early October, with a goal of completing the work by the end of November.</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Doing the work</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The scope of my approved project was to review and edit most of the pages in the Learn section of the site, create several new pages, and split some of the existing pages into more focused topics with expanded content. After my proposal was approved, I further refined the scope of this work by completing a more detailed content audit that was reviewed by members of the GraphQL TSC before I proceeded.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Now that the work has been completed, some notable changes include:</p>
<ul class="[:is(ol,ul)_&amp;]:_my-3 [&amp;:not(:first-child)]:_mt-6 _list-disc ltr:_ml-6 rtl:_mr-6"><li class="_my-2">A new and improved <a class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]" href="https://graphql.org/learn/">landing page</a> for the docs</li>
<li class="_my-2">Dedicated pages for <a class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]" href="https://graphql.org/learn/queries/">Queries</a> and <a class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]" href="https://graphql.org/learn/mutations/">Mutations</a> with additional examples, plus a new <a class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]" href="https://graphql.org/learn/subscriptions/">Subscriptions page</a></li>
<li class="_my-2">A new <a class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]" href="https://graphql.org/learn/response/">Response page</a> with content about data and error formats</li>
<li class="_my-2">An overhauled <a class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]" href="https://graphql.org/learn/serving-over-http/">Serving over HTTP page</a> so that it aligns with the <a href="https://graphql.github.io/graphql-over-http/draft/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">draft GraphQL over HTTP specification</a></li>
<li class="_my-2">New pages in the Best Practices section covering <a class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]" href="https://graphql.org/learn/performance/">Performance</a> and <a class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]" href="https://graphql.org/learn/security/">Security</a> topics</li>
</ul><p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">In addition to these content changes, I also standardized the page formatting with subtitles and summaries, made some additions to the SWAPI schema to support the new examples in the docs, and made a quality of life improvement to the mini GraphiQL component to add labels to each of the panels in the editor.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">To complete this work, I submitted PRs to the <a href="https://github.com/graphql/graphql.github.io" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">graphql.github.io repo</a> and I typically sent one PR per docs page to keep the review process manageable. This approach also allowed us to incrementally release updated pages to the site when they were ready. In total, I submitted 12 PRs that addressed 8 open issues in the repository.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Refining and publishing the docs content was a collaborative process, and I’d like to give a big shout-out to <a href="https://github.com/benjie" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Benjie Gillam</a> for the time he committed to reviewing all of my PRs and providing feedback throughout this process. I’d like to thank <a href="https://github.com/Urigo" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Uri Goldshtein</a>, <a href="https://github.com/saihaj" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Saihajpreet Singh</a>, <a href="https://github.com/eddeee888" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Eddy Nguyen</a>, and <a href="https://github.com/dimaMachina" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Dimitri POSTOLOV</a> for their feedback during this project too.</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">What’s next?</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The Learn docs have been broadly updated now, but there’s still potential for additional enhancements. Some ideas that were discussed but that ultimately fell outside the scope of this project included new pages on trusted documents, composite schemas, and migrating from REST, as well as developing expanded content for the existing Caching page.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">If you’re interested in any of these topics, I’d encourage you to send a PR or even <a href="https://graphql.org/foundation/community-grant/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">submit a grant proposal</a> too if you’re inspired to take on a larger project. Feel free to reach out to me on Discord (@mandi.wise) or <a href="https://github.com/mandiwise/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Github</a> and I’d be happy to provide input or help.</p>]]></description>
      <link>https://graphql.org/blog/2024-12-12-learn-docs-update</link>
      <guid>https://graphql.org/blog/2024-12-12-learn-docs-update</guid>
      <pubDate>Thu, 12 Dec 2024 01:00:00 +0100</pubDate>
    </item>
    <item>
      <title><![CDATA[Call for Participation for FOSDEM API & Friends devroom]]></title>
      <description><![CDATA[<p><time datetime="2024-11-04T00:00:00.000Z">November 4, 2024</time> by Jem Gillam</p><p><a class="transition-colors py-1 px-2.5 capitalize rounded bg-zinc-200 dark:bg-zinc-700 font-bold hover:!no-underline hover:!bg-primary hover:text-white dark:hover:text-zinc-900" href="https://graphql.org/tags/blog/">blog</a></p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">We are excited to announce the <a href="https://pretalx.fosdem.org/fosdem-2025/cfp" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Call for Participation for the FOSDEM 2025 APIs: GraphQL, OpenAPI, AsyncAPI &amp; Friends Devroom</a>.</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">What is FOSDEM?</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7"><a href="https://fosdem.org/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">FOSDEM</a> is a two day, free and non-commercial event held in Brussels, Belguim, in February each year. It brings together over 8,000 software developers to meet, share ideas and collaborate on free and open source software. The FOSDEM team feel it is very important that developers get to meet offline and so run Devrooms to facilitate this - rooms with talks, panels and showcases centered around one theme where developers can share ideas and publicly present their latest findings, news and projects in a collaborative atmosphere.</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">What is the APIs &amp; Friends Devroom?</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">A platform for developers, technologists, and enthusiasts to come together to discuss, learn, and collaborate on topics around APIs and Open Source. Open collaboration is a driving force behind APIs and open-source projects, and we look forward to talks on community-driven technologies such as OpenAPI, GraphQL, AsyncAPI, gRPC and webhooks.</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Suggested Topics</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">We welcome submissions about, but not limited to:</p>
<ul class="[:is(ol,ul)_&amp;]:_my-3 [&amp;:not(:first-child)]:_mt-6 _list-disc ltr:_ml-6 rtl:_mr-6"><li class="_my-2">Your favourite Open Source project: tooling, frameworks, SDKs, API gateway, etc.</li>
<li class="_my-2">Topics related to API standards such as OpenAPI, GraphQL, JSON Schema or AsyncAPI.</li>
<li class="_my-2">API Design Principles: best practices for designing clean, efficient, and developer-friendly APIs.</li>
<li class="_my-2">Topics related to versioning, authentication, rate limiting, and error handling.</li>
<li class="_my-2">Real-world API Use Cases.</li>
<li class="_my-2">Developer Experience and API Documentation.</li>
</ul><h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Important Dates</h2>
<ul class="[:is(ol,ul)_&amp;]:_my-3 [&amp;:not(:first-child)]:_mt-6 _list-disc ltr:_ml-6 rtl:_mr-6"><li class="_my-2">Sunday Dec 1st 2024: Submission deadline (Closes at midnight Brussels time)</li>
<li class="_my-2">Sunday Dec 15th 2024: Announcement of selected talks</li>
<li class="_my-2">Sunday Feb 2nd 2025: Devroom at 1pm, in person at ULB Solbosch Campus, Brussels, Belguim</li>
</ul><h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Recording</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Please be aware of the fact that, barring any technical difficulties, devroom talks at FOSDEM will be recorded. By submitting a proposal you agree to be recorded and to have your talk made available from the FOSDEM video platform.</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">How to submit a talk</h2>
<ul class="[:is(ol,ul)_&amp;]:_my-3 [&amp;:not(:first-child)]:_mt-6 _list-disc ltr:_ml-6 rtl:_mr-6"><li class="_my-2">Talk submissions can be 20 to 25 minutes, allowing a short Q&amp;A time to fill the rest of the 30 minute slot</li>
<li class="_my-2">Shorter (lightning) talks should be 10-12 minutes and should indicate “lightning talk” in the description</li>
<li class="_my-2">Go to <a href="https://pretalx.fosdem.org/fosdem-2025/cfp" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">FOSDEM pretalx</a> website</li>
<li class="_my-2">Select ‘APIs: GraphQL, OpenAPI, AsyncAPI, and friends’ from the ‘Track’ field</li>
</ul><h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Code of Conduct</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The code of conduct for FOSDEM is available at <a href="https://fosdem.org/2025/practical/conduct/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">https://fosdem.org/2025/practical/conduct/</a></p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Questions</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">You can reach the devroom organisers at: api-devroom-manager AT fosdem.org The APIs: GraphQL, OpenAPI, AsyncAPI &amp; Friends Devroom is organised by volunteers who also ran the API &amp; Friends devroom last year, and joining forces with members of the GraphQL Technical Steering Committee to bring a GraphQL focus as well as fostering collaboration with folks representing OpenAPI and AsyncAPI projects.</p>]]></description>
      <link>https://graphql.org/blog/2024-11-04-fosdem-2025</link>
      <guid>https://graphql.org/blog/2024-11-04-fosdem-2025</guid>
      <pubDate>Mon, 04 Nov 2024 01:00:00 +0100</pubDate>
    </item>
    <item>
      <title><![CDATA[Welcoming Yaacov Rydzinski to the GraphQL.js Maintainer Team]]></title>
      <description><![CDATA[<p><time datetime="2024-10-14T00:00:00.000Z">October 14, 2024</time> by Jory Burson and Benjie Gillam</p><p><a class="transition-colors py-1 px-2.5 capitalize rounded bg-zinc-200 dark:bg-zinc-700 font-bold hover:!no-underline hover:!bg-primary hover:text-white dark:hover:text-zinc-900" href="https://graphql.org/tags/blog/">blog</a></p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">We are thrilled to announce a new co-maintainer of GraphQL.js: Yaacov Rydzinski <a href="https://github.com/yaacovCR" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">@Yaacov Rydzinski</a> has been approved as a co-maintainer of GraphQL.js!</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Yaacov’s journey into open source and GraphQL is unique, having earned degrees in both Medicine and Computer Science. Whereas most maintainers are employed as software developers, Yaacov is a radiologist by day and star GraphQL contributor by night. Yaacov brings real-world, end-user experience building APIs and tools for the medical field - sounds like a superhero to us!</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">GraphQL.js is a fundamental library in the GraphQL ecosystem, serving as the reference implementation of the GraphQL specification in JavaScript. It provides the essential building blocks for defining GraphQL schemas, executing queries, and validating data, making it a critical tool for developers building GraphQL APIs. As the backbone of many GraphQL-based applications and services, GraphQL.js plays a pivotal role in driving the adoption and evolution of GraphQL technology across the web development community.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The GraphQL.js maintainers ensure the project’s health by managing contributions, reviewing code, addressing issues, and guiding its evolution. Their role is vital in maintaining the quality, security, and relevance of the software, fostering a collaborative environment, and engaging with the community.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Please join us in welcoming Yaacov to the GraphQL.js team, and join us for an upcoming <a href="https://github.com/graphql/graphql-wg?tab=readme-ov-file#subcommittee-meetings" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphQL.js Working Group</a> meeting!</p>]]></description>
      <link>https://graphql.org/blog/2024-10-14-welcome-yaacov</link>
      <guid>https://graphql.org/blog/2024-10-14-welcome-yaacov</guid>
      <pubDate>Mon, 14 Oct 2024 02:00:00 +0200</pubDate>
    </item>
    <item>
      <title><![CDATA[Generating type safe clients using code generation]]></title>
      <description><![CDATA[<p><time datetime="2024-09-19T00:00:00.000Z">September 19, 2024</time> by Martin Bonnin</p><p><a class="transition-colors py-1 px-2.5 capitalize rounded bg-zinc-200 dark:bg-zinc-700 font-bold hover:!no-underline hover:!bg-primary hover:text-white dark:hover:text-zinc-900" href="https://graphql.org/tags/blog/">blog</a></p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">A GraphQL endpoint usually returns a JSON payload. While you can use the result as a dynamic object, the GraphQL type system gives us a lot of information about what is inside that JSON payload.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">If you’re not using code generation, you’re missing out on a lot, especially if you’re using a type-safe language such as TypeScript, Swift or Kotlin.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">By using code generation, you get:</p>
<ul class="[:is(ol,ul)_&amp;]:_my-3 [&amp;:not(:first-child)]:_mt-6 _list-disc ltr:_ml-6 rtl:_mr-6"><li class="_my-2">compile time guarantees about your code and the data it manipulates, and</li>
<li class="_my-2">autocomplete and inline documentation in your favorite IDE.</li>
</ul><p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">All of that without having to write and maintain types manually!</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">For simplicity, this post uses TypeScript for code blocks but the same concepts can be applied to Swift/Kotlin.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">A common mistake is to attempt to use the GraphQL schema directly for type generation, but this is not type-safe since GraphQL only returns the fields that you ask for, and allows you to alias fields in the response. Instead, types should be generated based on the GraphQL operations (requests) that you issue. Here’s an illustration of the issue:</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Problem: Generating code from schema types loses nullability information</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Let’s assume this schema:</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">A translation to TypeScript might yield the following:</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Pretty neat, right? Typescript and GraphQL look really similar… Unfortunately, this is not type safe!</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Let’s perform a query that doesn’t request the product name:</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Returned product:</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">It’s now impossible to map that returned value to our type because  must be non-null.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">We can also apply aliases:</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Returned product:</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Note that the , despite being non-null, does not match up with the expected  field.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">We simply cannot safely use the schema types to represent requests unless we fetch every single field on every single type, which would go against GraphQL’s very nature!</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Thankfully, we can solve this by generating code based on operations instead (queries, mutations, and subscriptions).</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Solution: Generating code from GraphQL operations</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">By generating code from GraphQL operations, we are now certain that the TypeScript fields always represent GraphQL fields that have been requested.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Reusing our first example:</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">TypeScript:</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">With this  type:</p>
<ul class="[:is(ol,ul)_&amp;]:_my-3 [&amp;:not(:first-child)]:_mt-6 _list-disc ltr:_ml-6 rtl:_mr-6"><li class="_my-2"> is not present in the generated type because it was not queried.</li>
<li class="_my-2"> is not-nullable, as intended. A product always has an .</li>
<li class="_my-2"> and  are nullable, as intended. If , it means the product doesn’t have a description/price.</li>
</ul><p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">This is what we expected!</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Conclusion</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">By using code generation based on operations, you get type safety from your backend all the way to your UI. On top of that, your IDE can use the generated code to provide autocomplete and a better experience overall.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">All the major code generators (<a href="https://github.com/dotansimha/graphql-code-generator" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">graphql-code-generator</a>, <a href="https://relay.dev/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Relay</a>, <a href="https://github.com/apollographql/apollo-ios" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Apollo iOS</a>, <a href="https://github.com/apollographql/apollo-kotlin" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Apollo Kotlin</a>, …) generate code based on operations.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">If you have not already, try them out!</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">And look out for a new post soon on the improvements we’re hoping to bring to GraphQL nullability!</p>]]></description>
      <link>https://graphql.org/blog/2024-09-19-codegen</link>
      <guid>https://graphql.org/blog/2024-09-19-codegen</guid>
      <pubDate>Thu, 19 Sep 2024 02:00:00 +0200</pubDate>
    </item>
    <item>
      <title><![CDATA[Launching the GraphQL Local Initiative]]></title>
      <description><![CDATA[<p><time datetime="2024-08-15T00:00:00.000Z">August 15, 2024</time> by Benjie Gillam and Jory Burson</p><p><a class="transition-colors py-1 px-2.5 capitalize rounded bg-zinc-200 dark:bg-zinc-700 font-bold hover:!no-underline hover:!bg-primary hover:text-white dark:hover:text-zinc-900" href="https://graphql.org/tags/blog/">blog</a></p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The GraphQL Foundation’s primary mission is to ensure the continued evolution of the GraphQL specification and reference implementations. As part of this mission, we strive to provide collaboration infrastructure that fosters a culture of community and innovation. Local get-togethers play a crucial role in this, bringing together developers, library maintainers, vendors, and enthusiasts to share knowledge and collaborate.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">That’s why we’ve expanded our support for local communities with the launch of the <strong>GraphQL Local Initiative</strong>. This initiative aims to recognize and support local efforts by providing a framework and resources for organizing local GraphQL events.</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">What the GraphQL Local Initiative Offers</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">We recognize how much effort is required to organize local events: from finding venues, speakers, sponsors and refreshments to preparing slides, driving awareness, ensuring inclusivity, and much more - there’s a lot to do! The GraphQL Local Initiative enables us to lighten your load a little by offering a modest sponsorship, slide templates, code of conduct, guidelines, swag, promotion, and more.</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Requirements for GraphQL Locals</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">To ensure the success and consistency of these local events, organizers must adhere to the GraphQL Code of Conduct and Brand Guidelines, and ensure events are inclusive and accessible. For the full list of requirements, see the <a class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]" href="https://graphql.org/community/foundation/local-initiative/">program page</a>.</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">How to Get Involved</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">We encourage all community members passionate about GraphQL to get involved. Whether you want to organize an event in your local city or simply participate, your involvement helps strengthen the GraphQL community.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">To find out more and apply for official recognition and support for your local event, please <a class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]" href="https://graphql.org/community/foundation/local-initiative/">visit the GraphQL Local Initiative page</a>.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Let’s keep building a vibrant, supportive, and innovative GraphQL community together!</p>]]></description>
      <link>https://graphql.org/blog/2024-08-15-graphql-local-initiative</link>
      <guid>https://graphql.org/blog/2024-08-15-graphql-local-initiative</guid>
      <pubDate>Thu, 15 Aug 2024 02:00:00 +0200</pubDate>
    </item>
    <item>
      <title><![CDATA[Welcoming Jovi De Croock to the GraphQL.js Maintainer Team]]></title>
      <description><![CDATA[<p><time datetime="2024-07-22T00:00:00.000Z">July 22, 2024</time> by Jory Burson &amp; Benjie Gillam</p><p><a class="transition-colors py-1 px-2.5 capitalize rounded bg-zinc-200 dark:bg-zinc-700 font-bold hover:!no-underline hover:!bg-primary hover:text-white dark:hover:text-zinc-900" href="https://graphql.org/tags/announcements/">announcements</a></p>
<p class="_mt-6 _leading-7 first:_mt-0">We are thrilled to announce that Jovi De Croock <a href="https://github.com/JoviDeCroock" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">@JoviDeCroock</a> has been approved as a co-maintainer of GraphQL.js! Jovi brings a wealth of experience and a deep passion for the GraphQL ecosystem, making him an invaluable addition to the team.</p>
<p class="_mt-6 _leading-7 first:_mt-0">GraphQL.js is a fundamental library in the GraphQL ecosystem, serving as the reference implementation of the GraphQL specification. It provides essential building blocks for defining GraphQL schemas, executing queries, and validating data, making it a critical tool for developers building GraphQL APIs in JavaScript/TypeScript and acting as the backbone of many GraphQL-based applications and services. As the reference implementation, it aids anyone wishing to implement GraphQL in another programming language. These roles make GraphQL.js pivotal in driving the adoption and evolution of GraphQL technology across the web development community.</p>
<p class="_mt-6 _leading-7 first:_mt-0">The GraphQL.js maintainers ensure the project’s health by managing contributions, reviewing code, addressing issues, and guiding its evolution alongside the GraphQL specification. The maintainer role is vital in ensuring the quality, security, and relevance of the software, fostering a collaborative environment, and engaging with the community.</p>
<p class="_mt-6 _leading-7 first:_mt-0">Please join us in welcoming Jovi De Croock to the GraphQL.js team, and join us for an upcoming <a href="https://github.com/graphql/graphql-js-wg/blob/main/README.md" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphQL.js Working Group meeting</a>!</p>]]></description>
      <link>https://graphql.org/blog/2024-07-22-jovi-de-croock-graphqljs</link>
      <guid>https://graphql.org/blog/2024-07-22-jovi-de-croock-graphqljs</guid>
      <pubDate>Mon, 22 Jul 2024 02:00:00 +0200</pubDate>
    </item>
    <item>
      <title><![CDATA[Announcing the Composite Schemas Working Group]]></title>
      <description><![CDATA[<p><time datetime="2024-05-16T00:00:00.000Z">May 16, 2024</time> by Jeff Auriemma, Benjie Gillam, Michael Staib, Kamil Kisiela, Praveen Durairaju</p><p><a class="transition-colors py-1 px-2.5 capitalize rounded bg-zinc-200 dark:bg-zinc-700 font-bold hover:!no-underline hover:!bg-primary hover:text-white dark:hover:text-zinc-900" href="https://graphql.org/tags/announcements/">announcements</a></p>
<p class="_mt-6 _leading-7 first:_mt-0">In 2019, Apollo introduced GraphQL Federation as a way of splitting the task of building a GraphQL schema along team boundaries. It proposed a compelling alternative to prior techniques such as schema stitching and delegation, focussing on addressing the collaboration problems inherent in building a coherent schema within a large organization. Federation clearly filled a need and was adopted widely by platform engineers and API developers, a compelling way to compose microservices into a single access layer while retaining service boundaries and team ownership. Solutions from other vendors arose, tackling the same problems in similar ways but with different trade-offs, and some of the world’s largest enterprises have adopted these various patterns and are betting on GraphQL to solve some of their biggest pain points.</p>
<p class="_mt-6 _leading-7 first:_mt-0">Adopting this style of collaboration has become a standard way of creating API platforms, with wide support from an array of vendors. Common patterns and best practices have been established around the various implementations and the underlying architecture has proven effective at scale. Today there are many approaches to collaborative GraphQL schema design, requiring different ways of defining the underlying schemas and composing the resulting architecture; for example Federation and Fusion take an approach that optimizes for collaborative schema composition, whereas Mesh and Hasura prioritize flexibility with a variety of heterogenous services or even databases. API architects are having to make hard decisions early on in their projects, deciding which of the many patterns to follow.</p>
<p class="_mt-6 _leading-7 first:_mt-0">Organizations large and small are making huge investments in GraphQL, and those investments are even more sound when they are underwritten by open standards. That’s why the GraphQL Specification Working Group is proud to announce that the Composite Schemas Subcommittee re-convened earlier this year and is making steady progress toward a common specification describing composition and distributed execution across multiple collaborative GraphQL services. The focus is on standardizing common aspects to enable interoperability whilst leaving significant room for innovation so consumers can find the best solution for their needs. Engineers from a wide variety of organizations including Apollo GraphQL, ChilliCream, Google, Graphile, The Guild, Hasura, and IBM have brought their valuable insights to meetings so far; and the community is abuzz with possibilities!</p>
<p class="_mt-6 _leading-7 first:_mt-0">As with any GraphQL Working Group, anyone is welcome to join and contribute! To get involved, add yourself to an <a href="https://github.com/graphql/composite-schemas-wg/tree/main/agendas" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">upcoming agenda</a> or watch all former meetings on the <a href="https://www.youtube.com/playlist?list=PLP1igyLx8foFjxyTg6wPn4pUkZwuAk2GR" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">official YouTube channel</a>.</p>]]></description>
      <link>https://graphql.org/blog/2024-05-16-composite-schemas-announcement</link>
      <guid>https://graphql.org/blog/2024-05-16-composite-schemas-announcement</guid>
      <pubDate>Thu, 16 May 2024 02:00:00 +0200</pubDate>
    </item>
    <item>
      <title><![CDATA[? Announcing GraphQLConf 2024]]></title>
      <description><![CDATA[<p><time datetime="2024-03-28T00:00:00.000Z">March 28, 2024</time> by GraphQL Conference &amp; Event Committee</p><p><a class="transition-colors py-1 px-2.5 capitalize rounded bg-zinc-200 dark:bg-zinc-700 font-bold hover:!no-underline hover:!bg-primary hover:text-white dark:hover:text-zinc-900" href="https://graphql.org/tags/announcements/">announcements</a></p>
<p class="_mt-6 _leading-7 first:_mt-0">Inviting innovators, decision-makers, and GraphQL aficionados alike! GraphQL Foundation are thrilled to announce the return of <a class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]" href="https://graphql.org/conf/2024/">GraphQLConf</a>, the much-anticipated official conference for anyone working with GraphQL. After a very successful inaugural conference last year, we are setting the stage for an even bigger event, returning once again to San Francisco — but this time to the heart of this vibrant city! Mark your calendars for September 10-12, 2024, as we invite you to join us at the stunning JW Marriott in San Francisco Union Square for a three-day celebration of learning, innovation, networking, and community.</p>
<h3 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-8 _text-2xl">? What To Expect?</h3>
<ul class="_mt-6 _list-disc first:_mt-0 ltr:_ml-6 rtl:_mr-6"><li class="_my-2"><strong>Production Insights:</strong> Gain exclusive insights into how leading companies of all sizes are leveraging GraphQL to drive innovation, streamline operations, and enhance their tech stack’s efficiency.</li>
<li class="_my-2"><strong>Access to Innovators:</strong> GraphQLConf offers a rare opportunity to meet the visionaries and maintainers behind GraphQL’s groundbreaking projects. Engage with the minds shaping the future of API technology.</li>
<li class="_my-2"><strong>Interactive Workshops:</strong> By popular demand, we’re bringing back a dedicated hands-on workshop day, allowing you to dive deep into practical GraphQL applications and techniques firsthand.</li>
<li class="_my-2"><strong>Diverse Perspectives:</strong> If GraphQL is on your radar, this is the place to sharpen your understanding, evaluate its impact, and envision its role in your organization’s future. Whether you’re CTO, architect, system integrator, API developer or frontend engineer, if it’s about GraphQL, we want to hear from you!</li>
<li class="_my-2"><strong>Prime Location:</strong> We’re moving from the outskirts to the beating heart of San Francisco! We’ll have the city’s dynamic vibe as our backdrop, with plenty of space for gathering, meeting, and collaborating.</li>
</ul><h3 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-8 _text-2xl">? Navigating API Innovation</h3>
<p class="_mt-6 _leading-7 first:_mt-0">For technology leaders navigating the complexities of modern API architectures, GraphQLConf 2024 is more than just a conference. It’s a strategic platform to foresee industry trends, meet the pioneers, and evaluate how GraphQL can fit into and enhance your technology strategy. Whether you’re assessing GraphQL for your next project, looking to optimize existing infrastructures, or keen to foster innovation within your team, GraphQLConf promises a wealth of knowledge and networking opportunities to help steer your decisions in the right direction.</p>
<h3 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-8 _text-2xl">? Call for Proposals (CFP) is OPEN!</h3>
<p class="_mt-6 _leading-7 first:_mt-0">Do you have a big idea, a transformative project, or an insightful case study? We want you on our stage! <a class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]" href="https://graphql.org/conf/2024/">The CFP is officially open</a>, and we’re on the lookout for speakers who can bring fresh perspectives and valuable knowledge to our community. Don’t miss this chance to showcase your expertise and contribute to the collective learning of the GraphQL ecosystem. Submit your proposal now—CFP closes on May 22, 2024, at 11:59 pm PDT.</p>
<h3 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-8 _text-2xl">?️ Snag Your Early Bird Tickets!</h3>
<p class="_mt-6 _leading-7 first:_mt-0">Early birds get the worm, or in this case, the best deal on tickets! Early bird registration is open until May 22, offering you the chance to secure your spot at a special rate. Don’t wait too long, though - we anticipate a sold-out event!</p>
<h3 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-8 _text-2xl">? Mark Your Calendars</h3>
<ul class="_mt-6 _list-disc first:_mt-0 ltr:_ml-6 rtl:_mr-6"><li class="_my-2"><strong>CFP Deadline:</strong> May 22, 2024, at 11:59 pm PDT</li>
<li class="_my-2"><strong>Early Bird Registration Ends:</strong> May 22, 2024</li>
<li class="_my-2"><strong>Schedule Announcement:</strong> June 26, 2024</li>
<li class="_my-2"><strong>Event Dates:</strong> September 10-12, 2024</li>
</ul><h3 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-8 _text-2xl">? Get Ready to Connect and Collaborate</h3>
<p class="_mt-6 _leading-7 first:_mt-0"><a class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]" href="https://graphql.org/conf/2024/">GraphQLConf 2024</a> is not just another tech conference; it’s a gathering of diverse and vibrant community members who are passionate about pushing the boundaries of GraphQL and building the future of APIs together. Whether you’re a seasoned GraphQL user, or just looking to understand how GraphQL can help your business, GraphQLConf is a can’t-miss opportunity to be part of this ecosystem.</p>
<p class="_mt-6 _leading-7 first:_mt-0">We can’t wait to see you in San Francisco! Stay tuned for more updates, and don’t forget to check out our conference page <a class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]" href="https://graphql.org/conf/2024/">here</a> for the latest news and announcements.</p>]]></description>
      <link>https://graphql.org/blog/2024-03-28-announcing-graphqlconf-2024</link>
      <guid>https://graphql.org/blog/2024-03-28-announcing-graphqlconf-2024</guid>
      <pubDate>Thu, 28 Mar 2024 01:00:00 +0100</pubDate>
    </item>
    <item>
      <title><![CDATA[Copilot Travel Joins the GraphQL Foundation]]></title>
      <description><![CDATA[We're thrilled to announce that Copilot Travel is now a General Member of the GraphQL Foundation. This partnership underscores our shared…]]></description>
      <link>http://graphql.org/blog/2024-03-12-welcome-copilot</link>
      <guid>http://graphql.org/blog/2024-03-12-welcome-copilot</guid>
      <pubDate>Tue, 12 Mar 2024 01:00:00 +0100</pubDate>
    </item>
    <item>
      <title><![CDATA[Copilot Travel Joins the GraphQL Foundation]]></title>
      <description><![CDATA[<main class="_w-full _min-w-0 _max-w-6xl _px-6 _pt-4 md:_px-12">
<p><time datetime="2024-03-12T00:00:00.000Z">March 12, 2024</time> by Jory Burson</p>
<p><a class="transition-colors py-1 px-2.5 capitalize rounded bg-zinc-200 dark:bg-zinc-700 font-bold hover:!no-underline hover:!bg-primary hover:text-white dark:hover:text-zinc-900" href="https://graphql.org/tags/blog/">blog</a></p>
<p class="_mt-6 _leading-7 first:_mt-0">We’re thrilled to announce that Copilot Travel is now a General Member of the GraphQL Foundation. This partnership underscores our shared commitment to driving innovation and collaboration within the GraphQL ecosystem.</p>
<p class="_mt-6 _leading-7 first:_mt-0">With Copilot Travel’s expertise in leveraging cutting-edge technologies to enhance the travel experience, their involvement will undoubtedly enrich our community. Together, we anticipate active participation in working groups, contributions to open-source projects, and collaborative efforts to advance GraphQL adoption across various industries.</p>
<p class="_mt-6 _leading-7 first:_mt-0">At the GraphQL Foundation, we recognize the transformative power of collaboration in shaping the future of technology. With Copilot Travel on board, we’re excited to embark on this journey of exploration and innovation, unlocking new possibilities for GraphQL in the connected travel industry.</p>
<p class="_mt-6 _leading-7 first:_mt-0">Check out our Landscape to learn more about our <a href="https://graphql.org/foundation/members/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Member organizations</a> and how other companies leverage GraphQL: <a href="https://landscape.graphql.org/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">https://landscape.graphql.org/</a></p>
</main>]]></description>
      <link>https://graphql.org/blog/2024-03-12-welcome-copilot</link>
      <guid>https://graphql.org/blog/2024-03-12-welcome-copilot</guid>
      <pubDate>Tue, 12 Mar 2024 01:00:00 +0100</pubDate>
    </item>
    <item>
      <title><![CDATA[Supporting Contributors: The GraphQL Community Grant Program Refresh]]></title>
      <description><![CDATA[<p><time datetime="2024-03-07T00:00:00.000Z">March 7, 2024</time> by Jory Burson and Benjie Gillam</p><p><a class="transition-colors py-1 px-2.5 capitalize rounded bg-zinc-200 dark:bg-zinc-700 font-bold hover:!no-underline hover:!bg-primary hover:text-white dark:hover:text-zinc-900" href="https://graphql.org/tags/blog/">blog</a></p>
<p class="_mt-6 _leading-7 first:_mt-0">The GraphQL Foundation is thrilled to announce significant updates to our Community Grant Program, now more streamlined and aligned with the foundation’s core projects!</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Improved process</h2>
<p class="_mt-6 _leading-7 first:_mt-0">We’ve revamped the application process to accept submissions year-round, ensuring your innovative ideas get the attention they deserve promptly. Our focus is sharper than ever, with grants specifically aimed at projects tied closely to the GraphQL Foundation’s efforts, including code and documentation contributions to <a href="https://github.com/graphql" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">our repositories on GitHub</a> and enhancements to the <a href="https://graphql.org" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">graphql.org</a> website.</p>
<p class="_mt-6 _leading-7 first:_mt-0">Rather than our previous twice-annual review process, our new process will perform basic appropriateness checks on a much higher cadence, and will pass suitable applications to the TSC for review. This should result in faster turnaround times, ensuring that your critical work gets the support it needs when it needs it!</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Apply now!</h2>
<p class="_mt-6 _leading-7 first:_mt-0">Whether it’s completing an important RFC task, polishing a major pull request, educating users with excellent content and documentation, engaging in community advocacy, or improving the user experience on our platforms, we’re looking for your unique contributions. Don’t miss this chance to make an impact on the GraphQL ecosystem.</p>
<p class="_mt-6 _leading-7 first:_mt-0">For a detailed overview of the grant scope, application guidelines, and how your project can contribute to the GraphQL community, we invite you to visit <a href="https://graphql.org/foundation/community-grant/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">our dedicated program page</a>.</p>
<p class="_mt-6 _leading-7 first:_mt-0">Join us in shaping the future of GraphQL; <a href="https://graphql.org/foundation/community-grant/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">apply today</a> and make your mark!</p>]]></description>
      <link>https://graphql.org/blog/2024-03-07-graphql-community-grant-refresh</link>
      <guid>https://graphql.org/blog/2024-03-07-graphql-community-grant-refresh</guid>
      <pubDate>Thu, 07 Mar 2024 01:00:00 +0100</pubDate>
    </item>
    <item>
      <title><![CDATA[Supporting Contributors: The GraphQL Community Grant Program Refresh]]></title>
      <description><![CDATA[<p>3/7/2024 by Jory Burson and Benjie Gillam</p><p><a href="http://graphql.org/tags/blog/">blog</a></p><div><p>The GraphQL Foundation is thrilled to announce significant updates to our Community Grant Program, now more streamlined and aligned with the foundation's core projects!</p><h2>Improved process<a class="hash-link" href="http://graphql.org/blog/2024-03-07-graphql-community-grant-refresh#improved-process">#</a></h2><p>We've revamped the application process to accept submissions year-round, ensuring your innovative ideas get the attention they deserve promptly. Our focus is sharper than ever, with grants specifically aimed at projects tied closely to the GraphQL Foundation's efforts, including code and documentation contributions to <a href="https://github.com/graphql" target="_blank" rel="nofollow noopener noreferrer">our repositories on GitHub</a> and enhancements to the <a href="https://graphql.org" target="_blank" rel="nofollow noopener noreferrer">graphql.org</a> website.</p><p>Rather than our previous twice-annual review process, our new process will perform basic appropriateness checks on a much higher cadence, and will pass suitable applications to the TSC for review. This should result in faster turnaround times, ensuring that your critical work gets the support it needs when it needs it!</p><h2>Apply now!<a class="hash-link" href="http://graphql.org/blog/2024-03-07-graphql-community-grant-refresh#apply-now">#</a></h2><p>Whether it's completing an important RFC task, polishing a major pull request, educating users with excellent content and documentation, engaging in community advocacy, or improving the user experience on our platforms, we're looking for your unique contributions. Don't miss this chance to make an impact on the GraphQL ecosystem.</p><p>For a detailed overview of the grant scope, application guidelines, and how your project can contribute to the GraphQL community, we invite you to visit <a href="https://graphql.org/foundation/community-grant/" target="_blank" rel="nofollow noopener noreferrer">our dedicated program page</a>.</p><p>Join us in shaping the future of GraphQL; <a href="https://graphql.org/foundation/community-grant/" target="_blank" rel="nofollow noopener noreferrer">apply today</a> and make your mark!</p></div>]]></description>
      <link>http://graphql.org/blog/2024-03-07-graphql-community-grant-refresh</link>
      <guid>http://graphql.org/blog/2024-03-07-graphql-community-grant-refresh</guid>
      <pubDate>Thu, 07 Mar 2024 01:00:00 +0100</pubDate>
    </item>
    <item>
      <title><![CDATA[GraphQL TSC Election Results]]></title>
      <description><![CDATA[<p><time datetime="2024-01-23T00:00:00.000Z">January 23, 2024</time> by Jory Burson and Benjie Gillam</p><p><a class="transition-colors py-1 px-2.5 capitalize rounded bg-zinc-200 dark:bg-zinc-700 font-bold hover:!no-underline hover:!bg-primary hover:text-white dark:hover:text-zinc-900" href="https://graphql.org/tags/blog/">blog</a></p>
<p class="_mt-6 _leading-7 first:_mt-0">We are pleased to announce the results of this year’s GraphQL Technical Steering Committee (TSC) elections. Every year, five of the ten TSC seats are up for election, and this year has seen some changes in the committee lineup.</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Outgoing Member: Marc-André Giroux</h2>
<p class="_mt-6 _leading-7 first:_mt-0">Firstly, we would like to extend our gratitude to <a href="https://github.com/xuorig" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Marc-André Giroux</a>, who chose not to seek re–election this year. Marc-André has been a valuable member of the TSC, contributing significantly to the GraphQL ecosystem. We appreciate his dedication to the GraphQL Foundation!</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Continuing Members: Benjie Gillam, Ivan Goncharov, Matt Mohoney, and Michael Staib</h2>
<p class="_mt-6 _leading-7 first:_mt-0">We are pleased to announce that the four other TSC members whose seats were up for election — <a href="https://github.com/benjie" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Benjie Gillam</a>, <a href="https://github.com/IvanGoncharov" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Ivan Goncharov</a>, <a href="https://github.com/mjmahone" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Matt Mohoney</a>, and <a href="https://github.com/michaelstaib" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Michael Staib</a> — have been re–elected and will continue to serve on the TSC. Their ongoing commitment and expertise will undoubtedly contribute to the continued success of GraphQL.</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Welcoming Denis Badurina</h2>
<p class="_mt-6 _leading-7 first:_mt-0">Joining the TSC this year is <a href="https://github.com/enisdenjo" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Denis Badurina</a>, who will be filling the seat vacated by Marc-André Giroux. You may know Denis from his work on the  project, the reference implementation of GraphQL-over-HTTP and a test suite to help ensure compliance across all the servers in the ecosystem. Denis brings a wealth of experience and a fresh perspective to the committee, and we look forward to working with him to shape the future of GraphQL.</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">About the GraphQL TSC</h2>
<p class="_mt-6 _leading-7 first:_mt-0">Composed of ten elected members and led by Executive Director Lee Byron, the <a href="https://github.com/graphql/graphql-wg/blob/main/GraphQL-TSC.md" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphQL Technical Steering Committee</a> is responsible for technical oversight for all of the GraphQL Foundation’s open source projects, both software and specifications. However, we believe in the power of collaboration and recognize that impactful contributions can come from all corners of our community. While the TSC plays a crucial role in overseeing the technical aspects of our projects, we want to emphasize that one doesn’t need to be a TSC member to make a significant impact.</p>
<p class="_mt-6 _leading-7 first:_mt-0">We actively encourage working groups to manage themselves autonomously, fostering a sense of ownership and innovation within each group. The TSC is here to provide support and guidance, and to perform administrative actions that cannot be delegated. We value the diverse talents and expertise within our community, and we believe that every individual has the potential to contribute meaningfully to the success of our projects.</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Expressing Gratitude</h2>
<p class="_mt-6 _leading-7 first:_mt-0">We would like to express our gratitude to everyone who participated in the election process, especially the candidates who stepped forward — your involvement is vital to the success of the GraphQL ecosystem.</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Looking Ahead</h2>
<p class="_mt-6 _leading-7 first:_mt-0">As we move forward, the GraphQL TSC remains dedicated to fostering collaboration, inclusivity, and technical excellence within the GraphQL community. We are excited about the future of GraphQL and the continued impact it will have on API development and beyond; if you’re interested in helping us on this mission then <a href="https://github.com/graphql/graphql-wg/blob/main/JoiningAMeeting.md" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">get involved in the GraphQL Working Group</a> and maybe even consider nominating yourself for a TSC position in the December election!</p>]]></description>
      <link>https://graphql.org/blog/2024-01-23-graphql-tsc-election-results</link>
      <guid>https://graphql.org/blog/2024-01-23-graphql-tsc-election-results</guid>
      <pubDate>Tue, 23 Jan 2024 01:00:00 +0100</pubDate>
    </item>
    <item>
      <title><![CDATA[GraphQL TSC Election Results]]></title>
      <description><![CDATA[<p>We are pleased to announce the results of this year's GraphQL Technical Steering Committee (TSC) elections. Every year, five of the ten TSC seats are up for election, and this year has seen some changes in the committee lineup.</p><h2>Outgoing Member: Marc-André Giroux<a class="hash-link" href="http://graphql.org/blog/2024-01-23-graphql-tsc-election-results#outgoing-member-marc-andre-giroux">#</a></h2><p>Firstly, we would like to extend our gratitude to <a href="https://github.com/xuorig" target="_blank" rel="nofollow noopener noreferrer">Marc-André Giroux</a>, who chose not to seek re–election this year. Marc-André has been a valuable member of the TSC, contributing significantly to the GraphQL ecosystem. We appreciate his dedication to the GraphQL Foundation!</p><h2>Continuing Members: Benjie Gillam, Ivan Goncharov, Matt Mohoney, and Michael Staib<a class="hash-link" href="http://graphql.org/blog/2024-01-23-graphql-tsc-election-results#continuing-members-benjie-gillam-ivan-goncharov-matt-mohoney-and-michael-staib">#</a></h2><p>We are pleased to announce that the four other TSC members whose seats were up for election — <a href="https://github.com/benjie" target="_blank" rel="nofollow noopener noreferrer">Benjie Gillam</a>, <a href="https://github.com/IvanGoncharov" target="_blank" rel="nofollow noopener noreferrer">Ivan Goncharov</a>, <a href="https://github.com/mjmahone" target="_blank" rel="nofollow noopener noreferrer">Matt Mohoney</a>, and <a href="https://github.com/michaelstaib" target="_blank" rel="nofollow noopener noreferrer">Michael Staib</a> — have been re–elected and will continue to serve on the TSC. Their ongoing commitment and expertise will undoubtedly contribute to the continued success of GraphQL.</p><h2>Welcoming Denis Badurina<a class="hash-link" href="http://graphql.org/blog/2024-01-23-graphql-tsc-election-results#welcoming-denis-badurina">#</a></h2><p>Joining the TSC this year is <a href="https://github.com/enisdenjo" target="_blank" rel="nofollow noopener noreferrer">Denis Badurina</a>, who will be filling the seat vacated by Marc-André Giroux. You may know Denis from his work on the <code>graphql-http</code> project, the reference implementation of GraphQL-over-HTTP and a test suite to help ensure compliance across all the servers in the ecosystem. Denis brings a wealth of experience and a fresh perspective to the committee, and we look forward to working with him to shape the future of GraphQL.</p><h2>About the GraphQL TSC<a class="hash-link" href="http://graphql.org/blog/2024-01-23-graphql-tsc-election-results#about-the-graphql-tsc">#</a></h2><p>Composed of ten elected members and led by Executive Director Lee Byron, the <a href="https://github.com/graphql/graphql-wg/blob/main/GraphQL-TSC.md" target="_blank" rel="nofollow noopener noreferrer">GraphQL Technical Steering Committee</a> is responsible for technical oversight for all of the GraphQL Foundation's open source projects, both software and specifications. However, we believe in the power of collaboration and recognize that impactful contributions can come from all corners of our community. While the TSC plays a crucial role in overseeing the technical aspects of our projects, we want to emphasize that one doesn't need to be a TSC member to make a significant impact.</p><p>We actively encourage working groups to manage themselves autonomously, fostering a sense of ownership and innovation within each group. The TSC is here to provide support and guidance, and to perform administrative actions that cannot be delegated. We value the diverse talents and expertise within our community, and we believe that every individual has the potential to contribute meaningfully to the success of our projects.</p><h2>Expressing Gratitude<a class="hash-link" href="http://graphql.org/blog/2024-01-23-graphql-tsc-election-results#expressing-gratitude">#</a></h2><p>We would like to express our gratitude to everyone who participated in the election process, especially the candidates who stepped forward — your involvement is vital to the success of the GraphQL ecosystem.</p><h2>Looking Ahead<a class="hash-link" href="http://graphql.org/blog/2024-01-23-graphql-tsc-election-results#looking-ahead">#</a></h2><p>As we move forward, the GraphQL TSC remains dedicated to fostering collaboration, inclusivity, and technical excellence within the GraphQL community. We are excited about the future of GraphQL and the continued impact it will have on API development and beyond; if you're interested in helping us on this mission then <a href="https://github.com/graphql/graphql-wg/blob/main/JoiningAMeeting.md" target="_blank" rel="nofollow noopener noreferrer">get involved in the GraphQL Working Group</a> and maybe even consider nominating yourself for a TSC position in the December election!</p>]]></description>
      <link>http://graphql.org/blog/2024-01-23-graphql-tsc-election-results</link>
      <guid>http://graphql.org/blog/2024-01-23-graphql-tsc-election-results</guid>
      <pubDate>Tue, 23 Jan 2024 01:00:00 +0100</pubDate>
    </item>
    <item>
      <title><![CDATA[Announcing the GraphQL Foundation's Grant Awardees: Benefitting a GraphQL Ecosystem for All]]></title>
      <description><![CDATA[<p><time datetime="2024-01-17T00:00:00.000Z">January 17, 2024</time> by Jory Burson and Benjie Gillam</p><p><a class="transition-colors py-1 px-2.5 capitalize rounded bg-zinc-200 dark:bg-zinc-700 font-bold hover:!no-underline hover:!bg-primary hover:text-white dark:hover:text-zinc-900" href="https://graphql.org/tags/blog/">blog</a></p>
<p class="_mt-6 _leading-7 first:_mt-0">We are thrilled to announce the recipients of grants from the GraphQL Foundation, which were selected from an application process initiated in late 2022. Awardees were selected after an extensive review and vote of the GraphQL TSC. These grant awards recognize and support important projects that advance GraphQL technologies, particularly in the realms of GraphQL over HTTP and the GraphQL Language Service Server.</p>
<p class="_mt-6 _leading-7 first:_mt-0"><strong>Bolstering GraphQL over HTTP — Denis Badurina</strong></p>
<p class="_mt-6 _leading-7 first:_mt-0">The first grant has been awarded to a project focussed on increasing interoperability between the various implementations of GraphQL clients and servers using HTTP as the transport layer. The <a href="https://github.com/graphql/graphql-over-http" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphQL–over–HTTP subcommittee</a> was formed with the goal of writing a specification to increase interoperability between clients and servers that expose GraphQL schemas via HTTP endpoints. At a <a href="https://github.com/graphql/graphql-wg/blob/main/notes/2023/2023-11.md#graphql-over-http-is-advancing-to-stage-2-5m-benjie" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">recent GraphQL Working Group</a>, the GraphQL–over–HTTP spec was advanced to Stage 2 (Draft) status. This achievement was thanks in a large part to <a href="https://github.com/enisdenjo" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Denis Badurina</a>’s development and maintenance of the reference implementation of the GraphQL–over–HTTP specification: <a href="https://github.com/graphql/graphql-http" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">graphql-http</a> and the associated <a href="https://graphql-http.com/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">testing tool</a>. This tool can be used to test if any GraphQL API is compliant with the GraphQL–over–HTTP specification, no matter what language it is written in. Denis has worked tirelessly with maintainers of various servers to ensure that the tool, the server, and the specification are aligned.</p>
<p class="_mt-6 _leading-7 first:_mt-0">This grant will enable Denis to continue to invest into maintenance and development of this important project for GraphQL interoperability and collaboration. When informed he was to be a grant awardee, Denis said: “this is awesome news! I’ll start by saying thank you. I am very humbled, excited and happy that my work has a worthwhile impact on the GraphQL ecosystem. Thank you for choosing me, I will continue doing my best.”</p>
<p class="_mt-6 _leading-7 first:_mt-0"><strong>Future–proofing the GraphQL Language Service Server — Rikki Schulte</strong></p>
<p class="_mt-6 _leading-7 first:_mt-0">The second grant recognizes a project that is vital for consumers of GraphQL. One of the most popular tools in the GraphQL toolbox is <a href="https://github.com/graphql/graphiql/blob/a80801970e095e493eb0fda7687766f103bf701e/packages/graphiql/README.md" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphiQL</a> — our in–browser IDE that enables exploring and querying a GraphQL API. It’s often the first experience that potential users have with GraphQL, and very quickly helps them to “<a href="https://dictionary.cambridge.org/dictionary/english/grok" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">grok</a>” some core concepts such as the built in documentation, type safety, and only receiving what you ask for. Underlying this beautifully simple interface is a powerful and complex combination of tools and libraries which also power other projects such as alternative GraphQL IDEs and code editor integrations. Key to this is the GraphQL Language Server and associated libraries.</p>
<p class="_mt-6 _leading-7 first:_mt-0"><a href="https://github.com/acao" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Rikki Schulte</a>, one of the long term maintainers of GraphiQL and the associated projects, is the recipient of this second grant. The grant will support her to improve the stability and maintainability of the GraphQL Language Server by providing a more comprehensive end–to–end test suite which should enable an overhaul of its aging architecture. Building on the Language Server’s existing schema–aware auto–complete, jump to definition, and real–time error feedback; the ultimate goal of the Language Server project is to give all GraphQL programmers access to advanced features such as support for more languages and sophisticated refactoring tools whilst keeping astride of advances to the GraphQL specification itself.</p>
<p class="_mt-6 _leading-7 first:_mt-0">What makes this project particularly exciting is its commitment to making GraphQL development more accessible and efficient. By providing tools that integrate seamlessly into existing development environments, Rikki hopes to lower the barrier to entry for new GraphQL developers and increase productivity for seasoned professionals. Rikki commented:</p>
<p class="_mt-6 _leading-7 first:_mt-0">“I’m thrilled to receive this grant, as it will help me to focus on improving the stability and maintainability of the LSP server and vscode reference implementation, so that we can refactor for improved performance and contributor experience, and to introduce new exciting features with greater confidence. I owe it all to the GraphQL community!”</p>
<p class="_mt-6 _leading-7 first:_mt-0"><strong>A Commitment to Ecosystem and Community Growth</strong></p>
<p class="_mt-6 _leading-7 first:_mt-0">Both projects embody the GraphQL Foundation’s commitment to open source and community–driven development. By supporting these initiatives, the foundation is not only investing in individual technologies but also in the broader GraphQL community. These grants will facilitate collaboration, knowledge sharing and innovation, fostering a vibrant ecosystem around GraphQL.</p>
<p class="_mt-6 _leading-7 first:_mt-0">In recognition of the work required to tend to such an ecosystem, the GraphQL Foundation together with the TSC has also funded <a href="https://github.com/benjie" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Benjie Gillam</a> to support the crucial “gardening” work that helps keep the GraphQL community moving forward, together. Benjie will continue to serve as our Community Manager in 2024 on contract with the Foundation, commenting:</p>
<p class="_mt-6 _leading-7 first:_mt-0">“It has been a joy and a privilege helping to cultivate the vibrant ecosystem of the GraphQL community, and this support from the GraphQL Foundation will help me to continue this work: welcoming new members, fostering collaboration across the Foundation’s own projects and beyond, and helping the wheels of progress to keep turning smoothly. Thank you GraphQL community!”</p>
<p class="_mt-6 _leading-7 first:_mt-0"><strong>Looking Forward</strong></p>
<p class="_mt-6 _leading-7 first:_mt-0">As we celebrate the recipients of this year’s grants, we also look forward to the impact their work will have on the GraphQL community and the tech industry at large. Their projects are not just about advancing individual technologies; they are about shaping the future of how we build and interact with GraphQL APIs.</p>
<p class="_mt-6 _leading-7 first:_mt-0">The GraphQL Foundation is proud to support these talented individuals and teams, and we are excited to see their projects come to fruition. We believe their work will be instrumental in driving the next wave of innovation in GraphQL technology.</p>
<p class="_mt-6 _leading-7 first:_mt-0">Stay tuned for updates on these projects and their contributions to the GraphQL ecosystem. We are just at the beginning of a new chapter in GraphQL’s story, and the best is yet to come!</p>]]></description>
      <link>https://graphql.org/blog/2024-01-17-announcing-grant-awardees</link>
      <guid>https://graphql.org/blog/2024-01-17-announcing-grant-awardees</guid>
      <pubDate>Wed, 17 Jan 2024 01:00:00 +0100</pubDate>
    </item>
    <item>
      <title><![CDATA[Announcing the GraphQL Foundation's Grant Awardees: Benefitting a GraphQL Ecosystem for All]]></title>
      <description><![CDATA[<p>We are thrilled to announce the recipients of grants from the GraphQL Foundation, which were selected from an application process initiated in late 2022. Awardees were selected after an extensive review and vote of the GraphQL TSC. These grant awards recognize and support important projects that advance GraphQL technologies, particularly in the realms of GraphQL over HTTP and the GraphQL Language Service Server.</p><p><strong>Bolstering GraphQL over HTTP — Denis Badurina</strong></p><p>The first grant has been awarded to a project focussed on increasing interoperability between the various implementations of GraphQL clients and servers using HTTP as the transport layer. The <a href="https://github.com/graphql/graphql-over-http" target="_blank" rel="nofollow noopener noreferrer">GraphQL–over–HTTP subcommittee</a> was formed with the goal of writing a specification to increase interoperability between clients and servers that expose GraphQL schemas via HTTP endpoints. At a <a href="https://github.com/graphql/graphql-wg/blob/main/notes/2023/2023-11.md#graphql-over-http-is-advancing-to-stage-2-5m-benjie" target="_blank" rel="nofollow noopener noreferrer">recent GraphQL Working Group</a>, the GraphQL–over–HTTP spec was advanced to Stage 2 (Draft) status. This achievement was thanks in a large part to <a href="https://github.com/enisdenjo" target="_blank" rel="nofollow noopener noreferrer">Denis Badurina</a>'s development and maintenance of the reference implementation of the GraphQL–over–HTTP specification: <a href="https://github.com/graphql/graphql-http" target="_blank" rel="nofollow noopener noreferrer">graphql-http</a> and the associated <a href="https://graphql-http.com/" target="_blank" rel="nofollow noopener noreferrer">testing tool</a>. This tool can be used to test if any GraphQL API is compliant with the GraphQL–over–HTTP specification, no matter what language it is written in. Denis has worked tirelessly with maintainers of various servers to ensure that the tool, the server, and the specification are aligned.</p><p>This grant will enable Denis to continue to invest into maintenance and development of this important project for GraphQL interoperability and collaboration. When informed he was to be a grant awardee, Denis said: "this is awesome news! I'll start by saying thank you. I am very humbled, excited and happy that my work has a worthwhile impact on the GraphQL ecosystem. Thank you for choosing me, I will continue doing my best."</p><p><strong>Future–proofing the GraphQL Language Service Server — Rikki Schulte</strong></p><p>The second grant recognizes a project that is vital for consumers of GraphQL. One of the most popular tools in the GraphQL toolbox is <a href="https://github.com/graphql/graphiql/blob/a80801970e095e493eb0fda7687766f103bf701e/packages/graphiql/README.md" target="_blank" rel="nofollow noopener noreferrer">GraphiQL</a> — our in–browser IDE that enables exploring and querying a GraphQL API. It's often the first experience that potential users have with GraphQL, and very quickly helps them to "<a href="https://dictionary.cambridge.org/dictionary/english/grok" target="_blank" rel="nofollow noopener noreferrer">grok</a>" some core concepts such as the built in documentation, type safety, and only receiving what you ask for. Underlying this beautifully simple interface is a powerful and complex combination of tools and libraries which also power other projects such as alternative GraphQL IDEs and code editor integrations. Key to this is the GraphQL Language Server and associated libraries.</p><p><a href="https://github.com/acao" target="_blank" rel="nofollow noopener noreferrer">Rikki Schulte</a>, one of the long term maintainers of GraphiQL and the associated projects, is the recipient of this second grant. The grant will support her to improve the stability and maintainability of the GraphQL Language Server by providing a more comprehensive end–to–end test suite which should enable an overhaul of its aging architecture. Building on the Language Server's existing schema–aware auto–complete, jump to definition, and real–time error feedback; the ultimate goal of the Language Server project is to give all GraphQL programmers access to advanced features such as support for more languages and sophisticated refactoring tools whilst keeping astride of advances to the GraphQL specification itself.</p><p>What makes this project particularly exciting is its commitment to making GraphQL development more accessible and efficient. By providing tools that integrate seamlessly into existing development environments, Rikki hopes to lower the barrier to entry for new GraphQL developers and increase productivity for seasoned professionals. Rikki commented:</p><p>"I'm thrilled to receive this grant, as it will help me to focus on improving the stability and maintainability of the LSP server and vscode reference implementation, so that we can refactor for improved performance and contributor experience, and to introduce new exciting features with greater confidence. I owe it all to the GraphQL community!"</p><p><strong>A Commitment to Ecosystem and Community Growth</strong></p><p>Both projects embody the GraphQL Foundation's commitment to open source and community–driven development. By supporting these initiatives, the foundation is not only investing in individual technologies but also in the broader GraphQL community. These grants will facilitate collaboration, knowledge sharing and innovation, fostering a vibrant ecosystem around GraphQL.</p><p>In recognition of the work required to tend to such an ecosystem, the GraphQL Foundation together with the TSC has also funded <a href="https://github.com/benjie" target="_blank" rel="nofollow noopener noreferrer">Benjie Gillam</a> to support the crucial “gardening” work that helps keep the GraphQL community moving forward, together. Benjie will continue to serve as our Community Manager in 2024 on contract with the Foundation, commenting:</p><p>"It has been a joy and a privilege helping to cultivate the vibrant ecosystem of the GraphQL community, and this support from the GraphQL Foundation will help me to continue this work: welcoming new members, fostering collaboration across the Foundation's own projects and beyond, and helping the wheels of progress to keep turning smoothly. Thank you GraphQL community!"</p><p><strong>Looking Forward</strong></p><p>As we celebrate the recipients of this year's grants, we also look forward to the impact their work will have on the GraphQL community and the tech industry at large. Their projects are not just about advancing individual technologies; they are about shaping the future of how we build and interact with GraphQL APIs.</p><p>The GraphQL Foundation is proud to support these talented individuals and teams, and we are excited to see their projects come to fruition. We believe their work will be instrumental in driving the next wave of innovation in GraphQL technology.</p><p>Stay tuned for updates on these projects and their contributions to the GraphQL ecosystem. We are just at the beginning of a new chapter in GraphQL's story, and the best is yet to come!</p>]]></description>
      <link>http://graphql.org/blog/2024-01-17-announcing-grant-awardees</link>
      <guid>http://graphql.org/blog/2024-01-17-announcing-grant-awardees</guid>
      <pubDate>Wed, 17 Jan 2024 01:00:00 +0100</pubDate>
    </item>
    <item>
      <title><![CDATA[Announcing the Schedule for GraphQLConf]]></title>
      <description><![CDATA[<p><time datetime="2023-08-24T00:00:00.000Z">August 24, 2023</time> by Jory Burson</p><p><a class="transition-colors py-1 px-2.5 capitalize rounded bg-zinc-200 dark:bg-zinc-700 font-bold hover:!no-underline hover:!bg-primary hover:text-white dark:hover:text-zinc-900" href="https://graphql.org/tags/blog/">blog</a></p>
<p class="_mt-6 _leading-7 first:_mt-0"><em>The inaugural event for the GraphQL Foundation, GraphQLConf, delivers the best GraphQL content available.</em></p>
<p class="_mt-6 _leading-7 first:_mt-0"><strong>SAN FRANCISCO, August 24, 2023</strong> – The GraphQL Foundation, dedicated to promoting widespread adoption and accelerating development of the surrounding ecosystem, today announced the schedule for <a href="https://graphql.org/conf/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphQLConf 2023</a>. The conference will be held in the San Francisco Bay area, CA, September 19-21, 2023.</p>
<p class="_mt-6 _leading-7 first:_mt-0">GraphQLConf brings together the creators of some of the most important technologies behind GraphQL. Speakers from a wide range of organizations working with GraphQL at enterprise scale will share their experience, insights and knowledge as they discuss the challenges facing the growing GraphQL ecosystem. The program was developed by a community-led committee, which selected over 60 sessions after an open CFP that produced a large and diverse set of submissions that span topics from technical challenges and deep dives to end-user stories and introductory content.</p>
<p class="_mt-6 _leading-7 first:_mt-0">“This event is a truly special moment for the GraphQL community,” said Lee Byron, Co-creator of GraphQL and Executive Director of the GraphQL Foundation. “GraphQLConf is the only vendor-agnostic, community-focused conference for developers. We’re thrilled to bring everyone together and celebrate big milestones for our projects and the spec.”</p>
<p class="_mt-6 _leading-7 first:_mt-0">The GraphQLConf community-curated <a href="https://graphql.org/conf/schedule/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">schedule</a> will feature talks from leaders in the industry, and will focus on the most important and relevant topics facing the ecosystem, such as new specifications and features, GraphQL Gateways, GraphQL Security, interoperability between GraphQL and other API protocols, Generative AI and GraphQL performance, caching and no-code tools.</p>
<p class="_mt-6 _leading-7 first:_mt-0">Keynote sessions from developer-entrepreneurs Idit Levine, Marc-Andre Giroux, Tanmai Gopal, and Theo Browne will be featured, along with workshops and breakout sessions on using GraphQL across tech stacks, languages, and deployment technologies. There will also be community-driven unconference sessions held on Sept. 19.</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Registration</h2>
<p class="_mt-6 _leading-7 first:_mt-0">GraphQLConf will be held at the Hyatt Regency SFO September 19-21 and registration is open at <a href="https://graphql.org/conf" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">https://graphql.org/conf</a>. Attendees are encouraged to <a href="https://graphql.org/conf/#attend" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">register</a> for in-person attendance by September 4 before prices increase.</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Thank You to Our Sponsors</h2>
<p class="_mt-6 _leading-7 first:_mt-0">GraphQLConf is made possible with support from our Diamond Sponsors: <a href="https://hasura.io" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Hasura</a>, <a href="https://postman.com" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Postman</a>, and <a href="https://the-guild.dev" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">The Guild</a>, Platinum Sponsors: <a href="https://hygraph.com" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Hygraph</a> and <a href="https://solo.io" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Solo.io</a>, and Gold Sponsors: <a href="https://stepzen.com" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">StepZen</a>, <a href="https://inigo.io" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Inigo</a>, and <a href="https://thegraph.com" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">The Graph</a>.</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">About the GraphQL Foundation</h2>
<p class="_mt-6 _leading-7 first:_mt-0">The GraphQL Foundation is a neutral foundation founded by global technology and application development companies. The GraphQL Foundation encourages contributions, stewardship, and a shared investment from a broad group in vendor-neutral events, documentation, tools, and support for GraphQL.</p>
<p class="_mt-6 _leading-7 first:_mt-0">GraphQL was created in 2012 and open sourced by Facebook in 2015. In 2019, Facebook and others created the GraphQL Foundation as a neutral, non-profit home for the GraphQL assets and ongoing collaboration, and hosted by The Linux Foundation. The GraphQL Foundation is a fully neutral home for the GraphQL trademark, and provides a means of collecting and distributing membership dues to support core community infrastructure and programs. For more information about the GraphQL Foundation, please visit <a href="https://graphql.org" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">https://graphql.org</a>.</p>
<hr class="_my-8 _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400" /><p class="_mt-6 _leading-7 first:_mt-0">The Linux Foundation has registered trademarks and uses trademarks. For a list of trademarks of The Linux Foundation, please see our trademark usage page. Linux is a registered trademark of Linus Torvalds.</p>
<p class="_mt-6 _leading-7 first:_mt-0">Media Contact</p>
<p class="_mt-6 _leading-7 first:_mt-0">Jory Burson</p>
<p class="_mt-6 _leading-7 first:_mt-0">Linux Foundation</p>
<p class="_mt-6 _leading-7 first:_mt-0"><a class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]" href="mailto:jburson@linuxfoundation.org">jburson@linuxfoundation.org</a></p>]]></description>
      <link>https://graphql.org/blog/2023-08-24-announcing-the-schedule-for-graphqlconf</link>
      <guid>https://graphql.org/blog/2023-08-24-announcing-the-schedule-for-graphqlconf</guid>
      <pubDate>Thu, 24 Aug 2023 02:00:00 +0200</pubDate>
    </item>
    <item>
      <title><![CDATA[Announcing the Schedule for GraphQLConf]]></title>
      <description><![CDATA[<p><em>The inaugural event for the GraphQL Foundation, GraphQLConf, delivers the best GraphQL content available.</em></p><p><strong>SAN FRANCISCO, August 24, 2023</strong> – The GraphQL Foundation, dedicated to promoting widespread adoption and accelerating development of the surrounding ecosystem, today announced the schedule for <a href="https://graphql.org/conf/" target="_blank" rel="nofollow noopener noreferrer">GraphQLConf 2023</a>. The conference will be held in the San Francisco Bay area, CA, September 19-21, 2023.</p><p>GraphQLConf brings together the creators of some of the most important technologies behind GraphQL. Speakers from a wide range of organizations working with GraphQL at enterprise scale will share their experience, insights and knowledge as they discuss the challenges facing the growing GraphQL ecosystem. The program was developed by a community-led committee, which selected over 60 sessions after an open CFP that produced a large and diverse set of submissions that span topics from technical challenges and deep dives to end-user stories and introductory content.</p><p>“This event is a truly special moment for the GraphQL community,” said Lee Byron, Co-creator of GraphQL and Executive Director of the GraphQL Foundation. “GraphQLConf is the only vendor-agnostic, community-focused conference for developers. We’re thrilled to bring everyone together and celebrate big milestones for our projects and the spec.”</p><p>The GraphQLConf community-curated <a href="https://graphql.org/conf/schedule/" target="_blank" rel="nofollow noopener noreferrer">schedule</a> will feature talks from leaders in the industry, and will focus on the most important and relevant topics facing the ecosystem, such as new specifications and features, GraphQL Gateways, GraphQL Security, interoperability between GraphQL and other API protocols, Generative AI and GraphQL performance, caching and no-code tools.</p><p>Keynote sessions from developer-entrepreneurs Idit Levine, Marc-Andre Giroux, Tanmai Gopal, and Theo Browne will be featured, along with workshops and breakout sessions on using GraphQL across tech stacks, languages, and deployment technologies. There will also be community-driven unconference sessions held on Sept. 19.</p><h3>Registration<a class="hash-link" href="http://graphql.org/blog/2023-08-24-announcing-the-schedule-for-graphqlconf#registration">#</a></h3><p>GraphQLConf will be held at the Hyatt Regency SFO September 19-21 and registration is open at <a href="https://graphql.org/conf/">https://graphql.org/conf/</a>. Attendees are encouraged to <a href="https://graphql.org/conf/#attend" target="_blank" rel="nofollow noopener noreferrer">register</a> for in-person attendance by September 4 before prices increase.</p><h3>Thank You to Our Sponsors<a class="hash-link" href="http://graphql.org/blog/2023-08-24-announcing-the-schedule-for-graphqlconf#thank-you-to-our-sponsors">#</a></h3><p>GraphQLConf is made possible with support from our Diamond Sponsors: <a href="https://hasura.io/" target="_blank" rel="nofollow noopener noreferrer">Hasura</a>, <a href="https://www.postman.com/" target="_blank" rel="nofollow noopener noreferrer">Postman</a>, and <a href="https://the-guild.dev/" target="_blank" rel="nofollow noopener noreferrer">The Guild</a>, Platinum Sponsors: <a href="https://hygraph.com/" target="_blank" rel="nofollow noopener noreferrer">Hygraph</a> and <a href="https://www.solo.io/" target="_blank" rel="nofollow noopener noreferrer">Solo.io</a>, and Gold Sponsors: <a href="https://stepzen.com/" target="_blank" rel="nofollow noopener noreferrer">StepZen</a>, <a href="https://inigo.io/" target="_blank" rel="nofollow noopener noreferrer">Inigo</a>, and <a href="https://thegraph.com/" target="_blank" rel="nofollow noopener noreferrer">The Graph</a>.</p><h3>About the GraphQL Foundation<a class="hash-link" href="http://graphql.org/blog/2023-08-24-announcing-the-schedule-for-graphqlconf#about-the-graphql-foundation">#</a></h3><p>The GraphQL Foundation is a neutral foundation founded by global technology and application development companies. The GraphQL Foundation encourages contributions, stewardship, and a shared investment from a broad group in vendor-neutral events, documentation, tools, and support for GraphQL.</p><p>GraphQL was created in 2012 and open sourced by Facebook in 2015. In 2019, Facebook and others created the GraphQL Foundation as a neutral, non-profit home for the GraphQL assets and ongoing collaboration, and hosted by The Linux Foundation. The GraphQL Foundation is a fully neutral home for the GraphQL trademark, and provides a means of collecting and distributing membership dues to support core community infrastructure and programs. For more information about the GraphQL Foundation, please visit <a href="https://graphql.org/">https://graphql.org/</a>.</p><p>The Linux Foundation has registered trademarks and uses trademarks. For a list of trademarks of The Linux Foundation, please see our trademark usage page. Linux is a registered trademark of Linus Torvalds.</p><p>Media Contact</p><p>Jory Burson</p><p>Linux Foundation</p><p>jburson@linuxfoundation.org</p>]]></description>
      <link>http://graphql.org/blog/2023-08-24-announcing-the-schedule-for-graphqlconf</link>
      <guid>http://graphql.org/blog/2023-08-24-announcing-the-schedule-for-graphqlconf</guid>
      <pubDate>Thu, 24 Aug 2023 02:00:00 +0200</pubDate>
    </item>
    <item>
      <title><![CDATA[Key Insights from the GraphQL EU Gathering]]></title>
      <description><![CDATA[<p><time datetime="2023-08-01T00:00:00.000Z">August 1, 2023</time> by Jamie Barton</p><p><a class="transition-colors py-1 px-2.5 capitalize rounded bg-zinc-200 dark:bg-zinc-700 font-bold hover:!no-underline hover:!bg-primary hover:text-white dark:hover:text-zinc-900" href="https://graphql.org/tags/blog/">blog</a></p>
<p class="_mt-6 _leading-7 first:_mt-0">As the adage goes, unity is strength. The premier GraphQL EU “unconference”, held in Berlin, is a testament to this belief. This phenomenal event was the result of immense collaboration between various companies and providers within our vibrant ecosystem. The partnership among these key players, backed by the tireless efforts of the <a class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]" href="https://graphql.org/foundation/">GraphQL Foundation</a>, truly highlighted the strength of our community and the unity we foster.</p>
<p class="_mt-6 _leading-7 first:_mt-0">Such dedication from all corners reinforces our commitment to growing and strengthening the global GraphQL community. We understand that a robust community is not built on grand events alone, but through localized meetups and smaller gatherings that allow enthusiasts and experts to exchange knowledge and ideas on a more intimate level.</p>
<p class="_mt-6 _leading-7 first:_mt-0">To that end, we encourage and are excited to support local contributors eager to organize GraphQL meetups. A shining example of a successful local event was the recent gathering in Amsterdam, which saw a vibrant mix of participants sharing their GraphQL journeys, learning from each other, and expanding their networks. Now, with the backing of the GraphQL Foundation, anyone with the zeal and passion to bring the GraphQL community together at a local level can do so with our full support.</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">GraphQL EU</h2>
<p class="_mt-6 _leading-7 first:_mt-0"><img alt="Promotional banner promoting the date, time and place for GraphQL EU" width="1024" height="512" data-nimg="1" class="c2" srcset="/nextImageExportOptimizer/banner.10d4d66b-opt-1080.WEBP 1x, /nextImageExportOptimizer/banner.10d4d66b-opt-1080.WEBP 2x" src="https://graphql.org/nextImageExportOptimizer/banner.10d4d66b-opt-1080.WEBP" /></p>
<p class="_mt-6 _leading-7 first:_mt-0">The “unconference” format encourages an open dialogue; it provides a platform for all participants to express their ideas, facilitating enriching discussions about their daily experiences with GraphQL, both the victories and the challenges.</p>
<p class="_mt-6 _leading-7 first:_mt-0">After everyone had gathered and invigorated themselves with coffee and croissants (it was a tad too early for currywurst), we proceeded to convene in the main hall.</p>
<h3 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-8 _text-2xl">The Day</h3>
<p class="_mt-6 _leading-7 first:_mt-0">The day kicked off with brief presentations from all sponsors - <a href="https://mirumee.com/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Mirumee Software</a>, <a href="https://the-guild.dev/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">The Guild Software</a>, <a href="https://stellate.co/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Stellate</a>, <a href="https://saleor.io/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Saleor Commerce</a>, <a href="https://hasura.io/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Hasura</a>, <a href="https://escape.tech/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Escape</a>. Far from being standard sponsor speeches, each speaker conveyed an inspiring experience that would later spark a day brimming with engaging discussions.</p>
<p class="_mt-6 _leading-7 first:_mt-0">After the sponsor presentations concluded, <a href="https://twitter.com/vanriper" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Van Riper</a> did an outstanding job outlining the subsequent plan of action, ensuring we kept to the allocated timetable!</p>
<p class="_mt-6 _leading-7 first:_mt-0">Each participant was given a card to jot down their discussion topic, followed by a 20-second slot on stage to present it. Once we deciphered the correct usage of sticky tape, these cards were affixed to the whiteboards. This interactive activity essentially laid down the structure for the remainder of the day’s events.</p>
<p class="_mt-6 _leading-7 first:_mt-0"><img alt="A whiteboard of attendee-provided topics for discussion" width="1333" height="1000" data-nimg="1" class="c3" srcset="/nextImageExportOptimizer/whiteboard.60eac8e3-opt-1920.WEBP 1x, /nextImageExportOptimizer/whiteboard.60eac8e3-opt-1920.WEBP 2x" src="https://graphql.org/nextImageExportOptimizer/whiteboard.60eac8e3-opt-1920.WEBP" /></p>
<h3 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-8 _text-2xl">Round 1</h3>
<p class="_mt-6 _leading-7 first:_mt-0">The moment had come to choose a topic and dive right in! We were allocated approximately an hour to join a section of the hall for in-depth topic discussions.</p>
<p class="_mt-6 _leading-7 first:_mt-0">Given the multitude of subjects presented on various whiteboards, selecting just one posed quite a challenge.</p>
<p class="_mt-6 _leading-7 first:_mt-0">I chose to participate in the conversation at location <strong>R1/D</strong>, which encompassed three related topics:</p>
<ol class="_mt-6 _list-decimal first:_mt-0 ltr:_ml-6 rtl:_mr-6"><li class="_my-2"><strong>Enhancing the GraphQL Developer Experience</strong></li>
<li class="_my-2"><strong>Simplifying GraphQL Servers (with a gateway)</strong></li>
<li class="_my-2"><strong>Identifying missing elements in GraphQL Developer Tooling</strong></li>
</ol><p class="_mt-6 _leading-7 first:_mt-0">Even though the discussion adhered to the set time limit, it undoubtedly contained a wealth of material.</p>
<p class="_mt-6 _leading-7 first:_mt-0">The primary conclusion drawn from this conversation was the pressing need for additional standards, or even better, detailed specifications for GraphQL implementation on both the server and client side. Developers frequently find themselves reapplying identical logic across different languages due to a lack of standardization. This often results in using one language as a foundation for the next.</p>
<p class="_mt-6 _leading-7 first:_mt-0">However, if there’s a deviation from the original, it could negatively impact the developer experience, especially for those working with numerous languages across different stacks.</p>
<p class="_mt-6 _leading-7 first:_mt-0">Creating a specification doesn’t have to be a complex process, nor does it need the sanction of anyone to be beneficial. Several years ago, <a href="https://github.com/jaydenseric/graphql-multipart-request-spec" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Jayden Seric</a> introduced the GraphQL multipart request specification. Anyone who is implementing multipart uploads will appreciate the guidance and insights offered by such a singular specification, allowing developers to concentrate on the tasks of building and delivering their applications.</p>
<p class="_mt-6 _leading-7 first:_mt-0">During the first round’s intermission, I had the chance to observe Uri Goldshtein guiding the Beyond GraphQL group. This intriguing dialogue explored how GraphQL’s concepts could be integrated with other tools and standards, including OpenAPI and gRPC. The group also pondered over the existing divide and potential ways to bridge these specifications, aiming for a more unified landscape where the right tool can be chosen for the job.</p>
<p class="_mt-6 _leading-7 first:_mt-0">The discussion, under Uri’s skillful moderation, took an exciting turn as they probed the potential for repurposing existing APIs using GraphQL by means of automation. Numerous organizations and tools like GraphQL Mesh, Grafbase, SOFA, Hasura, and Wundergraph are already navigating these waters. They invite and appreciate the participation of anyone interested in contributing to this evolving domain through open-source projects.</p>
<p class="_mt-6 _leading-7 first:_mt-0">In his concluding remarks, Uri underscored, “The moment has arrived for the discourse within the GraphQL ecosystem to evolve beyond the ‘GraphQL vs. REST’ debate. Instead, we should focus on how we can apply GraphQL’s robust features to enrich other existing APIs.”</p>
<h3 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-8 _text-2xl">Round 2</h3>
<p class="_mt-6 _leading-7 first:_mt-0">Choosing the next discussion to attend proved to be quite a difficult task that saw me staring at a board of topic cards longer than I would like to admit. I was torn between the following topics:</p>
<ul class="_mt-6 _list-disc first:_mt-0 ltr:_ml-6 rtl:_mr-6"><li class="_my-2"><strong>Relay</strong></li>
<li class="_my-2"><strong>Federation in Practice / Combining and Extending GraphQL APIs</strong></li>
</ul><p class="_mt-6 _leading-7 first:_mt-0">Given my day-to-day role involves guiding and assisting developers to excel in extending GraphQL APIs with <a href="https://grafbase.com" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Grafbase</a>, I felt a strong inclination towards this topic. However, my intuition, coupled with the palpable growing support for Relay, guided my decision in the end.</p>
<p class="_mt-6 _leading-7 first:_mt-0">Hearing from <a href="https://twitter.com/enisdenjo" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Denis Badurina</a>, <a href="https://twitter.com/rubydwarf" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Marion Schleifer</a>, <a href="https://twitter.com/zcei_GER" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Stephan Schneider</a>, and others about their experiences with Relay was enlightening.</p>
<p class="_mt-6 _leading-7 first:_mt-0">I openly admitted to the group that it had been several years since my last encounter with Relay (which, admittedly, was not entirely successful), but I was eager to understand the current usage patterns and share some of the narratives I’ve come across in my GraphQL journey regarding why developers often don’t select Relay as their first choice.</p>
<p class="_mt-6 _leading-7 first:_mt-0">As the session neared its end, it became evident that there were some common reasons why Relay wasn’t the first choice for developers:</p>
<ul class="_mt-6 _list-disc first:_mt-0 ltr:_ml-6 rtl:_mr-6"><li class="_my-2">A perceived steep learning curve, mainly resulting from the mental model shift surrounding components and data dependencies.</li>
<li class="_my-2">Setting up the compiler configuration was frequently a tedious task.</li>
</ul><p class="_mt-6 _leading-7 first:_mt-0"><strong>Interestingly, those developers who do use Relay are indeed very fond of it!</strong></p>
<h3 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-8 _text-2xl">Round 3</h3>
<p class="_mt-6 _leading-7 first:_mt-0">As the day was nearing its conclusion, it was time to choose a topic that would potentially ignite conversations even during the evening reception drinks. And I must say, I certainly opted for such a topic!</p>
<p class="_mt-6 _leading-7 first:_mt-0">The subject at <strong>R3/C</strong> centred around <strong>the role of GraphQL in the era of TRPC and RSC</strong>. I commend <a href="https://twitter.com/soarebo" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Bogdan</a> for his audacity to bring up such a contentious topic. But then again, we were at a GraphQL event, so the reactions wouldn’t have been as fiery as they would have been if this topic had emerged on a tweet.</p>
<p class="_mt-6 _leading-7 first:_mt-0">All participants were given the opportunity to express their opinions and explain why the topic stirred up so much controversy. <a href="https://twitter.com/UriGoldshtein" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Uri Goldshtein</a> introduced some impressive open source projects within the community, particularly <a href="https://garph.dev/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Garph</a>/<a href="https://gqty.dev/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GQty</a>, which aim to close the gap and simplify the process of generating types for end-to-end type safety.</p>
<p class="_mt-6 _leading-7 first:_mt-0">The omnipresence of React is no secret. Its adoption is surging across the board, a trend further amplified by the significant influence that Next.js has exerted within the ecosystem.</p>
<blockquote class="_mt-6 _border-gray-300 _italic _text-gray-700 dark:_border-gray-700 dark:_text-gray-400 first:_mt-0 ltr:_border-l-2 ltr:_pl-6 rtl:_border-r-2 rtl:_pr-6">
<p class="_mt-6 _leading-7 first:_mt-0"><a href="https://2022.stateofjs.com/en-US/libraries/front-end-frameworks" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">State of JavaScript 2022: Front-end Frameworks</a></p>
</blockquote>
<p class="_mt-6 _leading-7 first:_mt-0">It’s also well-known that the rise of Next.js and RSC is stirring up numerous concerns and questions, and encountering some challenges, as it propels the community forward with their runtime implementation of <strong>React Server Components</strong>. I believe GraphQL is also at a crossroads, trying to determine its ideal niche within this evolving React ecosystem.</p>
<p class="_mt-6 _leading-7 first:_mt-0">However, it’s crucial to remember that while React and Next.js are prevalent choices, there are many other languages and frameworks that can leverage GraphQL. As a community, we sometimes overlook these alternatives.</p>
<p class="_mt-6 _leading-7 first:_mt-0">If you haven’t yet used <a href="https://www.houdinigraphql.com" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Houdini GraphQL</a> and Svelte, you’re in for a treat. Houdini offers a refreshing approach to constructing type-safe web applications powered by GraphQL.</p>
<p class="_mt-6 _leading-7 first:_mt-0">Overall, it seemed that GraphQL was continuing to expand, but its applications were shifting. Developers who are building web and mobile applications seem to be moving towards simpler routing mechanisms, like Tanstack and React Router, coupled with Relay for client-side data loading and caching.</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Key Insights from GraphQL EU</h2>
<p class="_mt-6 _leading-7 first:_mt-0">While I couldn’t be part of every conversation, a myriad of topics were undoubtedly discussed during the reception after-party, and even the after-after-party.</p>
<p class="_mt-6 _leading-7 first:_mt-0">Below are the main insights I jotted down in my Notes App throughout the day:</p>
<ul class="_mt-6 _list-disc first:_mt-0 ltr:_ml-6 rtl:_mr-6"><li class="_my-2">Despite its initial complexity and paradigm shift, Relay is increasingly adopted by those with more GraphQL experience, especially due to its ability to co-locate fragments with their respective components.</li>
<li class="_my-2">While tRPC is attractive, not all companies have total control over their tech stacks and rely on external GraphQL APIs. Consequently, more developers are utilizing gateway or federation methods to integrate these APIs.</li>
<li class="_my-2">Ensuring GraphQL APIs are versionless is vital for mobile applications to function smoothly, given users frequently lag in updating their apps.</li>
<li class="_my-2">For SPAs or mobile apps, where client fetching is preferable, GraphQL still offers a superior experience. React Server Components (RSC), particularly with Next.js, doesn’t provide much scope for GraphQL, and that’s acceptable.</li>
<li class="_my-2">For server-rendered applications, GraphQL remains a viable choice. As a simple function or network call, it can facilitate integration with multiple APIs more efficiently than having to install numerous SDKs.</li>
</ul><h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">What’s next for GraphQL?</h2>
<p class="_mt-6 _leading-7 first:_mt-0">As significant as this event was, we are set to surpass it with the official <a href="https://graphql.org/conf" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphQL Conf</a>, scheduled for September 19-21 in San Francisco. If you thought this event was insightful, I guarantee you that the upcoming conference is going to be a game-changer!</p>
<p class="_mt-6 _leading-7 first:_mt-0">You wouldn’t want to miss out, so grab your tickets soon! I look forward to seeing many familiar faces and meeting new ones at the conference.</p>
<ul class="_mt-6 _list-disc first:_mt-0 ltr:_ml-6 rtl:_mr-6"><li class="_my-2"><a class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]" href="https://graphql.org/conf/2023/#attend">Buy a Ticket!</a></li>
<li class="_my-2"><a class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]" href="https://graphql.org/conf/2023/schedule/">See the schedule</a></li>
<li class="_my-2"><a class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]" href="https://graphql.org/conf/2023/sponsor/">Become a sponsor</a></li>
</ul><h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Get involved</h2>
<p class="_mt-6 _leading-7 first:_mt-0">Though the aforementioned reflections encapsulate my journey, I encourage you to contribute your unique experiences to our collective narrative. <a href="https://discord.graphql.org" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Connect with us on Discord</a> and enrich the GraphQL community with your insights.</p>
<p class="_mt-6 _leading-7 first:_mt-0">See you in San Francisco!</p>]]></description>
      <link>https://graphql.org/blog/2023-08-01-key-insights-from-the-graphql-eu-gathering</link>
      <guid>https://graphql.org/blog/2023-08-01-key-insights-from-the-graphql-eu-gathering</guid>
      <pubDate>Tue, 01 Aug 2023 02:00:00 +0200</pubDate>
    </item>
    <item>
      <title><![CDATA[Key Insights from the GraphQL EU Gathering]]></title>
      <description><![CDATA[<p>As the adage goes, unity is strength. The premier GraphQL EU "unconference", held in Berlin, is a testament to this belief. This phenomenal event was the result of immense collaboration between various companies and providers within our vibrant ecosystem. The partnership among these key players, backed by the tireless efforts of the <a href="http://graphql.org/foundation/">GraphQL Foundation</a>, truly highlighted the strength of our community and the unity we foster.</p><p>Such dedication from all corners reinforces our commitment to growing and strengthening the global GraphQL community. We understand that a robust community is not built on grand events alone, but through localized meetups and smaller gatherings that allow enthusiasts and experts to exchange knowledge and ideas on a more intimate level.</p><p>To that end, we encourage and are excited to support local contributors eager to organize GraphQL meetups. A shining example of a successful local event was the recent gathering in Amsterdam, which saw a vibrant mix of participants sharing their GraphQL journeys, learning from each other, and expanding their networks. Now, with the backing of the GraphQL Foundation, anyone with the zeal and passion to bring the GraphQL community together at a local level can do so with our full support.</p><h2>GraphQL EU<a class="hash-link" href="http://graphql.org/blog/2023-08-01-key-insights-from-the-graphql-eu-gathering#graphql-eu">#</a></h2><p><img src="http://graphql.org/img/blog/2023-08-01-key-insights-from-the-graphql-eu-gathering/banner.jpg" alt="Promotional banner promoting the date, time and place for GraphQL EU" /></p><p>The "unconference" format encourages an open dialogue; it provides a platform for all participants to express their ideas, facilitating enriching discussions about their daily experiences with GraphQL, both the victories and the challenges.</p><p>After everyone had gathered and invigorated themselves with coffee and croissants (it was a tad too early for currywurst), we proceeded to convene in the main hall.</p><h3>The Day<a class="hash-link" href="http://graphql.org/blog/2023-08-01-key-insights-from-the-graphql-eu-gathering#the-day">#</a></h3><p>The day kicked off with brief presentations from all sponsors - <a href="https://mirumee.com/" target="_blank" rel="nofollow noopener noreferrer">Mirumee Software</a>, <a href="https://the-guild.dev/" target="_blank" rel="nofollow noopener noreferrer">The Guild Software</a>, <a href="https://stellate.co/" target="_blank" rel="nofollow noopener noreferrer">Stellate</a>, <a href="https://saleor.io/" target="_blank" rel="nofollow noopener noreferrer">Saleor Commerce</a>, <a href="https://hasura.io/" target="_blank" rel="nofollow noopener noreferrer">Hasura</a>, <a href="https://escape.tech/" target="_blank" rel="nofollow noopener noreferrer">Escape</a>. Far from being standard sponsor speeches, each speaker conveyed an inspiring experience that would later spark a day brimming with engaging discussions.</p><p>After the sponsor presentations concluded, <a href="https://twitter.com/vanriper" target="_blank" rel="nofollow noopener noreferrer">Van Riper</a> did an outstanding job outlining the subsequent plan of action, ensuring we kept to the allocated timetable!</p><p>Each participant was given a card to jot down their discussion topic, followed by a 20-second slot on stage to present it. Once we deciphered the correct usage of sticky tape, these cards were affixed to the whiteboards. This interactive activity essentially laid down the structure for the remainder of the day's events.</p><p><img src="http://graphql.org/img/blog/2023-08-01-key-insights-from-the-graphql-eu-gathering/whiteboard.jpg" alt="A whiteboard of attendee-provided topics for discussion" /></p><h3>Round 1<a class="hash-link" href="http://graphql.org/blog/2023-08-01-key-insights-from-the-graphql-eu-gathering#round-1">#</a></h3><p>The moment had come to choose a topic and dive right in! We were allocated approximately an hour to join a section of the hall for in-depth topic discussions.</p><p>Given the multitude of subjects presented on various whiteboards, selecting just one posed quite a challenge.</p><p>I chose to participate in the conversation at location <strong>R1/D</strong>, which encompassed three related topics:</p><ol><li><strong>Enhancing the GraphQL Developer Experience</strong></li>
<li><strong>Simplifying GraphQL Servers (with a gateway)</strong></li>
<li><strong>Identifying missing elements in GraphQL Developer Tooling</strong></li>
</ol><p>Even though the discussion adhered to the set time limit, it undoubtedly contained a wealth of material.</p><p>The primary conclusion drawn from this conversation was the pressing need for additional standards, or even better, detailed specifications for GraphQL implementation on both the server and client side. Developers frequently find themselves reapplying identical logic across different languages due to a lack of standardization. This often results in using one language as a foundation for the next.</p><p>However, if there's a deviation from the original, it could negatively impact the developer experience, especially for those working with numerous languages across different stacks.</p><p>Creating a specification doesn't have to be a complex process, nor does it need the sanction of anyone to be beneficial. Several years ago, <a href="https://github.com/jaydenseric/graphql-multipart-request-spec" target="_blank" rel="nofollow noopener noreferrer">Jayden Seric</a> introduced the GraphQL multipart request specification. Anyone who is implementing multipart uploads will appreciate the guidance and insights offered by such a singular specification, allowing developers to concentrate on the tasks of building and delivering their applications.</p><p>During the first round's intermission, I had the chance to observe Uri Goldshtein guiding the Beyond GraphQL group. This intriguing dialogue explored how GraphQL's concepts could be integrated with other tools and standards, including OpenAPI and gRPC. The group also pondered over the existing divide and potential ways to bridge these specifications, aiming for a more unified landscape where the right tool can be chosen for the job.</p><p>The discussion, under Uri's skillful moderation, took an exciting turn as they probed the potential for repurposing existing APIs using GraphQL by means of automation. Numerous organizations and tools like GraphQL Mesh, Grafbase, SOFA, Hasura, and Wundergraph are already navigating these waters. They invite and appreciate the participation of anyone interested in contributing to this evolving domain through open-source projects.</p><p>In his concluding remarks, Uri underscored, "The moment has arrived for the discourse within the GraphQL ecosystem to evolve beyond the 'GraphQL vs. REST' debate. Instead, we should focus on how we can apply GraphQL's robust features to enrich other existing APIs."</p><h3>Round 2<a class="hash-link" href="http://graphql.org/blog/2023-08-01-key-insights-from-the-graphql-eu-gathering#round-2">#</a></h3><p>Choosing the next discussion to attend proved to be quite a difficult task that saw me staring at a board of topic cards longer than I would like to admit. I was torn between the following topics:</p><ul><li><strong>Relay</strong></li>
<li><strong>Federation in Practice / Combining and Extending GraphQL APIs</strong></li>
</ul><p>Given my day-to-day role involves guiding and assisting developers to excel in extending GraphQL APIs with <a href="https://grafbase.com" target="_blank" rel="nofollow noopener noreferrer">Grafbase</a>, I felt a strong inclination towards this topic. However, my intuition, coupled with the palpable growing support for Relay, guided my decision in the end.</p><p>Hearing from <a href="https://twitter.com/enisdenjo" target="_blank" rel="nofollow noopener noreferrer">Denis Badurina</a>, <a href="https://twitter.com/rubydwarf" target="_blank" rel="nofollow noopener noreferrer">Marion Schleifer</a>, <a href="https://twitter.com/zcei_GER" target="_blank" rel="nofollow noopener noreferrer">Stephan Schneider</a>, and others about their experiences with Relay was enlightening.</p><p>I openly admitted to the group that it had been several years since my last encounter with Relay (which, admittedly, was not entirely successful), but I was eager to understand the current usage patterns and share some of the narratives I've come across in my GraphQL journey regarding why developers often don't select Relay as their first choice.</p><p>As the session neared its end, it became evident that there were some common reasons why Relay wasn't the first choice for developers:</p><ul><li>A perceived steep learning curve, mainly resulting from the mental model shift surrounding components and data dependencies.</li>
<li>Setting up the compiler configuration was frequently a tedious task.</li>
</ul><p><strong>Interestingly, those developers who do use Relay are indeed very fond of it!</strong></p><h3>Round 3<a class="hash-link" href="http://graphql.org/blog/2023-08-01-key-insights-from-the-graphql-eu-gathering#round-3">#</a></h3><p>As the day was nearing its conclusion, it was time to choose a topic that would potentially ignite conversations even during the evening reception drinks. And I must say, I certainly opted for such a topic!</p><p>The subject at <strong>R3/C</strong> centred around <strong>the role of GraphQL in the era of TRPC and RSC</strong>. I commend <a href="https://twitter.com/soarebo" target="_blank" rel="nofollow noopener noreferrer">Bogdan</a> for his audacity to bring up such a contentious topic. But then again, we were at a GraphQL event, so the reactions wouldn't have been as fiery as they would have been if this topic had emerged on a tweet.</p><p>All participants were given the opportunity to express their opinions and explain why the topic stirred up so much controversy. <a href="https://twitter.com/UriGoldshtein" target="_blank" rel="nofollow noopener noreferrer">Uri Goldshtein</a> introduced some impressive open source projects within the community, particularly <a href="https://garph.dev/" target="_blank" rel="nofollow noopener noreferrer">Garph</a>/<a href="https://gqty.dev/" target="_blank" rel="nofollow noopener noreferrer">GQty</a>, which aim to close the gap and simplify the process of generating types for end-to-end type safety.</p><p>The omnipresence of React is no secret. Its adoption is surging across the board, a trend further amplified by the significant influence that Next.js has exerted within the ecosystem.</p><blockquote>
<p><a href="https://2022.stateofjs.com/en-US/libraries/front-end-frameworks/" target="_blank" rel="nofollow noopener noreferrer">State of JavaScript 2022: Front-end Frameworks</a></p>
</blockquote><p>It's also well-known that the rise of Next.js and RSC is stirring up numerous concerns and questions, and encountering some challenges, as it propels the community forward with their runtime implementation of <strong>React Server Components</strong>. I believe GraphQL is also at a crossroads, trying to determine its ideal niche within this evolving React ecosystem.</p><p>However, it's crucial to remember that while React and Next.js are prevalent choices, there are many other languages and frameworks that can leverage GraphQL. As a community, we sometimes overlook these alternatives.</p><p>If you haven't yet used <a href="https://www.houdinigraphql.com" target="_blank" rel="nofollow noopener noreferrer">Houdini GraphQL</a> and Svelte, you're in for a treat. Houdini offers a refreshing approach to constructing type-safe web applications powered by GraphQL.</p><p>Overall, it seemed that GraphQL was continuing to expand, but its applications were shifting. Developers who are building web and mobile applications seem to be moving towards simpler routing mechanisms, like Tanstack and React Router, coupled with Relay for client-side data loading and caching.</p><h2>Key Insights from GraphQL EU<a class="hash-link" href="http://graphql.org/blog/2023-08-01-key-insights-from-the-graphql-eu-gathering#key-insights-from-graphql-eu">#</a></h2><p>While I couldn't be part of every conversation, a myriad of topics were undoubtedly discussed during the reception after-party, and even the after-after-party.</p><p>Below are the main insights I jotted down in my Notes App throughout the day:</p><ul><li>Despite its initial complexity and paradigm shift, Relay is increasingly adopted by those with more GraphQL experience, especially due to its ability to co-locate fragments with their respective components.</li>
<li>While tRPC is attractive, not all companies have total control over their tech stacks and rely on external GraphQL APIs. Consequently, more developers are utilizing gateway or federation methods to integrate these APIs.</li>
<li>Ensuring GraphQL APIs are versionless is vital for mobile applications to function smoothly, given users frequently lag in updating their apps.</li>
<li>For SPAs or mobile apps, where client fetching is preferable, GraphQL still offers a superior experience. React Server Components (RSC), particularly with Next.js, doesn't provide much scope for GraphQL, and that's acceptable.</li>
<li>For server-rendered applications, GraphQL remains a viable choice. As a simple function or network call, it can facilitate integration with multiple APIs more efficiently than having to install numerous SDKs.</li>
</ul><h2>What's next for GraphQL?<a class="hash-link" href="http://graphql.org/blog/2023-08-01-key-insights-from-the-graphql-eu-gathering#what-s-next-for-graphql">#</a></h2><p>As significant as this event was, we are set to surpass it with the official <a href="https://graphql.org/conf" target="_blank" rel="nofollow noopener noreferrer">GraphQL Conf</a>, scheduled for September 19-21 in San Francisco. If you thought this event was insightful, I guarantee you that the upcoming conference is going to be a game-changer!</p><p>You wouldn't want to miss out, so grab your tickets soon! I look forward to seeing many familiar faces and meeting new ones at the conference.</p><h2>Get involved<a class="hash-link" href="http://graphql.org/blog/2023-08-01-key-insights-from-the-graphql-eu-gathering#get-involved">#</a></h2><p>Though the aforementioned reflections encapsulate my journey, I encourage you to contribute your unique experiences to our collective narrative. <a href="https://discord.graphql.org" target="_blank" rel="nofollow noopener noreferrer">Connect with us on Discord</a> and enrich the GraphQL community with your insights.</p><p>See you in San Francisco!</p>]]></description>
      <link>http://graphql.org/blog/2023-08-01-key-insights-from-the-graphql-eu-gathering</link>
      <guid>http://graphql.org/blog/2023-08-01-key-insights-from-the-graphql-eu-gathering</guid>
      <pubDate>Tue, 01 Aug 2023 02:00:00 +0200</pubDate>
    </item>
    <item>
      <title><![CDATA[Recapping our latest Q&A Session - Scaling UI Development with Relay GraphQL]]></title>
      <description><![CDATA[<main class="w-full min-w-0 max-w-6xl px-6 pt-4 md:px-12"><p><a title="Blog" class="text-neu-700 dark:text-neu-400 min-w-6 last:text-neu-800 dark:last:text-neu-800 leading-none gql-focus-visible ring-inset hover:text-neu-900 hover:underline underline-offset-2" href="https://graphql.org/blog/">Blog</a><a title="Recapping our latest Q&amp;A Session - Scaling UI Development with Relay GraphQL" class="text-neu-700 dark:text-neu-400 min-w-6 last:text-neu-800 dark:last:text-neu-800 leading-none gql-focus-visible ring-inset hover:text-neu-900 hover:underline underline-offset-2" href="https://graphql.org/blog/2023-07-19-hasura-qna-recap/">Recapping our latest Q&amp;A Session - Scaling UI Development with Relay GraphQL</a></p>
<p><a class="-m-1 flex p-1 ring-inset ring-neu-400 transition-opacity duration-75 hover:ring focus:!outline-offset-0 dark:ring-neu-50 [:has(&gt;:hover)&gt;&amp;:not(:hover)]:opacity-70" href="https://graphql.org/tags/blog/">blog</a></p>
<p>Jory Burson<time datetime="2023-07-19T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">July 19, 2023</time></p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">On July 12, we hosted an an enlightening Q&amp;A session on scaling UI development with Relay GraphQL. Participants included several experts from <a rel="noopener noreferrer" target="_blank" href="https://hasura.io/" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">Hasura</a> as well as interested attendees from our Discord community. The Q&amp;A session was all about discussing the power of Relay in the realm of UI development. <a rel="noopener noreferrer" target="_blank" href="https://www.linkedin.com/in/tanmaig/" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">Tanmai Gopal</a>, CEO of Hasura, and <a rel="noopener noreferrer" target="_blank" href="https://twitter.com/_nullxone" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">Akshaya Acharya</a>, developer at Hasura, led the conversation, sharing their experiences and knowledge about the utilization of Relay and GraphQL in managing UI projects.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">For those who couldn’t make it, we’ve captured the highlights and insights shared during the discussion. Read on, and join us for our next Q&amp;A Session on July 26 for another discussion about GraphQL at Scale on the <a rel="noopener noreferrer" target="_blank" href="https://discord.graphql.org" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">GraphQL Community Discord</a> server!</p>
<ol class="[:is(ol,ul)_&amp;]:_my-3 [&amp;:not(:first-child)]:_mt-6 _list-decimal ltr:_ml-6 rtl:_mr-6"><li class="_my-2">
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7"><strong>Scaling UI development with Relay GraphQL</strong>: The Hasura team discussed how Relay GraphQL can facilitate scaling UI development, emphasizing how it can be a practical solution to prevent in-house development of similar mechanisms.</p>
</li>
<li class="_my-2">
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7"><strong>Relay and React Server Component (RSC)</strong>: They discussed their learnings from comparing and trying Relay with React’s next-gen features like RSC and server actions. They pointed out that Relay fits well into things like RSC and solves issues that RSC alone does not handle, such as “compose API fetching across different types of components and craft the best / minimal set of queries.”</p>
</li>
<li class="_my-2">
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7"><strong>Migration to Relay</strong>: The Hasura team shared their ongoing experience of migrating existing UI to Relay to improve team productivity. They emphasized the need to introduce Relay in independent and then closely connected components to avoid data inconsistency issues.</p>
</li>
<li class="_my-2">
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7"><strong>Nullable-by-default schema with client controlled nullability</strong>: The team also discussed the idea of using a nullable-by-default schema with client-controlled nullability. They noted that, while this approach can solve problems related to resolver errors and changes in the data model, it requires careful handling on the client side.</p>
</li>
<li class="_my-2">
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7"><strong>Integration of Relay with NextJS</strong>: Examples were shared on how to integrate Relay with the NextJS App Router and NextJS Pages Router.</p>
</li>
<li class="_my-2">
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7"><strong>Development Tools for Relay</strong>: They showed interest in the tools the community is using to build a backend Relay server, and the challenges faced while working with Relay.</p>
</li>
<li class="_my-2">
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7"><strong>Relay and backend practices</strong>: The Hasura team mentioned that they have not enforced nullable-by-default schemas yet and they can handle breaking changes rapidly due to their ability to iterate quickly on their GraphQL server.</p>
</li>
</ol><p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The discussion provided valuable insights into how Relay GraphQL can ease and scale UI development. Notably, the real-world experiences shared by the Hasura team brought home the potential and practical advantages of using Relay in handling large-scale UI projects.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">For those who missed it or wish to revisit, the <a rel="noopener noreferrer" target="_blank" href="https://discord.com/channels/625400653321076807/1098318659727921275/1128737562412974211" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">full transcript</a> is available on our <a rel="noopener noreferrer" target="_blank" href="https://discord.graphql.org" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">Discord channel</a>.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Stay tuned for more such interactive Q&amp;A sessions about modern topics and opportunities with GraphQL. If you have an idea or request for a Q&amp;A session, please let us know!</p>
</main>]]></description>
      <link>https://graphql.org/blog/2023-07-19-hasura-qna-recap</link>
      <guid>https://graphql.org/blog/2023-07-19-hasura-qna-recap</guid>
      <pubDate>Wed, 19 Jul 2023 02:00:00 +0200</pubDate>
    </item>
    <item>
      <title><![CDATA[Technical Working Group videos now available on YouTube]]></title>
      <description><![CDATA[<main class="_w-full _min-w-0 _max-w-6xl _px-6 _pt-4 md:_px-12">
<p><time datetime="2023-07-06T00:00:00.000Z">July 6, 2023</time> by Jory Burson</p>
<p><a class="transition-colors py-1 px-2.5 capitalize rounded bg-zinc-200 dark:bg-zinc-700 font-bold hover:!no-underline hover:!bg-primary hover:text-white dark:hover:text-zinc-900" href="https://graphql.org/tags/blog/">blog</a></p>
<p class="_mt-6 _leading-7 first:_mt-0">Have you been missing out on recent GraphQL Working Group meetings? Want to catch up on the latest conversations about Incremental Delivery, GraphQL over HTTP, and Input Unions? Thanks to <a href="https://github.com/benjie" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Benjie Gillam</a>, now you can!</p>
<p class="_mt-6 _leading-7 first:_mt-0">Benjie has done the onerous job of updating the GraphQL Foundation’s YouTube playlists with all the latest recordings of GraphQL Working Group meetings, which are now available for you to view here: <a href="https://youtube.com/@GraphQLFoundation/playlists" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">https://youtube.com/@GraphQLFoundation/playlists</a></p>
<p class="_mt-6 _leading-7 first:_mt-0">GraphQL technical working group meetings are open to the public, and can be found on our calendar at <a href="https://calendar.graphql.org" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">https://calendar.graphql.org</a>. Community members can subscribe to the whole calendar or to a specific meeting series for personal updates. For those who can’t make it, we encourage you to <a href="https://youtube.com/@GraphQLFoundation" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">subscribe to the YouTube channel</a> to get notified when working group meetings are posted.</p>
</main>]]></description>
      <link>https://graphql.org/blog/2023-07-06-youtube-updated</link>
      <guid>https://graphql.org/blog/2023-07-06-youtube-updated</guid>
      <pubDate>Thu, 06 Jul 2023 02:00:00 +0200</pubDate>
    </item>
    <item>
      <title><![CDATA[Technical Working Group videos now available on YouTube]]></title>
      <description><![CDATA[<p>7/6/2023 by Jory Burson</p><p><a href="http://graphql.org/tags/blog/">blog</a></p><div><p>Have you been missing out on recent GraphQL Working Group meetings? Want to catch up on the latest conversations about Incremental Delivery, GraphQL over HTTP, and Input Unions? Thanks to <a href="https://github.com/benjie" target="_blank" rel="nofollow noopener noreferrer">Benjie Gillam</a>, now you can!</p><p>Benjie has done the onerous job of updating the GraphQL Foundation’s YouTube playlists with all the latest recordings of GraphQL Working Group meetings, which are now available for you to view here: <a href="https://www.youtube.com/@GraphQLFoundation/playlists">https://www.youtube.com/@GraphQLFoundation/playlists</a></p><p>GraphQL technical working group meetings are open to the public, and can be found on our calendar at <a href="https://calendar.graphql.org" target="_blank" rel="nofollow noopener noreferrer">calendar.graphql.org</a>. Community members can subscribe to the whole calendar or to a specific meeting series for personal updates. For those who can’t make it, we encourage you to <a href="https://www.youtube.com/@GraphQLFoundation" target="_blank" rel="nofollow noopener noreferrer">subscribe to the YouTube channel</a> to get notified when working group meetings are posted.</p></div>]]></description>
      <link>http://graphql.org/blog/2023-07-06-youtube-updated</link>
      <guid>http://graphql.org/blog/2023-07-06-youtube-updated</guid>
      <pubDate>Thu, 06 Jul 2023 02:00:00 +0200</pubDate>
    </item>
    <item>
      <title><![CDATA[Insights from The Guild's Q&A Session]]></title>
      <description><![CDATA[<p><time datetime="2023-06-20T00:00:00.000Z">June 20, 2023</time> by Jory Burson</p><p><a class="transition-colors py-1 px-2.5 capitalize rounded bg-zinc-200 dark:bg-zinc-700 font-bold hover:!no-underline hover:!bg-primary hover:text-white dark:hover:text-zinc-900" href="https://graphql.org/tags/blog/">blog</a></p>
<p class="_mt-6 _leading-7 first:_mt-0">In the fast-paced world of software development, staying updated with the latest technologies and best practices is crucial. GraphQL, a query language for APIs, has gained immense popularity for its flexibility and efficiency in fetching data. To delve deeper into the realm of GraphQL and its impact, a recent Q&amp;A session with members of <a href="https://the-guild.dev/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">The Guild</a>, an organization of open source contributors, provided valuable insights and recommendations. Let’s explore the highlights of this session and gain a better understanding of the power of GraphQL.</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Philosophies and structure for open source organizations</h2>
<p class="_mt-6 _leading-7 first:_mt-0">During the Q&amp;A session, The Guild members emphasized that their organization was created for the main purpose of long term open source maintenance. This decision led the organization to structure the group’s work in a different way, such as having all of their projects under individual contributors names and not under the Guild’s <a href="https://github.com/the-guild-org/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GitHub org</a>, like <a href="https://github.com/dotansimha/graphql-yoga" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Yoga</a>, <a href="https://github.com/Urigo/graphql-mesh" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Mesh</a> and <a href="https://the-guild.dev/#platform" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">others</a>.</p>
<p class="_mt-6 _leading-7 first:_mt-0">They also focused on hiring people who were already community contributors before joining The Guild, in order to ensure that they support existing open source contributors and reduce bias in the selection process (by focusing on the individual’s work, rather than their location or identity). That led into a diverse team from all across the globe, and they have written more about that model <a href="https://the-guild.dev/about-us" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">in their about page</a>.</p>
<p class="_mt-6 _leading-7 first:_mt-0">During the Q&amp;A, The Guild emphasized their support for local Meetup groups and their history of helping to start new ones. This commitment to community involvement reflects their dedication to fostering knowledge sharing and collaboration, which is essential for sustainable open source projects.</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Authorization and Shielding with Envelop</h2>
<p class="_mt-6 _leading-7 first:_mt-0">The Guild team recommended using <a href="https://the-guild.dev/blog/introducing-envelop" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Envelop</a>, a plugin system that manipulates the execution flow, for <a href="https://the-guild.dev/blog/graphql-authentication-with-envelop-and-auth0" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">authorization and shielding in GraphQL APIs</a>. This approach provides a powerful alternative to directly wrapping resolvers, ensuring robust security measures are in place. By leveraging Envelop, developers can enhance the authorization control in their GraphQL APIs.</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Granular Authorization Control with Postgres’ Row-Level Security</h2>
<p class="_mt-6 _leading-7 first:_mt-0">In addition to Envelop, the discussion highlighted the use of Postgres’ Row-Level Security as a means of achieving more granular authorization control. This feature allows developers to define security policies at the database level, ensuring that only authorized users can access specific rows of data. By incorporating Postgres’ Row-Level Security, developers can further fortify their GraphQL APIs against unauthorized access.</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">The Advantages of “Non-Spec” GraphQL and Envelop/Yoga plugins</h2>
<p class="_mt-6 _leading-7 first:_mt-0">The discussion also touched upon the benefits of using “non-spec” GraphQL features. With Envelop, you can safely use <a href="https://the-guild.dev/graphql/envelop/v3/guides/using-graphql-features-from-the-future" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">advanced GraphQL features</a> before they are included in the official spec, which releases less frequently.</p>
<p class="_mt-6 _leading-7 first:_mt-0">These tools offer additional functionalities and optimizations, enabling developers to maximize the potential of GraphQL in their projects. The Guild team emphasized the value of exploring these options to enhance performance and streamline development processes while also giving valuable feedback from real production usage to the <a href="https://graphql.org/community/developers/#the-graphql-working-group" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphQL Working Group</a> about these features.</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Caching GraphQL Operations</h2>
<p class="_mt-6 _leading-7 first:_mt-0">Participants in the session raised intriguing points about caching GraphQL operations. The Guild team acknowledged the potential advantages of adding caching to GraphQL requests, optimizing response times and reducing unnecessary network traffic. The point was raised that one can achieve more granular caching with GraphQL than with REST, and a primary reason people think caching is harder in GraphQL is the lack of knowledge about tools like <a href="https://stellate.co" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Stellate</a> and <a href="https://the-guild.dev/graphql/yoga-server/docs/features/response-caching" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Yoga’s response caching support</a>.</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">GraphQL Workflows at scale</h2>
<p class="_mt-6 _leading-7 first:_mt-0">In discussing larger-scale usage of GraphQL, The Guild participants referenced some of their work helping large teams manage GraphQL APIs using workflows and tools using tools such as <a href="https://the-guild.dev/graphql/hive" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphQL Hive</a>, an open source schema registry. Some of the <a href="https://the-guild.dev/blog/tag/graphql-hive" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">new features recently released to Hive</a>, such as the <a href="https://the-guild.dev/blog/hive-introducing-schema-policy" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">schema policy feature</a>, enable organizations to enforce best practices and schema rules across many different teams automatically.</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Community Stewardship and Future Collaborations</h2>
<p class="_mt-6 _leading-7 first:_mt-0">The Guild team acknowledged the importance of community contributions and discussed their efforts to improve and simplify the <a class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]" href="https://graphql.org/">GraphQL community website</a>, and emphasized the importance of fostering a vibrant and inclusive GraphQL community. The Q&amp;A session with The Guild offered a wealth of knowledge and insights into the world of GraphQL. Furthermore, the session highlighted areas for improvement and opportunities for community members to contribute. For more information check out <a href="https://the-guild.dev/#platform" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">The Guild’s projects</a> and <a href="https://the-guild.dev/blog" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">blog</a> and our <a href="https://graphql.org/community" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphQL official community page</a>.</p>
<p class="_mt-6 _leading-7 first:_mt-0">As the GraphQL ecosystem continues to evolve, sessions like these provide valuable guidance and foster a sense of community among developers, paving the way for innovation and growth in our exciting ecosystem. Please <a href="https://calendar.google.com/calendar/event?action=TEMPLATE&amp;tmeid=N25ycGVoaXViOHZxdXFzN3Y5dWNiaGY2OGsgbGludXhmb3VuZGF0aW9uLm9yZ19pazc5dDl1dWoycDMyaTNyMjAzZGd2NW1vOEBn&amp;tmsrc=linuxfoundation.org_ik79t9uuj2p32i3r203dgv5mo8%40group.calendar.google.com" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">join us on June 28</a> for our next <a href="http://discord.graphql.org" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Discord Q&amp;A</a> session featuring engineering leaders from Hasura.</p>]]></description>
      <link>https://graphql.org/blog/2023-06-20-the-guild-qna-recap</link>
      <guid>https://graphql.org/blog/2023-06-20-the-guild-qna-recap</guid>
      <pubDate>Tue, 20 Jun 2023 02:00:00 +0200</pubDate>
    </item>
    <item>
      <title><![CDATA[Insights from The Guild's Q&A Session]]></title>
      <description><![CDATA[<p>In the fast-paced world of software development, staying updated with the latest technologies and best practices is crucial. GraphQL, a query language for APIs, has gained immense popularity for its flexibility and efficiency in fetching data. To delve deeper into the realm of GraphQL and its impact, a recent Q&amp;A session with members of <a href="https://the-guild.dev/" target="_blank" rel="nofollow noopener noreferrer">The Guild</a>, an organization of open source contributors, provided valuable insights and recommendations. Let's explore the highlights of this session and gain a better understanding of the power of GraphQL.</p><p><strong>Philosophies and structure for open source organizations:</strong></p><p>During the Q&amp;A session, The Guild members emphasized that their organization was created for the main purpose of long term open source maintenance. This decision led the organization to structure the group's work in a different way, such as having all of their projects under individual contributors names and not under the Guild’s <a href="https://github.com/the-guild-org/" target="_blank" rel="nofollow noopener noreferrer">GitHub org</a>, like <a href="https://github.com/dotansimha/graphql-yoga" target="_blank" rel="nofollow noopener noreferrer">Yoga</a>, <a href="https://github.com/Urigo/graphql-mesh" target="_blank" rel="nofollow noopener noreferrer">Mesh</a> and <a href="https://the-guild.dev/#platform" target="_blank" rel="nofollow noopener noreferrer">others</a>.</p><p>They also focused on hiring people who were already community contributors before joining The Guild, in order to ensure that they support existing open source contributors and reduce bias in the selection process (by focusing on the individual's work, rather than their location or identity). That led into a diverse team from all across the globe, and they have written more about that model <a href="https://the-guild.dev/about-us" target="_blank" rel="nofollow noopener noreferrer">in their about page</a>.</p><p>During the Q&amp;A, The Guild emphasized their support for local Meetup groups and their history of helping to start new ones. This commitment to community involvement reflects their dedication to fostering knowledge sharing and collaboration, which is essential for sustainable open source projects.</p><p><strong>Authorization and Shielding with Envelop:</strong></p><p>The Guild team recommended using <a href="https://the-guild.dev/blog/introducing-envelop" target="_blank" rel="nofollow noopener noreferrer">Envelop</a>, a plugin system that manipulates the execution flow, for <a href="https://the-guild.dev/blog/graphql-authentication-with-envelop-and-auth0" target="_blank" rel="nofollow noopener noreferrer">authorization and shielding in GraphQL APIs</a>. This approach provides a powerful alternative to directly wrapping resolvers, ensuring robust security measures are in place. By leveraging Envelop, developers can enhance the authorization control in their GraphQL APIs.</p><p><strong>Granular Authorization Control with Postgres's Row-Level Security:</strong></p><p>In addition to Envelop, the discussion highlighted the use of Postgres's Row-Level Security as a means of achieving more granular authorization control. This feature allows developers to define security policies at the database level, ensuring that only authorized users can access specific rows of data. By incorporating Postgres's Row-Level Security, developers can further fortify their GraphQL APIs against unauthorized access.</p><p><strong>The Advantages of "Non-Spec" GraphQL and Envelop/Yoga plugins:</strong></p><p>The discussion also touched upon the benefits of using "non-spec" GraphQL features. With Envelop, you can safely use <a href="https://the-guild.dev/graphql/envelop/v3/guides/using-graphql-features-from-the-future" target="_blank" rel="nofollow noopener noreferrer">advanced GraphQL features</a> before they are included in the official spec, which releases less frequently.</p><p>These tools offer additional functionalities and optimizations, enabling developers to maximize the potential of GraphQL in their projects. The Guild team emphasized the value of exploring these options to enhance performance and streamline development processes while also giving valuable feedback from real production usage to the <a href="https://graphql.org/community/developers/#the-graphql-working-group" target="_blank" rel="nofollow noopener noreferrer">GraphQL Working Group</a> about these features.</p><p><strong>Caching GraphQL Operations:</strong></p><p>Participants in the session raised intriguing points about caching GraphQL operations. The Guild team acknowledged the potential advantages of adding caching to GraphQL requests, optimizing response times and reducing unnecessary network traffic. The point was raised that one can achieve more granular caching with GraphQL than with REST, and a primary reason people think caching is harder in GraphQL is the lack of knowledge about tools like <a href="https://stellate.co/" target="_blank" rel="nofollow noopener noreferrer">Stellate</a> and <a href="https://the-guild.dev/graphql/yoga-server/docs/features/response-caching" target="_blank" rel="nofollow noopener noreferrer">Yoga’s response caching support</a>.</p><p><strong>GraphQL Workflows at scale:</strong></p><p>In discussing larger-scale usage of GraphQL, The Guild participants referenced some of their work helping large teams manage GraphQL APIs using workflows and tools using tools sluch as <a href="https://the-guild.dev/graphql/hive" target="_blank" rel="nofollow noopener noreferrer">GraphQL Hive</a>, an open source schema registry. Some of the <a href="https://the-guild.dev/blog/tag/graphql-hive" target="_blank" rel="nofollow noopener noreferrer">new features recently released to Hive</a>, such as the <a href="https://the-guild.dev/blog/hive-introducing-schema-policy" target="_blank" rel="nofollow noopener noreferrer">schema policy feature</a>, enable organizations to enforce best practices and schema rules across many different teams automatically.</p><p><strong>Community Stewardship and Future Collaborations:</strong></p><p>The Guild team acknowledged the importance of community contributions and discussed their efforts to improve and simplify the <a href="https://graphql.org/" target="_blank" rel="nofollow noopener noreferrer">GraphQL community website</a>, and emphasized the importance of fostering a vibrant and inclusive GraphQL community. The Q&amp;A session with The Guild offered a wealth of knowledge and insights into the world of GraphQL. Furthermore, the session highlighted areas for improvement and opportunities for community members to contribute. For more information check out <a href="https://the-guild.dev/#platform" target="_blank" rel="nofollow noopener noreferrer">The Guild’s projects</a> and <a href="https://the-guild.dev/blog" target="_blank" rel="nofollow noopener noreferrer">blog</a> and our <a href="https://graphql.org/community/" target="_blank" rel="nofollow noopener noreferrer">GraphQL official community page</a>.</p><p>As the GraphQL ecosystem continues to evolve, sessions like these provide valuable guidance and foster a sense of community among developers, paving the way for innovation and growth in our exciting ecosystem. Please <a href="https://calendar.google.com/calendar/event?action=TEMPLATE&amp;tmeid=N25ycGVoaXViOHZxdXFzN3Y5dWNiaGY2OGsgbGludXhmb3VuZGF0aW9uLm9yZ19pazc5dDl1dWoycDMyaTNyMjAzZGd2NW1vOEBn&amp;tmsrc=linuxfoundation.org_ik79t9uuj2p32i3r203dgv5mo8%40group.calendar.google.com" target="_blank" rel="nofollow noopener noreferrer">join us on June 28</a> for our next <a href="http://discord.graphql.org/" target="_blank" rel="nofollow noopener noreferrer">Discord Q&amp;A</a> session featuring engineering leaders from Hasura.</p>]]></description>
      <link>http://graphql.org/blog/2023-06-20-the-guild-qna-recap</link>
      <guid>http://graphql.org/blog/2023-06-20-the-guild-qna-recap</guid>
      <pubDate>Tue, 20 Jun 2023 02:00:00 +0200</pubDate>
    </item>
    <item>
      <title><![CDATA[Community Gardening, May - July 2022]]></title>
      <description><![CDATA[<p><time datetime="2023-02-03T00:00:00.000Z">February 3, 2023</time> by Benjie Gillam</p><p><a class="transition-colors py-1 px-2.5 capitalize rounded bg-zinc-200 dark:bg-zinc-700 font-bold hover:!no-underline hover:!bg-primary hover:text-white dark:hover:text-zinc-900" href="https://graphql.org/tags/grants/">grants</a></p>
<blockquote class="_mt-6 _border-gray-300 _italic _text-gray-700 dark:_border-gray-700 dark:_text-gray-400 first:_mt-0 ltr:_border-l-2 ltr:_pl-6 rtl:_border-r-2 rtl:_pr-6">
<p class="_mt-6 _leading-7 first:_mt-0">The GraphQL Foundation offers <a href="https://graphql.org/foundation/community-grant/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Community Grants</a> to help incentivize key technical and community initiatives. As part of the grant, applicants commit to write a blog post report describing their work and its impact on the GraphQL community. The following report was written by successful grant applicant <a href="https://github.com/sponsors/benjie" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Benjie Gillam</a> in August 2022, detailing the community gardening he performed during May, June and July of that year.</p>
</blockquote>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Backstory</h2>
<p class="_mt-6 _leading-7 first:_mt-0">In 2019 I started turning up to GraphQL Working Group meetings regularly and helping take <a href="https://github.com/graphql/graphql-wg/tree/main/notes" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">the notes</a>. Back then we had a system for filing and reviewing action items, but very few people used it, so items would easily get lost. Further, the notes and videos would be uploaded in batches every few months, which prevented attendees referring to them in the interim.</p>
<p class="_mt-6 _leading-7 first:_mt-0">Over the next couple years I set about trying to improve these processes. I started by filing the <a href="https://github.com/graphql/graphql-wg/issues?q=is%3Aissue+sort%3Aupdated-desc+label%3A%22Action+item+%3Aclapper%3A%22" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">action items</a> myself. After a while, I started categorizing them into <a href="https://github.com/graphql/graphql-wg/projects?type=classic&amp;query=is%3Aopen+sort%3Aupdated-desc" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GitHub projects</a>, one for each meeting, which made keeping track of them (particularly the old ones) much easier and helped us to see progress. Later I introduced a new <a href="https://github.com/graphql/graphql-wg/issues?q=is%3Aissue+sort%3Aupdated-desc+label%3A%22Ready+for+review+%F0%9F%99%8C%22+" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">“ready for review” label</a> that enabled us to quickly focus on the action items that needed discussion rather than trying to go over every item (or skip the lot entirely) each meeting. These processes were very much appreciated by the working group, but were quite time consuming for one person. As time went on my I found myself contributing to GraphQL in more and more ways, and as the time I could dedicate to these tasks dwindled, my ability to keep these processes running smoothly diminished.</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Funding approved</h2>
<p class="_mt-6 _leading-7 first:_mt-0">In May 2022, the GraphQL Foundation kindly approved my application for a <a href="https://graphql.org/foundation/community-grant/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphQL Community Grant</a> to enable me to dedicate more time to these tasks. I’m a community-funded open source developer, so I rely on <a href="https://github.com/sponsors/benjie" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">sponsorship</a> to fund my open source endeavors - both on my own open source projects (<a href="https://github.com/graphile" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">the Graphile suite</a>) and also my contributions to the <a href="https://github.com/graphql/graphql-spec/graphs/contributors" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphQL</a> <a href="https://github.com/graphql/graphql-wg/graphs/contributors" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Working</a> <a href="https://github.com/graphql/graphql-over-http/graphs/contributors" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Groups</a>. Since being approved for the grant, I’ve been better able to execute the role of community gardener; let me tell you about some of the ways in which the Foundation’s grant has enabled me to better support you, the GraphQL community!</p>
<p class="_mt-6 _leading-7 first:_mt-0">The <a href="https://github.com/graphql/graphql-wg" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">main GraphQL working group</a> meets each month; and it is recorded on Zoom and made available via <a href="https://www.youtube.com/channel/UCERcwLeheOXp_u61jEXxHMA/playlists" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">the Foundation’s YouTube channel</a>. Soon after each meeting I’ve been uploading the videos not just for the main meeting but also for the various other subcommittees (<a href="https://github.com/graphql/graphiql/tree/main/working-group" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphiQL WG</a>, <a href="https://github.com/graphql/graphql-js-wg" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphQL.js WG</a>, <a href="https://github.com/graphql/graphql-over-http/tree/main/working-group" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphQL-over-HTTP WG</a>, Metadata WG, <a href="https://github.com/graphql/composite-schemas-wg" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Composite Schemas WG</a>) that may have met during the previous month. Whilst uploading the video of the main meeting, I file its notes and the action items, while also categorizing them making sure they’re assigned to the relevant person. Recently, I’ve also started adding timestamped links to the YouTube video for each action item, so we can hear the original instructions rather than just the paraphrased summaries from the notes - I think this makes them even more useful!</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Empowering other contributors</h2>
<p class="_mt-6 _leading-7 first:_mt-0">As part of my aim to document our processes and streamline things, I’ve created <a href="https://github.com/graphql/wg-template" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">a template repository</a> that can be used whenever a new GraphQL subcommittee is created. This enables all subcommittees to adopt the GraphQL meeting practices with minimal effort from the committee chair - just <a href="https://github.com/graphql/wg-template#working-group-template" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">a small list of edits</a> that take about 5 minutes when setting up the repository and of course the regular scheduling.</p>
<p class="_mt-6 _leading-7 first:_mt-0">I’ve also been working with the Linux Foundation to get subcommittee meetings scheduled onto <a href="https://calendar.google.com/calendar/embed?src=linuxfoundation.org_ik79t9uuj2p32i3r203dgv5mo8%40group.calendar.google.com" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">the GraphQL calendar</a>, and to expand <a href="https://docs.linuxfoundation.org/v2/easycla" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">EasyCLA</a> to the new repositories to ensure that everyone contributing has signed the <a href="https://github.com/graphql/graphql-wg/tree/main/membership" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphQL Membership Agreement</a>. This should make releasing future versions of the spec and any subcommittee deliverables much easier since the intellectual property paperwork is in place from the start.</p>
<p class="_mt-6 _leading-7 first:_mt-0">Thanks to the new funding I’ve also been able to be more active on GitHub issues, PRs, discussions and in <a href="https://discord.graphql.org/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">the GraphQL Discord server</a>, enabling me to offer assistance to people interested in contributing, and to help moderate these environments. This includes <a href="https://github.com/graphql/graphql-spec/issues/174#issuecomment-1129621529" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">explaining how to become a champion</a>, performing timely moderation actions when the Discord server suffers from spam, and giving guidance on how to improve PRs.</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Extra-curricular activities</h2>
<p class="_mt-6 _leading-7 first:_mt-0">Whilst not technically under the umbrella of the grant, having the time spent on the above tasks funded by the GraphQL Grant has freed me up to dedicate more time to other key issues in GraphQL - for example I <a href="https://github.com/graphql/graphql-over-http/pull/175" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">recently revived the GraphQL-over-HTTP project</a> and we’re well on the way towards v1 of that specification. I’ve also helped kick-start <a href="https://github.com/graphql/composite-schemas-wg" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">the GraphQL Composite Schemas working group</a> for the community to collaborate on shared solutions to common problems felt across all the different ways of building a GraphQL schema by combining other GraphQL schemas together. I’ve also finally been able <a href="https://github.com/graphql/graphql-spec/issues/300#issuecomment-1119676731" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">to follow through on my intent to push the “GraphQL Metadata” topic forward</a> including researching, digesting, and <a href="https://youtu.be/c1oa7p73rTw" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">sharing my analysis of the existing solutions and their problems at the GraphQL Conference</a>, and <a href="https://github.com/graphql/graphql-wg/blob/main/rfcs/AnnotationStructs.md" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">suggesting a solution of my own</a>. Another thing that this reduced pressure on my time has enabled is the <a href="https://specnewspod.com/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">new SpecNews podcast</a> in which my co-host Jem and I summarize the latest GraphQL Specification Working Group session in just 5-10 minutes.</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Get involved!</h2>
<p class="_mt-6 _leading-7 first:_mt-0">If you’re interested in contributing to GraphQL and need help getting started, feel free to reach out to me, @benjie, on <a href="https://discord.graphql.org" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Discord</a> or via a GitHub issue or PR, and I’ll do my best to help!</p>]]></description>
      <link>https://graphql.org/blog/2023-02-03-community-gardening</link>
      <guid>https://graphql.org/blog/2023-02-03-community-gardening</guid>
      <pubDate>Fri, 03 Feb 2023 01:00:00 +0100</pubDate>
    </item>
    <item>
      <title><![CDATA[Community Gardening, May - July 2022]]></title>
      <description><![CDATA[<blockquote>
<p>The GraphQL Foundation offers <a href="https://graphql.org/foundation/community-grant/" target="_blank" rel="nofollow noopener noreferrer">Community Grants</a> to help incentivize key technical and community initiatives. As part of the grant, applicants commit to write a blog post report describing their work and its impact on the GraphQL community. The following report was written by successful grant applicant <a href="https://github.com/sponsors/benjie" target="_blank" rel="nofollow noopener noreferrer">Benjie Gillam</a> in August 2022, detailing the community gardening he performed during May, June and July of that year.</p>
</blockquote><h2>Backstory<a class="hash-link" href="http://graphql.org/blog/2023-02-03-community-gardening#backstory">#</a></h2><p>In 2019 I started turning up to GraphQL Working Group meetings regularly and helping take <a href="https://github.com/graphql/graphql-wg/tree/main/notes" target="_blank" rel="nofollow noopener noreferrer">the notes</a>. Back then we had a system for filing and reviewing action items, but very few people used it, so items would easily get lost. Further, the notes and videos would be uploaded in batches every few months, which prevented attendees referring to them in the interim.</p><p>Over the next couple years I set about trying to improve these processes. I started by filing the <a href="https://github.com/graphql/graphql-wg/issues?q=is%3Aissue+sort%3Aupdated-desc+label%3A%22Action+item+%3Aclapper%3A%22" target="_blank" rel="nofollow noopener noreferrer">action items</a> myself. After a while, I started categorizing them into <a href="https://github.com/graphql/graphql-wg/projects?type=classic&amp;query=is%3Aopen+sort%3Aupdated-desc" target="_blank" rel="nofollow noopener noreferrer">GitHub projects</a>, one for each meeting, which made keeping track of them (particularly the old ones) much easier and helped us to see progress. Later I introduced a new <a href="https://github.com/graphql/graphql-wg/issues?q=is%3Aissue+sort%3Aupdated-desc+label%3A%22Ready+for+review+%F0%9F%99%8C%22+" target="_blank" rel="nofollow noopener noreferrer">"ready for review" label</a> that enabled us to quickly focus on the action items that needed discussion rather than trying to go over every item (or skip the lot entirely) each meeting. These processes were very much appreciated by the working group, but were quite time consuming for one person. As time went on my I found myself contributing to GraphQL in more and more ways, and as the time I could dedicate to these tasks dwindled, my ability to keep these processes running smoothly diminished.</p><h2>Funding approved<a class="hash-link" href="http://graphql.org/blog/2023-02-03-community-gardening#funding-approved">#</a></h2><p>In May 2022, the GraphQL Foundation kindly approved my application for a <a href="https://graphql.org/foundation/community-grant/" target="_blank" rel="nofollow noopener noreferrer">GraphQL Community Grant</a> to enable me to dedicate more time to these tasks. I'm a community-funded open source developer, so I rely on <a href="https://github.com/sponsors/benjie" target="_blank" rel="nofollow noopener noreferrer">sponsorship</a> to fund my open source endeavors - both on my own open source projects (<a href="https://github.com/graphile" target="_blank" rel="nofollow noopener noreferrer">the Graphile suite</a>) and also my contributions to the <a href="https://github.com/graphql/graphql-spec/graphs/contributors" target="_blank" rel="nofollow noopener noreferrer">GraphQL</a> <a href="https://github.com/graphql/graphql-wg/graphs/contributors" target="_blank" rel="nofollow noopener noreferrer">Working</a> <a href="https://github.com/graphql/graphql-over-http/graphs/contributors" target="_blank" rel="nofollow noopener noreferrer">Groups</a>. Since being approved for the grant, I've been better able to execute the role of community gardener; let me tell you about some of the ways in which the Foundation's grant has enabled me to better support you, the GraphQL community!</p><p>The <a href="https://github.com/graphql/graphql-wg" target="_blank" rel="nofollow noopener noreferrer">main GraphQL working group</a> meets each month; and it is recorded on Zoom and made available via <a href="https://www.youtube.com/channel/UCERcwLeheOXp_u61jEXxHMA/playlists" target="_blank" rel="nofollow noopener noreferrer">the Foundation's YouTube channel</a>. Soon after each meeting I've been uploading the videos not just for the main meeting but also for the various other subcommittees (<a href="https://github.com/graphql/graphiql/tree/main/working-group" target="_blank" rel="nofollow noopener noreferrer">GraphiQL WG</a>, <a href="https://github.com/graphql/graphql-js-wg" target="_blank" rel="nofollow noopener noreferrer">GraphQL.js WG</a>, <a href="https://github.com/graphql/graphql-over-http/tree/main/working-group" target="_blank" rel="nofollow noopener noreferrer">GraphQL-over-HTTP WG</a>, Metadata WG, <a href="https://github.com/graphql/composite-schemas-wg" target="_blank" rel="nofollow noopener noreferrer">Composite Schemas WG</a>) that may have met during the previous month. Whilst uploading the video of the main meeting, I file its notes and the action items, while also categorizing them making sure they're assigned to the relevant person. Recently, I've also started adding timestamped links to the YouTube video for each action item, so we can hear the original instructions rather than just the paraphrased summaries from the notes - I think this makes them even more useful!</p><h2>Empowering other contributors<a class="hash-link" href="http://graphql.org/blog/2023-02-03-community-gardening#empowering-other-contributors">#</a></h2><p>As part of my aim to document our processes and streamline things, I've created <a href="https://github.com/graphql/wg-template" target="_blank" rel="nofollow noopener noreferrer">a template repository</a> that can be used whenever a new GraphQL subcommittee is created. This enables all subcommittees to adopt the GraphQL meeting practices with minimal effort from the committee chair - just <a href="https://github.com/graphql/wg-template#working-group-template" target="_blank" rel="nofollow noopener noreferrer">a small list of edits</a> that take about 5 minutes when setting up the repository and of course the regular scheduling.</p><p>I've also been working with the Linux Foundation to get subcommittee meetings scheduled onto <a href="https://calendar.google.com/calendar/embed?src=linuxfoundation.org_ik79t9uuj2p32i3r203dgv5mo8%40group.calendar.google.com" target="_blank" rel="nofollow noopener noreferrer">the GraphQL calendar</a>, and to expand <a href="https://docs.linuxfoundation.org/v2/easycla" target="_blank" rel="nofollow noopener noreferrer">EasyCLA</a> to the new repositories to ensure that everyone contributing has signed the <a href="https://github.com/graphql/graphql-wg/tree/main/membership" target="_blank" rel="nofollow noopener noreferrer">GraphQL Membership Agreement</a>. This should make releasing future versions of the spec and any subcommittee deliverables much easier since the intellectual property paperwork is in place from the start.</p><p>Thanks to the new funding I've also been able to be more active on GitHub issues, PRs, discussions and in <a href="https://discord.graphql.org/" target="_blank" rel="nofollow noopener noreferrer">the GraphQL Discord server</a>, enabling me to offer assistance to people interested in contributing, and to help moderate these environments. This includes <a href="https://github.com/graphql/graphql-spec/issues/174#issuecomment-1129621529" target="_blank" rel="nofollow noopener noreferrer">explaining how to become a champion</a>, performing timely moderation actions when the Discord server suffers from spam, and giving guidance on how to improve PRs.</p><h2>Extra-curricular activities<a class="hash-link" href="http://graphql.org/blog/2023-02-03-community-gardening#extra-curricular-activities">#</a></h2><p>Whilst not technically under the umbrella of the grant, having the time spent on the above tasks funded by the GraphQL Grant has freed me up to dedicate more time to other key issues in GraphQL - for example I <a href="https://github.com/graphql/graphql-over-http/pull/175" target="_blank" rel="nofollow noopener noreferrer">recently revived the GraphQL-over-HTTP project</a> and we're well on the way towards v1 of that specification. I've also helped kick-start <a href="https://github.com/graphql/composite-schemas-wg" target="_blank" rel="nofollow noopener noreferrer">the GraphQL Composite Schemas working group</a> for the community to collaborate on shared solutions to common problems felt across all the different ways of building a GraphQL schema by combining other GraphQL schemas together. I've also finally been able <a href="https://github.com/graphql/graphql-spec/issues/300#issuecomment-1119676731" target="_blank" rel="nofollow noopener noreferrer">to follow through on my intent to push the "GraphQL Metadata" topic forward</a> including researching, digesting, and <a href="https://youtu.be/c1oa7p73rTw" target="_blank" rel="nofollow noopener noreferrer">sharing my analysis of the existing solutions and their problems at the GraphQL Conference</a>, and <a href="https://github.com/graphql/graphql-wg/blob/main/rfcs/AnnotationStructs.md" target="_blank" rel="nofollow noopener noreferrer">suggesting a solution of my own</a>. Another thing that this reduced pressure on my time has enabled is the <a href="https://specnewspod.com/" target="_blank" rel="nofollow noopener noreferrer">new SpecNews podcast</a> in which my co-host Jem and I summarize the latest GraphQL Specification Working Group session in just 5-10 minutes.</p><h2>Get involved!<a class="hash-link" href="http://graphql.org/blog/2023-02-03-community-gardening#get-involved">#</a></h2><p>If you're interested in contributing to GraphQL and need help getting started, feel free to reach out to me, @benjie, on <a href="https://discord.graphql.org" target="_blank" rel="nofollow noopener noreferrer">Discord</a> or via a GitHub issue or PR and I'll do my best to help!</p>]]></description>
      <link>http://graphql.org/blog/2023-02-03-community-gardening</link>
      <guid>http://graphql.org/blog/2023-02-03-community-gardening</guid>
      <pubDate>Fri, 03 Feb 2023 01:00:00 +0100</pubDate>
    </item>
    <item>
      <title><![CDATA[GraphQL Custom Scalar specifications]]></title>
      <description><![CDATA[<p>1/14/2023 by Andreas Marek, Donna Zhou</p><p><a href="http://graphql.org/tags/announcements/">announcements</a></p><div><p>We are very happy to announce the official home for contributed GraphQL <a href="https://spec.graphql.org/draft/#sec-Scalars.Custom-Scalars" target="_blank" rel="nofollow noopener noreferrer">custom scalar</a> specifications at <a href="https://scalars.graphql.org/" target="_blank" rel="nofollow noopener noreferrer">scalars.graphql.org</a>.</p><p>You are welcome to contribute custom scalar specifications (abbreviated as "specs"). Once your spec is merged in, it will be hosted at <code>scalars.graphql.org/&lt;GitHub-username&gt;/&lt;specification-name&gt;</code>. See how to contribute on the <a href="https://scalars.graphql.org/readme-contribution-guide" target="_blank" rel="nofollow noopener noreferrer">contribution guide</a>.</p><p>Our first contributed spec is for <a href="https://scalars.graphql.org/andimarek/date-time" target="_blank" rel="nofollow noopener noreferrer">DateTime</a>. You can point users to the spec's URL with the built-in <code>@specifiedBy</code> <a href="https://spec.graphql.org/draft/#sec--specifiedBy" target="_blank" rel="nofollow noopener noreferrer">directive</a> in your GraphQL schema.</p><div class="token-line"><code>scalar DateTime</code></div><div class="token-line"><code>@specifiedBy(url:"https://scalars.graphql.org/andimarek/date-time")</code></div><h2>Elevating the GraphQL type system with custom scalars<a class="hash-link" href="http://graphql.org/blog/2023-01-14-graphql-scalars#elevating-the-graphql-type-system-with-custom-scalars">#</a></h2><p>Custom scalars have been part of the GraphQL spec since day one. They have the unique ability to extend the GraphQL type system with custom types. While custom scalars are powerful, they were more like a black box for the consumers of the API.</p><p>Originally, it was very hard for consumers to understand custom scalars as a GraphQL schema did not provide any information apart from its name. For example, it was difficult to understand the exact format of a <code>DateTime</code> custom scalar. It was also difficult to know whether the <code>DateTime</code> custom scalar in API A was exactly the same as the <code>DateTime</code> in API B.</p><p>We added the built-in <code>@specifiedBy</code> directive some time ago, which assigns a URL for the spec of a custom scalar. This provides a standard way to document custom scalars. The <code>@specifiedBy</code> directive is also introspectable.</p><p>However, we have since learned that this was not enough. The burden of writing a custom scalar specs and hosting them was left for each API itself to solve.</p><p>With the custom scalar spec project, we provide templates for writing custom scalar specs and also host the specs at a GraphQL Foundation owned domain <a href="https://scalars.graphql.org/" target="_blank" rel="nofollow noopener noreferrer">scalars.graphql.org</a>. This greatly reduces the effort to clearly document and share your custom scalar specs.</p><p>Our hope is that this enables an ecosystem of clearly documented custom scalars and eliminates the need to reinvent popular ones again and again. Ultimately, a popular enough custom scalar will be practically indistinguishable from the built-in ones and elevate the GraphQL type system.</p><h2>Get involved!<a class="hash-link" href="http://graphql.org/blog/2023-01-14-graphql-scalars#get-involved">#</a></h2><p>See how to contribute a custom scalar spec on the <a href="https://scalars.graphql.org/readme-contribution-guide" target="_blank" rel="nofollow noopener noreferrer">contribution guide</a>.</p><p>If you have any comments or questions, please open an issue on the <a href="https://github.com/graphql/graphql-scalars" target="_blank" rel="nofollow noopener noreferrer">graphql-scalars GitHub repository</a>.</p></div>]]></description>
      <link>http://graphql.org/blog/2023-01-14-graphql-scalars</link>
      <guid>http://graphql.org/blog/2023-01-14-graphql-scalars</guid>
      <pubDate>Sat, 14 Jan 2023 01:00:00 +0100</pubDate>
    </item>
    <item>
      <title><![CDATA[GraphQL Custom Scalar specifications]]></title>
      <description><![CDATA[<p><time datetime="2023-01-14T00:00:00.000Z">January 14, 2023</time> by Andreas Marek, Donna Zhou</p><p><a class="transition-colors py-1 px-2.5 capitalize rounded bg-zinc-200 dark:bg-zinc-700 font-bold hover:!no-underline hover:!bg-primary hover:text-white dark:hover:text-zinc-900" href="https://graphql.org/tags/announcements/">announcements</a></p>
<p class="_mt-6 _leading-7 first:_mt-0">We are very happy to announce the official home for contributed GraphQL <a href="https://spec.graphql.org/draft/#sec-Scalars.Custom-Scalars" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">custom scalar</a> specifications at <a href="https://scalars.graphql.org/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">scalars.graphql.org</a>.</p>
<p class="_mt-6 _leading-7 first:_mt-0">You are welcome to contribute custom scalar specifications (abbreviated as “specs”). Once your spec is merged in, it will be hosted at . See how to contribute on the <a href="https://scalars.graphql.org/readme-contribution-guide" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">contribution guide</a>.</p>
<p class="_mt-6 _leading-7 first:_mt-0">Our first contributed spec is for <a href="https://scalars.graphql.org/andimarek/date-time" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">DateTime</a>. You can point users to the spec’s URL with the built-in  <a href="https://spec.graphql.org/draft/#sec--specifiedBy" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">directive</a> in your GraphQL schema.</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Elevating the GraphQL type system with custom scalars</h2>
<p class="_mt-6 _leading-7 first:_mt-0">Custom scalars have been part of the GraphQL spec since day one. They have the unique ability to extend the GraphQL type system with custom types. While custom scalars are powerful, they were more like a black box for the consumers of the API.</p>
<p class="_mt-6 _leading-7 first:_mt-0">Originally, it was very hard for consumers to understand custom scalars as a GraphQL schema did not provide any information apart from its name. For example, it was difficult to understand the exact format of a  custom scalar. It was also difficult to know whether the  custom scalar in API A was exactly the same as the  in API B.</p>
<p class="_mt-6 _leading-7 first:_mt-0">We added the built-in  directive some time ago, which assigns a URL for the spec of a custom scalar. This provides a standard way to document custom scalars. The  directive is also introspectable.</p>
<p class="_mt-6 _leading-7 first:_mt-0">However, we have since learned that this was not enough. The burden of writing a custom scalar specs and hosting them was left for each API itself to solve.</p>
<p class="_mt-6 _leading-7 first:_mt-0">With the custom scalar spec project, we provide templates for writing custom scalar specs and also host the specs at a GraphQL Foundation owned domain <a href="https://scalars.graphql.org/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">scalars.graphql.org</a>. This greatly reduces the effort to clearly document and share your custom scalar specs.</p>
<p class="_mt-6 _leading-7 first:_mt-0">Our hope is that this enables an ecosystem of clearly documented custom scalars and eliminates the need to reinvent popular ones again and again. Ultimately, a popular enough custom scalar will be practically indistinguishable from the built-in ones and elevate the GraphQL type system.</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Get involved!</h2>
<p class="_mt-6 _leading-7 first:_mt-0">See how to contribute a custom scalar spec on the <a href="https://scalars.graphql.org/readme-contribution-guide" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">contribution guide</a>.</p>
<p class="_mt-6 _leading-7 first:_mt-0">If you have any comments or questions, please open an issue on the <a href="https://github.com/graphql/graphql-scalars" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">graphql-scalars GitHub repository</a>.</p>]]></description>
      <link>https://graphql.org/blog/2023-01-14-graphql-scalars</link>
      <guid>https://graphql.org/blog/2023-01-14-graphql-scalars</guid>
      <pubDate>Sat, 14 Jan 2023 01:00:00 +0100</pubDate>
    </item>
    <item>
      <title><![CDATA[GraphQL Custom Scalar specifications]]></title>
      <description><![CDATA[<p>12/1/2022 by Andreas Marek, Donna Zhou</p><p><a href="http://graphql.org/tags/announcements/">announcements</a></p><div><p>We are very happy to announce the official home for contributed GraphQL <a href="https://spec.graphql.org/draft/#sec-Scalars.Custom-Scalars" target="_blank" rel="nofollow noopener noreferrer">custom scalar</a> specifications at <a href="https://scalars.graphql.org/" target="_blank" rel="nofollow noopener noreferrer">scalars.graphql.org</a>.</p><p>You are welcome to <a href="https://scalars.graphql.org/new-scalar" target="_blank" rel="nofollow noopener noreferrer">contribute</a> custom scalar specifications. Once your specification is merged in, it will be hosted at <code>scalars.graphql.org/&lt;GitHub-username&gt;/&lt;specification-name&gt;</code>.</p><p>Our first contributed specification is for <a href="https://scalars.graphql.org/andimarek/date-time" target="_blank" rel="nofollow noopener noreferrer">DateTime</a>. You can point users to the specification's URL with the built-in <code>@specifiedBy</code> <a href="https://spec.graphql.org/draft/#sec--specifiedBy" target="_blank" rel="nofollow noopener noreferrer">directive</a> in your GraphQL schema.</p><div class="token-line"><code>scalar DateTime @specifiedBy(url:"https://scalars.graphql.org/andimarek/date-time")</code></div><h2>Why we need custom scalar specifications<a class="hash-link" href="http://graphql.org/blog/2022-12-01-custom-scalars#why-we-need-custom-scalar-specifications">#</a></h2><p>We were inspired to start this project after an incident at work caused by a difference in <code>DateTime</code> implementations in two GraphQL services. The problem was a difference in how many digits were used to represent a fraction of a second. This incident highlighted a flaw in the often cited <a href="https://www.ietf.org/rfc/rfc3339.txt" target="_blank" rel="nofollow noopener noreferrer">RFC-3339 specification</a>, which does not explicitly state the number of digits to be used to represent a fraction of a second.</p><p>To prevent such incidents in the future, we created a <a href="https://scalars.graphql.org/andimarek/date-time" target="_blank" rel="nofollow noopener noreferrer">refined version</a> of the RFC-3339 specification, so that <code>DateTime</code> scalars can be consistently implemented in any GraphQL service. We thought others might be interested in our <code>DateTime</code> specification too, so we created a <a href="https://github.com/graphql/graphql-scalars" target="_blank" rel="nofollow noopener noreferrer">repository</a> to share custom scalar specifications.</p><p>We wanted to make documentation easy and use the built-in <code>@specifiedBy</code> directive to reference specifications. We have set up a public and official GraphQL Foundation-owned domain to host specifications. Your contributed specifications will be published at <code>scalars.graphql.org/&lt;GitHub-username&gt;/&lt;specification-name&gt;</code>.</p><p>You can reference specifications inside a schema as follows:</p><div class="token-line"><code>scalar DateTime @specifiedBy(url:"https://scalars.graphql.org/andimarek/date-time")</code></div><p>You can also reference specifications inside custom scalar implementations, for example in the <code>graphql-java-extended-scalars</code> <a href="https://github.com/graphql-java/graphql-java-extended-scalars/blob/master/src/main/java/graphql/scalars/datetime/DateTimeScalar.java#L113" target="_blank" rel="nofollow noopener noreferrer">DateTime scalar</a>.</p><h2>How to contribute custom scalar specifications<a class="hash-link" href="http://graphql.org/blog/2022-12-01-custom-scalars#how-to-contribute-custom-scalar-specifications">#</a></h2><p>See the <a href="https://scalars.graphql.org/new-scalar" target="_blank" rel="nofollow noopener noreferrer">contribution guide</a> and the <a href="https://scalars.graphql.org/guide" target="_blank" rel="nofollow noopener noreferrer">implementation guide</a>. We have included a <a href="https://scalars.graphql.org/template" target="_blank" rel="nofollow noopener noreferrer">general template</a> and a more <a href="https://scalars.graphql.org/template-string" target="_blank" rel="nofollow noopener noreferrer">simplified template for String-based scalars</a>.</p><p>Open a pull request on the <a href="https://github.com/graphql/graphql-scalars" target="_blank" rel="nofollow noopener noreferrer">graphql-scalars GitHub repository</a> to add your custom scalar specification. Once merged, your specification will be hosted at <code>scalars.graphql.org/&lt;GitHub-username&gt;/&lt;specification-name&gt;</code>.</p><h2>Get involved!<a class="hash-link" href="http://graphql.org/blog/2022-12-01-custom-scalars#get-involved">#</a></h2><p>If you have any comments or questions, please open an issue on the <a href="https://github.com/graphql/graphql-scalars" target="_blank" rel="nofollow noopener noreferrer">graphql-scalars GitHub repository</a>.</p><p>We hope to avoid incidents in the future by making it easier to document, standardize, and share custom scalar specifications. We are looking forward to seeing your custom scalar specifications!</p></div>]]></description>
      <link>http://graphql.org/blog/2022-12-01-custom-scalars</link>
      <guid>http://graphql.org/blog/2022-12-01-custom-scalars</guid>
      <pubDate>Thu, 01 Dec 2022 01:00:00 +0100</pubDate>
    </item>
    <item>
      <title><![CDATA[GraphQL Foundation adopts graphql-http]]></title>
      <description><![CDATA[<p><time datetime="2022-11-07T00:00:00.000Z">November 7, 2022</time> by GraphQL Foundation</p><p><a class="transition-colors py-1 px-2.5 capitalize rounded bg-zinc-200 dark:bg-zinc-700 font-bold hover:!no-underline hover:!bg-primary hover:text-white dark:hover:text-zinc-900" href="https://graphql.org/tags/newsletter/">newsletter</a></p>
<p class="_mt-6 _leading-7 first:_mt-0">GraphQL is most commonly served over HTTP. However, despite GraphQL being well specified, this HTTP transport is not. To correct for this, the GraphQL working group has been working on the <a href="https://graphql.github.io/graphql-over-http/draft/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphQL over HTTP</a> specification.</p>
<p class="_mt-6 _leading-7 first:_mt-0">Alongside a specification, we prefer a true implementation to have as a reference. This ensures the ideas we specify can be implemented well, and that as edge-cases arise in software we can ensure their solutions are reflected in the specification as well.</p>
<p class="_mt-6 _leading-7 first:_mt-0">For GraphQL over HTTP, this has nominally been <a href="https://github.com/graphql/express-graphql" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">express-graphql</a>. This package makes it easy to create a GraphQL serving endpoint from an express server. However, as the Node community has grown over the years, alternatives to express have emerged and there is no longer one framework to align to. Also, as our maintenance bandwidth has focused on other projects, express-graphql has fallen behind.</p>
<p class="_mt-6 _leading-7 first:_mt-0">Luckily, thanks to the focused efforts of <a href="https://github.com/enisdenjo" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Denis Badurina</a>, we have an alternative in <a href="https://github.com/graphql/graphql-http" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">graphql-http</a>. Denis has been part of the committee working on the GraphQL over HTTP specification, and sought to build a dependency-free compliant GraphQL server that works with most all existing Node.js and Deno HTTP frameworks.</p>
<p class="_mt-6 _leading-7 first:_mt-0">The decision was made to adopt the <a href="https://github.com/graphql/graphql-http" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">graphql-http</a> project into the GraphQL Foundation (with Denis continuing as the lead maintainer), as well as to make it the official reference implementation of GraphQL over HTTP.</p>
<p class="_mt-6 _leading-7 first:_mt-0">We will be deprecating <a href="https://github.com/graphql/express-graphql" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">express-graphql</a> as part of this change, and recommending those using it migrate to graphql-http.</p>]]></description>
      <link>https://graphql.org/blog/2022-11-07-graphql-http</link>
      <guid>https://graphql.org/blog/2022-11-07-graphql-http</guid>
      <pubDate>Mon, 07 Nov 2022 01:00:00 +0100</pubDate>
    </item>
    <item>
      <title><![CDATA[GraphQL Foundation adopts graphql-http]]></title>
      <description><![CDATA[<p>11/7/2022 by GraphQL Foundation</p><p><a href="http://graphql.org/tags/newsletter/">newsletter</a></p><div><p>GraphQL is most commonly served over HTTP. However despite GraphQL being well specified, this HTTP transport is not. To correct for this, the GraphQL working group has been working on the <a href="https://graphql.github.io/graphql-over-http/draft/" target="_blank" rel="nofollow noopener noreferrer">GraphQL over HTTP</a> specification.</p><p>Alongside a specification, we prefer a true implementation to have as a reference. This ensures the ideas we specify can be implemented well, and that as edge-cases arise in software we can ensure their solutions are reflected in the specification as well.</p><p>For GraphQL over HTTP, this has nominally been <a href="https://github.com/graphql/express-graphql" target="_blank" rel="nofollow noopener noreferrer">express-graphql</a>. This package makes it easy to create a GraphQL serving endpoint from an express server. However as the Node community has grown over the years, alternatives to express have emerged and there is no longer one framework to align to. Also, as our maintenance bandwidth has focused on other projects, express-graphql has fallen behind.</p><p>Luckily, thanks to the focused efforts of <a href="https://github.com/enisdenjo" target="_blank" rel="nofollow noopener noreferrer">Denis Badurina</a>, we have an alternative in <a href="https://github.com/graphql/graphql-http" target="_blank" rel="nofollow noopener noreferrer">graphql-http</a>. Denis has been part of the committee working on the GraphQL over HTTP specification, and sought to build a depenency-free compliant GraphQL server that works with most all existing Node and Deno HTTP frameworks.</p><p>The decision was made to adopt the <a href="https://github.com/graphql/graphql-http" target="_blank" rel="nofollow noopener noreferrer">graphql-http</a> project into the GraphQL Foundation (with Denis continuing as the lead maintainer), as well as to make it the official reference implementation of GraphQL over HTTP.</p><p>We will be deprecating <a href="https://github.com/graphql/express-graphql" target="_blank" rel="nofollow noopener noreferrer">express-graphql</a> as part of this change, and recommending those using it migrate to graphql-http.</p></div>]]></description>
      <link>http://graphql.org/blog/2022-11-07-graphql-foundation-graphql-http</link>
      <guid>http://graphql.org/blog/2022-11-07-graphql-foundation-graphql-http</guid>
      <pubDate>Mon, 07 Nov 2022 01:00:00 +0100</pubDate>
    </item>
    <item>
      <title><![CDATA[GraphQL Foundation Monthly Newsletter June 2021]]></title>
      <description><![CDATA[<p><time datetime="2021-06-30T00:00:00.000Z">June 30, 2021</time> by GraphQL Foundation</p><p><a class="transition-colors py-1 px-2.5 capitalize rounded bg-zinc-200 dark:bg-zinc-700 font-bold hover:!no-underline hover:!bg-primary hover:text-white dark:hover:text-zinc-900" href="https://graphql.org/tags/newsletter/">newsletter</a></p>
<p class="_mt-6 _leading-7 first:_mt-0"><a class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]" href="https://graphql.org/">GraphQL</a> has redefined how developers work with APIs and client-server interactions. And as the community works hard to foster the growth and adoption of GraphQL, we are excited to share the work of the community and discussions via the monthly GraphQL Foundation newsletter.</p>
<p class="_mt-6 _leading-7 first:_mt-0">GraphQL reached new heights in 2020 and is only poised to continue its meteoric rise in 2021. Thank you again for your involvement in this project and your support of the GraphQL Foundation. We are excited for another productive year!</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Working Group Updates</h2>
<h3 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-8 _text-2xl">GraphQL Foundation marketing committee</h3>
<p class="_mt-6 _leading-7 first:_mt-0">The newly created GraphQL Foundation marketing committee is responsible for coordinating marketing activities in support of the <a href="https://foundation.graphql.org/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Foundation</a> and the <a href="https://github.com/graphql" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">projects</a>. They meet regularly, and welcome participation from Foundation and community members.</p>
<p class="_mt-6 _leading-7 first:_mt-0">The meeting agendas and minutes are open and available in <a href="https://github.com/graphql/marketing/blob/main/meetings" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">meetings/</a>. We generally meet on the fourth Thursday of the month at 9am PT. To be added to the recurring invite, please contact <a class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]" href="mailto:operations@graphql.org">operations@graphql.org</a>.</p>
<h3 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-8 _text-2xl"><a href="https://github.com/graphql/graphql-spec/milestone/2" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Release plan for next version of GraphQL specification</a></h3>
<p class="_mt-6 _leading-7 first:_mt-0">The next release is in the final stages of review and is anticipated to be released soon. Details on the release are TBD.</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Schema Coordinates update</h2>
<p class="_mt-6 _leading-7 first:_mt-0">The WG is evaluating how to use Schema Coordinates (e.g. what can we improve by using schema coordinates, and is Looking for support in advancing from Draft to Accepted.</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Full unicode support</h2>
<p class="_mt-6 _leading-7 first:_mt-0">The WG is looking for support in advancing this iteration from Proposal to Draft. Most notably full unicode is already supported today, albeit without having explicit tests for it.</p>
<p class="_mt-6 _leading-7 first:_mt-0">The only new code that is added is the verification of the surrogate pairs. The current implementation allows for invalid surrogate pairs.</p>
<h3 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-8 _text-2xl">Fragment Arguments RFC</h3>
<p class="_mt-6 _leading-7 first:_mt-0">For the past 5+ years, Relay has had the <a href="https://relay.dev/docs/api-reference/graphql-and-directives/#arguments" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">@arguments directive</a>, which is not spec compliant. In some sense, Relay is a <em>dual GraphQL client</em>: there’s Relay syntax which is used to resolve data available locally on the client, and then that syntax compiles down into a spec compliant syntax to resolve data from an external source (aka a “server”), which hydrates a graph of “local” data the relay-specific resolvers operate over.</p>
<p class="_mt-6 _leading-7 first:_mt-0">This means Relay can get away with having user-written fragments that are freed from operation-defined knowledge: Relay’s fragments can be provided with variable values that were never defined at the operation level, to use when resolving arguments.</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Roundtable discussion on /</h2>
<p class="_mt-6 _leading-7 first:_mt-0">Read the lengthy and informative conversation <a href="https://github.com/graphql/graphql-wg/blob/main/notes/2021-06-03.md" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">here</a>, or watch on YouTube <a href="https://www.youtube.com/watch?v=d4HhIo82Whg&amp;list=PLP1igyLx8foH30_sDnEZnxV_8pYW3SDtb&amp;index=1" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">here</a>.</p>
<h3 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-8 _text-2xl">graphql-js update on the Typescript migration</h3>
<p class="_mt-6 _leading-7 first:_mt-0">The working group will be converting as much of graphql-js to TypeScript as possible, which will probably need some breaking changes due to default values and other changes. One of the aims is to also be readable so they might release these breaking changes along with the TypeScript migration.</p>
<h3 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-8 _text-2xl">Default Value Coercion RFC</h3>
<p class="_mt-6 _leading-7 first:_mt-0">The WG has spent several weeks working to integrate the default value changes into GraphQL Ruby, which has resulted in several architectural discussions and some bug reports.</p>
<h3 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-8 _text-2xl">Glossary RFC</h3>
<p class="_mt-6 _leading-7 first:_mt-0">The purpose of this RFC is to add clarity and precision, especially after the many meanings of a query. The WG is working to define the terms first, then will revisit extracting it into an appendix.</p>
<h3 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-8 _text-2xl">Query Level Nullability RFC</h3>
<p class="_mt-6 _leading-7 first:_mt-0">Used by many including Yelp and Netflix, the proposal is to allow queries that can include a non-null designator (!) to indicate that a field should be treated non-nullable and if it returns null it should escalate following the standard GraphQL error bubbling.</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">In Other News…</h2>
<ul class="_mt-6 _list-disc first:_mt-0 ltr:_ml-6 rtl:_mr-6"><li class="_my-2">Database, Trends &amp; Applications: <a href="https://www.dbta.com/Editorial/News-Flashes/Hasura-Adds-the-Ability-to-Access-Existing-Data-and-Move-it-with-GraphQL-API-147680.aspx" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Hasura Adds the Ability to Access Existing Data and Move it with GraphQL API</a></li>
<li class="_my-2">InfoQ: <a href="https://www.infoq.com/presentations/twitter-public-api/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Rebuilding Twitter’s Public API</a></li>
<li class="_my-2">ZDNet: <a href="https://www.zdnet.com/article/mulesoft-adds-datagraph-to-anypoint-platform-streamlining-api-requests/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">MuleSoft adds DataGraph to Anypoint Platform to streamline API requests</a></li>
</ul><h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Upcoming Events</h2>
<ul class="_mt-6 _list-disc first:_mt-0 ltr:_ml-6 rtl:_mr-6"><li class="_my-2"><a href="https://graphqlconf.org" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphQL Conf. 2021</a> - September 29th</li>
</ul><h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Get Involved!</h2>
<p class="_mt-6 _leading-7 first:_mt-0">Developers can get involved in the community and contribute to the project at <a href="https://github.com/graphql" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">https://github.com/graphql</a>.</p>
<p class="_mt-6 _leading-7 first:_mt-0">Organizations interested in becoming members of the GraphQL Foundation or the GraphQL Specification can learn more on our <a href="https://graphql.org/foundation/join" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">member page</a>. If you have questions about membership, please send an email to <a class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]" href="mailto:membership@graphql.org">membership@graphql.org</a>.</p>]]></description>
      <link>https://graphql.org/blog/2021-06-30-newsletter-june-2021</link>
      <guid>https://graphql.org/blog/2021-06-30-newsletter-june-2021</guid>
      <pubDate>Wed, 30 Jun 2021 02:00:00 +0200</pubDate>
    </item>
    <item>
      <title><![CDATA[GraphQL Foundation Monthly Newsletter June 2021]]></title>
      <description><![CDATA[<p><a href="https://graphql.org/" target="_blank" rel="nofollow noopener noreferrer">GraphQL</a> has redefined how developers work with APIs and client-server interactions. And as the community works hard to foster the growth and adoption of GraphQL, we are excited to share the work of the community and discussions via the monthly GraphQL Foundation newsletter.</p><p>GraphQL reached new heights in 2020 and is only poised to continue it’s meteoric rise in 2021. Thank you again for your involvement in this project and your support of the GraphQL Foundation. We are excited for another productive year!</p><h2>Working Group Updates<a class="hash-link" href="http://graphql.org/blog/2021-06-30-graphql-foundation-monthly-newsletter-june-2021#working-group-updates">#</a></h2><h3>GraphQL Foundation marketing committee<a class="hash-link" href="http://graphql.org/blog/2021-06-30-graphql-foundation-monthly-newsletter-june-2021#graphql-foundation-marketing-committee">#</a></h3><p>The newly created GraphQL Foundation marketing committee is responsible for coordinating marketing activities in support of the <a href="https://foundation.graphql.org/" target="_blank" rel="nofollow noopener noreferrer">Foundation</a> and the <a href="https://github.com/graphql" target="_blank" rel="nofollow noopener noreferrer">projects</a>. They meet regularly, and welcome participation from Foundation and community members.</p><p>The meeting agendas and minutes are open and available in <a href="https://github.com/graphql/marketing/blob/main/meetings" target="_blank" rel="nofollow noopener noreferrer">meetings/</a>. We generally meet on the fourth Thursday of the month at 9am PT. To be added to the recurring invite, please contact <a href="mailto:operations@graphql.org" target="_blank" rel="nofollow noopener noreferrer">operations@graphql.org</a>.</p><h3><a href="https://github.com/graphql/graphql-spec/milestone/2" target="_blank" rel="nofollow noopener noreferrer">Release plan for next version of GraphQL specification</a><a class="hash-link" href="http://graphql.org/blog/2021-06-30-graphql-foundation-monthly-newsletter-june-2021#release-plan-for-next-version-of-graphql-specification-https-github-com-graphql-graphql-spec-milestone-2">#</a></h3><p>The next release is in the final stages of review and is anticipated to be released soon. Details on the release are TBD.</p><h2>Schema Coordinates update<a class="hash-link" href="http://graphql.org/blog/2021-06-30-graphql-foundation-monthly-newsletter-june-2021#schema-coordinates-update">#</a></h2><p>The WG is evaluating how to use Schema Coordinates (e.g. what can we improve by using schema coordinates, and is Looking for support in advancing from Draft to Accepted.</p><h2>Full unicode support<a class="hash-link" href="http://graphql.org/blog/2021-06-30-graphql-foundation-monthly-newsletter-june-2021#full-unicode-support">#</a></h2><p>The WG is looking for support in advancing this iteration from Proposal to Draft. Most notably full unicode is already supported today, albeit without having explicit tests for it.</p><p>The only new code that is added is the verification of the surrogate pairs. The current implementation allows for invalid surrogate pairs.</p><h3>Fragment Arguments RFC<a class="hash-link" href="http://graphql.org/blog/2021-06-30-graphql-foundation-monthly-newsletter-june-2021#fragment-arguments-rfc">#</a></h3><p>For the past 5+ years, Relay has had the <a href="https://relay.dev/docs/api-reference/graphql-and-directives/#arguments" target="_blank" rel="nofollow noopener noreferrer">@arguments directive</a>, which is not spec compliant. In some sense, Relay is a <em>dual GraphQL client</em>: there's Relay syntax which is used to resolve data available locally on the client, and then that syntax compiles down into a spec compliant syntax to resolve data from an external source (aka a "server"), which hydrates a graph of "local" data the relay-specific resolvers operate over.</p><p>This means Relay can get away with having user-written fragments that are freed from operation-defined knowledge: Relay's fragments can be provided with variable values that were never defined at the operation level, to use when resolving arguments.</p><h2>Roundtable discussion on @defer/@stream<a class="hash-link" href="http://graphql.org/blog/2021-06-30-graphql-foundation-monthly-newsletter-june-2021#roundtable-discussion-on-defer-stream">#</a></h2><p>Read the lengthy and informative conversation <a href="https://github.com/graphql/graphql-wg/blob/main/notes/2021-06-03.md" target="_blank" rel="nofollow noopener noreferrer">here</a>, or watch on Youtube <a href="https://www.youtube.com/watch?v=d4HhIo82Whg&amp;list=PLP1igyLx8foH30_sDnEZnxV_8pYW3SDtb&amp;index=1" target="_blank" rel="nofollow noopener noreferrer">here</a>.</p><h3>graphql-js update on the Typescript migration<a class="hash-link" href="http://graphql.org/blog/2021-06-30-graphql-foundation-monthly-newsletter-june-2021#graphql-js-update-on-the-typescript-migration">#</a></h3><p>The working group will be converting as much of graphql-js to TypeScript as possible, which will probably need some breaking changes due to default values and other changes. One of the aims is to also be readable so they might release these breaking changes along with the TypeScript migration.</p><h3>Default Value Coercion RFC<a class="hash-link" href="http://graphql.org/blog/2021-06-30-graphql-foundation-monthly-newsletter-june-2021#default-value-coercion-rfc">#</a></h3><p>The WG has spent several weeks working to integrate the default value changes into GraphQL Ruby, which has resulted in several architectural discussions and some bug reports.</p><h3>Glossary RFC<a class="hash-link" href="http://graphql.org/blog/2021-06-30-graphql-foundation-monthly-newsletter-june-2021#glossary-rfc">#</a></h3><p>The purpose of this RFC is to add clarity and precision, especially after the many meanings of a query. The WG is working to define the terms first, then will revisit extracting it into an appendix.</p><h3>Query Level Nullability RFC<a class="hash-link" href="http://graphql.org/blog/2021-06-30-graphql-foundation-monthly-newsletter-june-2021#query-level-nullability-rfc">#</a></h3><p>Used by many including Yelp and Netflix, the proposal is to allow queries that can include a non-null designator (!) to indicate that a field should be treated non-nullable and if it returns null it should escalate following the standard GraphQL error bubbling.</p><h2>In Other News...<a class="hash-link" href="http://graphql.org/blog/2021-06-30-graphql-foundation-monthly-newsletter-june-2021#in-other-news">#</a></h2><ul><li>Database, Trends &amp; Applications: <a href="https://www.dbta.com/Editorial/News-Flashes/Hasura-Adds-the-Ability-to-Access-Existing-Data-and-Move-it-with-GraphQL-API-147680.aspx" target="_blank" rel="nofollow noopener noreferrer">Hasura Adds the Ability to Access Existing Data and Move it with GraphQL API</a></li>
<li>InfoQ: <a href="https://www.infoq.com/presentations/twitter-public-api/" target="_blank" rel="nofollow noopener noreferrer">Rebuilding Twitter's Public API</a></li>
<li>ZDNet: <a href="https://www.zdnet.com/article/mulesoft-adds-datagraph-to-anypoint-platform-streamlining-api-requests/" target="_blank" rel="nofollow noopener noreferrer">MuleSoft adds DataGraph to Anypoint Platform to streamline API requests</a></li>
</ul><h2>Upcoming Events:<a class="hash-link" href="http://graphql.org/blog/2021-06-30-graphql-foundation-monthly-newsletter-june-2021#upcoming-events">#</a></h2><ul><li><a href="https://graphqlconf.org/" target="_blank" rel="nofollow noopener noreferrer">GraphQL Conf. 2021</a> - September 29th</li>
</ul><h2>Get Involved!<a class="hash-link" href="http://graphql.org/blog/2021-06-30-graphql-foundation-monthly-newsletter-june-2021#get-involved">#</a></h2><p>Developers can get involved in the community and contribute to the project at <a href="https://github.com/graphql">https://github.com/graphql</a>.</p><p>Organizations interested in becoming members of the GraphQL Foundation or the GraphQL Specification can learn more on our <a href="https://graphql.org/foundation/join" target="_blank" rel="nofollow noopener noreferrer">member page</a>. If you have questions about membership, please send an email to membership@graphql.org.</p>]]></description>
      <link>http://graphql.org/blog/2021-06-30-graphql-foundation-monthly-newsletter-june-2021</link>
      <guid>http://graphql.org/blog/2021-06-30-graphql-foundation-monthly-newsletter-june-2021</guid>
      <pubDate>Wed, 30 Jun 2021 02:00:00 +0200</pubDate>
    </item>
    <item>
      <title><![CDATA[GraphQL Foundation Monthly Newsletter April 2021]]></title>
      <description><![CDATA[<p><time datetime="2021-04-30T00:00:00.000Z">April 30, 2021</time> by GraphQL Foundation</p><p><a class="transition-colors py-1 px-2.5 capitalize rounded bg-zinc-200 dark:bg-zinc-700 font-bold hover:!no-underline hover:!bg-primary hover:text-white dark:hover:text-zinc-900" href="https://graphql.org/tags/newsletter/">newsletter</a></p>
<p class="_mt-6 _leading-7 first:_mt-0"><a class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]" href="https://graphql.org/">GraphQL</a> has redefined how developers work with APIs and client-server interactions. And as the community works hard to foster the growth and adoption of GraphQL, we are excited to share the work of the community and discussions via the monthly GraphQL Foundation newsletter.</p>
<p class="_mt-6 _leading-7 first:_mt-0">GraphQL reached new heights in 2020 and is only poised to continue its meteoric rise in 2021. Thank you again for your involvement in this project and your support of the GraphQL Foundation. We are excited for another productive year!</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Working Group Updates</h2>
<h3 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-8 _text-2xl">GraphQL Foundation marketing committee</h3>
<p class="_mt-6 _leading-7 first:_mt-0">The newly created GraphQL Foundation marketing committee is responsible for coordinating marketing activities in support of the <a href="https://foundation.graphql.org/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Foundation</a> and the <a href="https://github.com/graphql" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">projects</a>. They meet regularly, and welcome participation from Foundation and community members.</p>
<p class="_mt-6 _leading-7 first:_mt-0">The meeting agendas and minutes are open and available in <a href="https://github.com/graphql/marketing/blob/main/meetings" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">meetings/</a>. We generally meet on the fourth Thursday of the month at 9am PT. To be added to the recurring invite, please contact <a class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]" href="mailto:operations@graphql.org">operations@graphql.org</a>.</p>
<h3 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-8 _text-2xl">Spec cut</h3>
<p class="_mt-6 _leading-7 first:_mt-0">There are few more final phase proposals still waiting on review, as well as updating the version of the legal text). The next step will include having the TSC take a formal vote to cut the draft.</p>
<h3 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-8 _text-2xl">TypeScript migration for GraphQL.js</h3>
<p class="_mt-6 _leading-7 first:_mt-0">Representing almost 6 million downloads per week. TypeScript is in need of additional clean up, including GraphQLList and GraphQLNonNull. The WG decided to drop Flow types, and have a PR for converting to TypeScript. The plan is to incorporate the fixes into the main release, which is very close to being done. Once finished, it will be added to release 16.0.0-alpha.1. Once that is complete it will merge the PR and convert to TypeScript.</p>
<h3 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-8 _text-2xl">Adding descriptions to queries and fragments</h3>
<p class="_mt-6 _leading-7 first:_mt-0">The purpose of this discussion is to add necessary comments for various business use cases. As of now we have to parse SDL data and it’s problematic when people add other comments. The WG is working on the best way to solve this issue.</p>
<h3 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-8 _text-2xl">Schema introspection extensions</h3>
<p class="_mt-6 _leading-7 first:_mt-0">First implemented by GraphQL Java,then some issues were found and it was discovered there was some additional work to be done before turning it into an RFC. The Working Group is planning to address these issues shortly.</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">In Other News…</h2>
<ul class="_mt-6 _list-disc first:_mt-0 ltr:_ml-6 rtl:_mr-6"><li class="_my-2"><a href="https://dgraph.io/blog/post/v2103-release/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Dgraph announces v21.03 - Resilient Rocket Release</a></li>
<li class="_my-2">Read: <a href="https://github.com/danilop/graphql-api-security-with-aws-appsync-and-amplify" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphQL API Security best practices with AWS AppSync and Amplify</a></li>
<li class="_my-2">AWS AppSync is a fully managed service which allows developers to deploy and interact with serverless scalable GraphQL backends on AWS.</li>
<li class="_my-2"><a href="https://medium.com/neo4j/announcing-the-neo4j-graphql-library-beta-99ae8541bbe7" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Neo4j announces GraphQL Library Beta Release</a></li>
<li class="_my-2">TechTarget: <a href="https://searchdatamanagement.techtarget.com/news/252499595/Dgraph-GraphQL-database-users-detail-graph-use-cases" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Dgraph GraphQL database users detail graph use cases</a></li>
<li class="_my-2">Devops.com: <a href="https://devops.com/apollo-graphql-makes-federated-server-more-accessible/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Apollo GraphQL Makes Federated Server More Accessible</a></li>
<li class="_my-2">The New Stack: <a href="https://thenewstack.io/why-shopify-favors-graphql-over-rest-for-its-apis/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Why Shopify Favors GraphQL over REST for Its APIs</a></li>
<li class="_my-2">Code Story: <a href="https://codestory.co/podcast/e17-matt-debergalis-apollo-graphql/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">E17: Matt Debergalis, Apollo GraphQL</a></li>
</ul><h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Upcoming Events</h2>
<ul class="_mt-6 _list-disc first:_mt-0 ltr:_ml-6 rtl:_mr-6"><li class="_my-2"><a href="https://hasura.io/events/hasura-con-2021/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Hasura Con ‘21: The Big Hasura User Conference</a> The 2021 installment of Hasura Con will take place on June 23rd and 24th. The event brings together users from all over the world to celebrate all things Hasura and will feature top-notch speakers and workshops. Sign up today to attend Hasura Con ‘21 or submit a talk proposal to share your knowledge at the event.</li>
</ul><h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Get Involved!</h2>
<p class="_mt-6 _leading-7 first:_mt-0">Developers can get involved in the community and contribute to the project at <a href="https://github.com/graphql" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">https://github.com/graphql</a>.</p>
<p class="_mt-6 _leading-7 first:_mt-0">Organizations interested in becoming members of the GraphQL Foundation or the GraphQL Specification can learn more on our <a href="https://foundation.graphql.org/join" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">member page</a>. If you have questions about membership, please send an email to <a class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]" href="mailto:membership@graphql.org">membership@graphql.org</a>.</p>]]></description>
      <link>https://graphql.org/blog/2021-04-30-newsletter-april-2021</link>
      <guid>https://graphql.org/blog/2021-04-30-newsletter-april-2021</guid>
      <pubDate>Fri, 30 Apr 2021 02:00:00 +0200</pubDate>
    </item>
    <item>
      <title><![CDATA[GraphQL Foundation Monthly Newsletter April 2021]]></title>
      <description><![CDATA[<p>4/30/2021 by GraphQL Foundation</p><p><a href="http://graphql.org/tags/newsletter">newsletter</a></p><hr /><div><p><a href="https://graphql.org/" target="_blank" rel="nofollow noopener noreferrer">GraphQL</a> has redefined how developers work with APIs and client-server interactions. And as the community works hard to foster the growth and adoption of GraphQL, we are excited to share the work of the community and discussions via the monthly GraphQL Foundation newsletter.</p><p>GraphQL reached new heights in 2020 and is only poised to continue it’s meteoric rise in 2021. Thank you again for your involvement in this project and your support of the GraphQL Foundation. We are excited for another productive year!</p><h2>Working Group Updates<a class="hash-link" href="http://graphql.org/blog/2021-04-30-graphql-foundation-monthly-newsletter-april-2021#working-group-updates">#</a></h2><h3>GraphQL Foundation marketing committee<a class="hash-link" href="http://graphql.org/blog/2021-04-30-graphql-foundation-monthly-newsletter-april-2021#graphql-foundation-marketing-committee">#</a></h3><p>The newly created GraphQL Foundation marketing committee is responsible for coordinating marketing activities in support of the <a href="https://foundation.graphql.org/" target="_blank" rel="nofollow noopener noreferrer">Foundation</a> and the <a href="https://github.com/graphql" target="_blank" rel="nofollow noopener noreferrer">projects</a>. They meet regularly, and welcome participation from Foundation and community members.</p><p>The meeting agendas and minutes are open and available in <a href="https://github.com/graphql/marketing/blob/main/meetings" target="_blank" rel="nofollow noopener noreferrer">meetings/</a>. We generally meet on the fourth Thursday of the month at 9am PT. To be added to the recurring invite, please contact <a href="mailto:operations@graphql.org" target="_blank" rel="nofollow noopener noreferrer">operations@graphql.org</a>.</p><h3>Spec cut<a class="hash-link" href="http://graphql.org/blog/2021-04-30-graphql-foundation-monthly-newsletter-april-2021#spec-cut">#</a></h3><p>There are few more final phase proposals still waiting on review, as well as updating the version of the legal text). The next step will include having the TSC take a formal vote to cut the draft.</p><h3>TypeScript migration for GraphQL.js<a class="hash-link" href="http://graphql.org/blog/2021-04-30-graphql-foundation-monthly-newsletter-april-2021#typescript-migration-for-graphql-js">#</a></h3><p>Representing almost 6 million downloads per week. TypeScript is in need of additional clean up, including GraphQLList and GraphQLNonNull. The WG decided to drop Flow types, and have a PR for converting to TypeScript. The plan is to incorporate the fixes into the main release, which is very close to being done. Once finished, it will be added to release 16.0.0-alpha.1. Once that is complete it will merge the PR and convert to TypeScript.</p><h3>Adding descriptions to queries and fragments<a class="hash-link" href="http://graphql.org/blog/2021-04-30-graphql-foundation-monthly-newsletter-april-2021#adding-descriptions-to-queries-and-fragments">#</a></h3><p>The purpose of this discussion is to add necessary comments for various business use cases. As of now we have to parse SDL data and it's problematic when people add other comments. The WG is working on the best way to solve this issue.</p><h3>Schema introspection extensions<a class="hash-link" href="http://graphql.org/blog/2021-04-30-graphql-foundation-monthly-newsletter-april-2021#schema-introspection-extensions">#</a></h3><p>First implemented by GraphQL Java,then some issues were found and it was discovered there was some additional work to be done before turning it into an RFC. The Working Group is planning to address these issues shortly.</p><h2>In Other News...<a class="hash-link" href="http://graphql.org/blog/2021-04-30-graphql-foundation-monthly-newsletter-april-2021#in-other-news">#</a></h2><ul><li><a href="https://dgraph.io/blog/post/v2103-release/" target="_blank" rel="nofollow noopener noreferrer">Dgraph announces v21.03 - Resilient Rocket Release</a></li>
<li>Read: <a href="https://github.com/danilop/graphql-api-security-with-aws-appsync-and-amplify" target="_blank" rel="nofollow noopener noreferrer">GraphQL API Security best practices with AWS AppSync and Amplify</a>
<ul><li>AWS AppSync is a fully managed service which allows developers to deploy and interact with serverless scalable GraphQL backends on AWS.</li>
</ul></li>
<li><a href="https://medium.com/neo4j/announcing-the-neo4j-graphql-library-beta-99ae8541bbe7" target="_blank" rel="nofollow noopener noreferrer">Neo4j announces GraphQL Library Beta Release</a></li>
<li>TechTarget: <a href="https://searchdatamanagement.techtarget.com/news/252499595/Dgraph-GraphQL-database-users-detail-graph-use-cases" target="_blank" rel="nofollow noopener noreferrer">Dgraph GraphQL database users detail graph use cases</a></li>
<li>Devops.com: <a href="https://devops.com/apollo-graphql-makes-federated-server-more-accessible/" target="_blank" rel="nofollow noopener noreferrer">Apollo GraphQL Makes Federated Server More Accessible</a></li>
<li>The New Stack: <a href="https://thenewstack.io/why-shopify-favors-graphql-over-rest-for-its-apis/" target="_blank" rel="nofollow noopener noreferrer">Why Shopify Favors GraphQL over REST for Its APIs</a></li>
<li>Code Story: <a href="https://codestory.co/podcast/e17-matt-debergalis-apollo-graphql/" target="_blank" rel="nofollow noopener noreferrer">E17: Matt Debergalis, Apollo GraphQL</a></li>
</ul><h2>Upcoming Events:<a class="hash-link" href="http://graphql.org/blog/2021-04-30-graphql-foundation-monthly-newsletter-april-2021#upcoming-events">#</a></h2><ul><li><a href="https://hasura.io/events/hasura-con-2021/" target="_blank" rel="nofollow noopener noreferrer">Hasura Con '21: The Big Hasura User Conference</a> The 2021 installment of Hasura Con will take place on June 23rd and 24th. The event brings together users from all over the world to celebrate all things Hasura and will feature top-notch speakers and workshops. Sign up today to attend Hasura Con '21 or submit a talk proposal to share your knowledge at the event.</li>
</ul><h2>Get Involved!<a class="hash-link" href="http://graphql.org/blog/2021-04-30-graphql-foundation-monthly-newsletter-april-2021#get-involved">#</a></h2><p>Developers can get involved in the community and contribute to the project at <a href="https://github.com/graphql">https://github.com/graphql</a>.</p><p>Organizations interested in becoming members of the GraphQL Foundation or the GraphQL Specification can learn more on our <a href="https://foundation.graphql.org/join" target="_blank" rel="nofollow noopener noreferrer">member page</a>. If you have questions about membership, please send an email to membership@graphql.org.</p></div>]]></description>
      <link>http://graphql.org/blog/2021-04-30-graphql-foundation-monthly-newsletter-april-2021</link>
      <guid>http://graphql.org/blog/2021-04-30-graphql-foundation-monthly-newsletter-april-2021</guid>
      <pubDate>Fri, 30 Apr 2021 02:00:00 +0200</pubDate>
    </item>
    <item>
      <title><![CDATA[GraphQL Foundation Monthly Newsletter March 2021]]></title>
      <description><![CDATA[<p><time datetime="2021-03-31T00:00:00.000Z">March 31, 2021</time> by GraphQL Foundation</p><p><a class="transition-colors py-1 px-2.5 capitalize rounded bg-zinc-200 dark:bg-zinc-700 font-bold hover:!no-underline hover:!bg-primary hover:text-white dark:hover:text-zinc-900" href="https://graphql.org/tags/newsletter/">newsletter</a></p>
<p class="_mt-6 _leading-7 first:_mt-0"><a class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]" href="https://graphql.org/">GraphQL</a> has redefined how developers work with APIs and client-server interactions. And as the community works hard to foster the growth and adoption of GraphQL, we are excited to share the work of the community and discussions via the monthly GraphQL Foundation newsletter.</p>
<p class="_mt-6 _leading-7 first:_mt-0">GraphQL reached new heights in 2020 and is only poised to continue its meteoric rise in 2021. Thank you again for your involvement in this project and your support of the GraphQL Foundation. We are excited for another productive year!</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Working Group Updates</h2>
<p class="_mt-6 _leading-7 first:_mt-0"><strong>GraphQL Foundation marketing committee</strong></p>
<p class="_mt-6 _leading-7 first:_mt-0">The newly created GraphQL Foundation marketing committee is responsible for coordinating marketing activities in support of the <a href="https://foundation.graphql.org/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Foundation</a> and the <a href="https://github.com/graphql" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">projects</a>. They meet regularly, and welcome participation from Foundation and community members.</p>
<p class="_mt-6 _leading-7 first:_mt-0">The meeting agendas and minutes are open and available in <a href="https://github.com/graphql/marketing/blob/main/meetings" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">meetings/</a>. We generally meet on the fourth Thursday of the month at 9am PT. To be added to the recurring invite, please contact <a class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]" href="mailto:operations@graphql.org">operations@graphql.org</a>.</p>
<p class="_mt-6 _leading-7 first:_mt-0"><strong>Allowing fields to diverge more</strong></p>
<p class="_mt-6 _leading-7 first:_mt-0">This is one of the most complicated validation rules, which is about overlapping fields and not forcing to ensure every field is unique in a query, especially if you compose queries. They have to be merged together and ensure the field is only executed once. There’s a rule to ensure this merging can be done.</p>
<p class="_mt-6 _leading-7 first:_mt-0">The working group has agreed to add prose or a non-normative note to this validation rule to explain this.</p>
<p class="_mt-6 _leading-7 first:_mt-0"><strong>Operation Expressions</strong></p>
<p class="_mt-6 _leading-7 first:_mt-0">Operation expressions is an extension to the Schema Coordinates syntax that allows for a host of new use cases. Outlined <a href="https://github.com/graphql/graphql-spec/pull/823" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">here</a> are some of the use cases that have been discussed so far, and have iterated on the syntax, but everything in this is very much in flux.</p>
<p class="_mt-6 _leading-7 first:_mt-0"><strong>Directions via introspection report</strong></p>
<p class="_mt-6 _leading-7 first:_mt-0">Custom directives are not currently introspectable. This has been a big discussion over the years. Recently, graphql-java has implemented (almost merged) the ability to query directive by introspection.</p>
<p class="_mt-6 _leading-7 first:_mt-0"><strong>Oneof Input Objects and Oneof Fields</strong></p>
<p class="_mt-6 _leading-7 first:_mt-0">Oneof Input Objects are a special variant of Input Objects where the type system asserts that exactly one of the fields must be set and non-null, all others being omitted. This is represented in introspection with the  field, and in SDL via the  directive on the input object. The working group has agreed to Contribute syntax thoughts and on the RFC itself, and write an implementation in GraphQL.js</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">In Other News…</h2>
<ul class="_mt-6 _list-disc first:_mt-0 ltr:_ml-6 rtl:_mr-6"><li class="_my-2">ZDNet: <a href="https://www.zdnet.com/article/databases-graphs-and-graphql-past-present-and-future/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Databases, graphs, and GraphQL: The past, present, and future</a></li>
<li class="_my-2">ZDNet: <a href="https://www.zdnet.com/article/hasura-connects-graphql-to-the-rest-of-the-world/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Hasura connects GraphQL to the REST of the world</a></li>
<li class="_my-2">ADT Mag: <a href="https://adtmag.com/articles/2021/02/17/netflix-open-sources-graphql-for-spring-boot.aspx" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Netflix Open Sources GraphQL for Spring Boot</a></li>
<li class="_my-2">ProgrammableWeb: <a href="https://www.programmableweb.com/news/facebook-adds-relay-hooks-improved-graphql-data-fetching/brief/2021/03/11" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Facebook Adds Relay Hooks for Improved GraphQL Data Fetching</a></li>
<li class="_my-2"><a href="https://www.globenewswire.com/news-release/2020/09/10/2091563/0/en/Dgraph-Labs-Launches-Slash-GraphQL-Industry-s-First-GraphQL-Native-Database-Backend-As-A-Service.html" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Dgraph Labs Launches Slash GraphQL, Industry’s First GraphQL-Native Database Backend-As-A-Service</a></li>
<li class="_my-2"><a href="https://www.apollographql.com/blog/how-square-accelerates-product-development-with-apollo-graphql/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">How Square accelerates product development with Apollo GraphQL</a></li>
<li class="_my-2"><a href="https://netflixtechblog.com/beyond-rest-1b76f7c20ef6" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Netflix: Beyond REST Rapid Development with GraphQL Microservices</a></li>
<li class="_my-2"><a href="https://the-guild.dev/blog/graphql-hive-preview" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">The Guild announce early access to GraphQL Hive - A new Schema Registry for your GraphQL Workflows</a></li>
</ul><h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Upcoming Events</h2>
<ul class="_mt-6 _list-disc first:_mt-0 ltr:_ml-6 rtl:_mr-6"><li class="_my-2">The GraphQL community will come together once again for <a href="https://summit.graphql.com" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphQL Summit</a> April 7th &amp; 8th</li>
</ul><h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Get Involved!</h2>
<p class="_mt-6 _leading-7 first:_mt-0">Developers can get involved in the community and contribute to the project at <a href="https://github.com/graphql" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">https://github.com/graphql</a>.</p>
<p class="_mt-6 _leading-7 first:_mt-0">Organizations interested in becoming members of the GraphQL Foundation or the GraphQL Specification can learn more on our <a href="https://foundation.graphql.org/join" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">member page</a>. If you have questions about membership, please send an email to <a class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]" href="mailto:membership@graphql.org">membership@graphql.org</a>.</p>]]></description>
      <link>https://graphql.org/blog/2021-03-31-newsletter-march-2021</link>
      <guid>https://graphql.org/blog/2021-03-31-newsletter-march-2021</guid>
      <pubDate>Wed, 31 Mar 2021 02:00:00 +0200</pubDate>
    </item>
    <item>
      <title><![CDATA[GraphQL Foundation Monthly Newsletter March 2021]]></title>
      <description><![CDATA[<p>3/31/2021 by GraphQL Foundation</p><hr /><div><p><a href="https://graphql.org/" target="_blank" rel="nofollow noopener noreferrer">GraphQL</a> has redefined how developers work with APIs and client-server interactions. And as the community works hard to foster the growth and adoption of GraphQL, we are excited to share the work of the community and discussions via the monthly GraphQL Foundation newsletter.</p><p>GraphQL reached new heights in 2020 and is only poised to continue it’s meteoric rise in 2021. Thank you again for your involvement in this project and your support of the GraphQL Foundation. We are excited for another productive year!</p><h2>Working Group Updates<a class="hash-link" href="http://graphql.org#working-group-updates">#</a></h2><p><strong>GraphQL Foundation marketing committee</strong></p><p>The newly created GraphQL Foundation marketing committee is responsible for coordinating marketing activities in support of the <a href="https://foundation.graphql.org/" target="_blank" rel="nofollow noopener noreferrer">Foundation</a> and the <a href="https://github.com/graphql" target="_blank" rel="nofollow noopener noreferrer">projects</a>. They meet regularly, and welcome participation from Foundation and community members.</p><p>The meeting agendas and minutes are open and available in <a href="https://github.com/graphql/marketing/blob/main/meetings" target="_blank" rel="nofollow noopener noreferrer">meetings/</a>. We generally meet on the fourth Thursday of the month at 9am PT. To be added to the recurring invite, please contact operations@graphql.org.</p><p><strong>Allowing fields to diverge more</strong></p><p>This is one of the most complicated validation rules, which is about overlapping fields and not forcing to ensure every field is unique in a query, especially if you compose queries. They have to be merged together and ensure the field is only executed once. There's a rule to ensure this merging can be done.</p><p>The working group has agreed to add prose or a non-normative note to this validation rule to explain this.</p><p><strong>Operation Expressions</strong></p><p>Operation expressions is an extension to the Schema Coordinates syntax that allows for a host of new use cases. Outlined <a href="https://github.com/graphql/graphql-spec/pull/823" target="_blank" rel="nofollow noopener noreferrer">here</a> are some of the use cases that have been discussed so far, and have iterated on the syntax, but everything in this is very much in flux.</p><p><strong>Directions via introspection report</strong></p><p>Custom directives are not currently introspectable. This has been a big discussion over the years. Recently, graphql-java has implemented (almost merged) the ability to query directive by introspection.</p><p><strong>Oneof Input Objects and Oneof Fields</strong></p><p>Oneof Input Objects are a special variant of Input Objects where the type system asserts that exactly one of the fields must be set and non-null, all others being omitted. This is represented in introspection with the <code>__Type.oneField: Boolean</code> field, and in SDL via the <code>@oneOf</code> directive on the input object. The working group has agreed to Contribute syntax thoughts and on the RFC itself, and write an implementation in GraphQL.js</p><h2>In Other News...<a class="hash-link" href="http://graphql.org#in-other-news">#</a></h2><ul><li>ZDNet: <a href="https://www.zdnet.com/article/databases-graphs-and-graphql-past-present-and-future/" target="_blank" rel="nofollow noopener noreferrer">Databases, graphs, and GraphQL: The past, present, and future</a></li>
<li>ZDNet: <a href="https://www.zdnet.com/article/hasura-connects-graphql-to-the-rest-of-the-world/" target="_blank" rel="nofollow noopener noreferrer">Hasura connects GraphQL to the REST of the world</a></li>
<li>ADT Mag: <a href="https://adtmag.com/articles/2021/02/17/netflix-open-sources-graphql-for-spring-boot.aspx" target="_blank" rel="nofollow noopener noreferrer">Netflix Open Sources GraphQL for Spring Boot</a></li>
<li>ProgrammableWeb: <a href="https://www.programmableweb.com/news/facebook-adds-relay-hooks-improved-graphql-data-fetching/brief/2021/03/11" target="_blank" rel="nofollow noopener noreferrer">Facebook Adds Relay Hooks for Improved GraphQL Data Fetching</a></li>
<li><a href="https://www.globenewswire.com/news-release/2020/09/10/2091563/0/en/Dgraph-Labs-Launches-Slash-GraphQL-Industry-s-First-GraphQL-Native-Database-Backend-As-A-Service.html" target="_blank" rel="nofollow noopener noreferrer">Dgraph Labs Launches Slash GraphQL, Industry’s First GraphQL-Native Database Backend-As-A-Service</a></li>
<li><a href="https://www.apollographql.com/blog/how-square-accelerates-product-development-with-apollo-graphql/" target="_blank" rel="nofollow noopener noreferrer">How Square accelerates product development with Apollo GraphQL</a></li>
<li><a href="https://netflixtechblog.com/beyond-rest-1b76f7c20ef6" target="_blank" rel="nofollow noopener noreferrer">Netflix: Beyond REST Rapid Development with GraphQL Microservices</a></li>
<li><a href="https://the-guild.dev/blog/graphql-hive-preview" target="_blank" rel="nofollow noopener noreferrer">The Guild announce early access to GraphQL Hive - A new Schema Registry for your GraphQL Workflows</a></li>
</ul><h2>Upcoming Events:<a class="hash-link" href="http://graphql.org#upcoming-events">#</a></h2><ul><li>The GraphQL community will come together once again for <a href="https://summit.graphql.com/" target="_blank" rel="nofollow noopener noreferrer">GraphQL Summit</a> April 7th &amp; 8th</li>
</ul><h2>Get Involved!<a class="hash-link" href="http://graphql.org#get-involved">#</a></h2><p>Developers can get involved in the community and contribute to the project at <a href="https://github.com/graphql">https://github.com/graphql</a>.</p><p>Organizations interested in becoming members of the GraphQL Foundation or the GraphQL Specification can learn more on our <a href="https://foundation.graphql.org/join" target="_blank" rel="nofollow noopener noreferrer">member page</a>. If you have questions about membership, please send an email to membership@graphql.org.</p></div>]]></description>
      <link>http://graphql.org/blog/2021-03-31-graphql-foundation-monthly-newsletter-march-2021</link>
      <guid>http://graphql.org/blog/2021-03-31-graphql-foundation-monthly-newsletter-march-2021</guid>
      <pubDate>Wed, 31 Mar 2021 02:00:00 +0200</pubDate>
    </item>
    <item>
      <title><![CDATA[GraphQL Foundation Monthly Newsletter February 2021]]></title>
      <description><![CDATA[<p>2/15/2021 by GraphQL Foundation</p><hr /><div><p><a href="https://graphql.org/" target="_blank" rel="nofollow noopener noreferrer">GraphQL</a> has redefined how developers work with APIs and client-server interactions. And as the community works hard to foster the growth and adoption of GraphQL, we are excited to share the work of the community and discussions via the monthly GraphQL Foundation newsletter.</p><p>GraphQL reached new heights in 2020 and is only poised to continue it’s meteoric rise in 2021. Thank you again for your involvement in this project and your support of the GraphQL Foundation. We are excited for another productive year!</p><h2>Working Group Updates<a class="hash-link" href="http://graphql.org#working-group-updates">#</a></h2><h3><a href="https://github.com/graphql/graphql-spec/pull/776" target="_blank" rel="nofollow noopener noreferrer">Advancing no introspection at root of Subscription operation</a> <a class="hash-link" href="http://graphql.org#advancing-no-introspection-at-root-of-subscription-operation-https-github-com-graphql-graphql-spec-pull-776">#</a></h3><p>The group decided to disallow since it doesn’t work in the reference implementation. During the graphql-js implementation some issues were discovered around fragments that are being fixed. Read more <a href="https://github.com/graphql/graphql-spec/pull/776" target="_blank" rel="nofollow noopener noreferrer">here</a>.</p><h3><a href="https://github.com/graphql/graphql-spec/pull/793" target="_blank" rel="nofollow noopener noreferrer">Default value coercion update</a><a class="hash-link" href="http://graphql.org#default-value-coercion-update-https-github-com-graphql-graphql-spec-pull-793">#</a></h3><p>Currently this is a case where infinite loops can occur. The WG is working to figure out how to avoid this in the spec <a href="https://github.com/graphql/graphql-spec/pull/793#issuecomment-738736539" target="_blank" rel="nofollow noopener noreferrer">here</a>.</p><h3><a href="https://github.com/graphql/graphql-spec/blob/main/rfcs/DeferStream.md" target="_blank" rel="nofollow noopener noreferrer">Defer/stream updates</a><a class="hash-link" href="http://graphql.org#defer-stream-updates-https-github-com-graphql-graphql-spec-blob-main-rfcs-deferstream-md">#</a></h3><p>The official experimental branch of graphql-js/express-graphql. The WG is working to update the initialCount, validation rule in GraphQL.js, and the spec.</p><h3>Schema Coordinates Spec<a class="hash-link" href="http://graphql.org#schema-coordinates-spec">#</a></h3><p>The RFC and spec edit have been out for a few months with credit due to everyone who has reviewed those. Last time the field arguments were the discussion there were two main contenders: <code>Query.business(id:)</code> versus <code>Query.business.id</code>. The WG is looking for consensus. The discussion summarized can be found <a href="https://github.com/graphql/graphql-spec/pull/746#issuecomment-740914167" target="_blank" rel="nofollow noopener noreferrer">here</a>.</p><h3>_Typename is not valid at subscription root<a class="hash-link" href="http://graphql.org#typename-is-not-valid-at-subscription-root">#</a></h3><p><code>__typename</code> does not return an async iterator and has been deemed not useful at the root of a subscription operation, yet it is allowed by GraphQL validation. This field has caused some confusion in the community, and the WG has proposed explicitly validating it to prevent the field to catch these issues earlier.</p><h3>Default value coercion<a class="hash-link" href="http://graphql.org#default-value-coercion">#</a></h3><p>There's inconsistency in the handling of default values between user-supplied defaults (i.e. variables in operation documents) and schema-supplied defaults (for arguments or input object fields). The WG discussed ways in which a poorly constructed GraphQL schema can break the type safety guarantees of GraphQL and proposed addressing this by making schema defaults operate in a more expected manner. Next steps are to get an implementation finished so that we can advance the spec changes to stage 2.</p><h2>In Other News...<a class="hash-link" href="http://graphql.org#in-other-news">#</a></h2><ul><li><a href="https://medium.com/walmartglobaltech/federated-graphql-walmart-bfc85c2553de" target="_blank" rel="nofollow noopener noreferrer">Federated GraphQL @ Walmart</a></li>
<li><a href="https://thenewstack.io/apollo-extends-explorer-graphql-ide-to-development-environments/" target="_blank" rel="nofollow noopener noreferrer">Apollo Extends Explorer GraphQL IDE to Development Environments</a></li>
<li><a href="https://netflixtechblog.com/how-netflix-scales-its-api-with-graphql-federation-part-2-bbe71aaec44a" target="_blank" rel="nofollow noopener noreferrer">How Netflix Scales its API with GraphQL Federation (Part 2)</a></li>
<li><a href="https://hasura.io/blog/graphql-january-with-hasura/" target="_blank" rel="nofollow noopener noreferrer">Hasura launched a 3 week series of articles, live-streams, and A.M.As for GraphQL beginners and experts.</a></li>
<li><a href="https://www.prisma.io/blog/announcing-the-release-of-nexus-schema-v1-b5eno5g08d0b" target="_blank" rel="nofollow noopener noreferrer">Prisma announced Nexus 1.0: A Major Release for Type-Safe, Code-First GraphQL APIs</a></li>
<li>ZDNet: <a href="https://zdnet.com/article/2021-technology-trend-review-part-1-blockchain-cloud-open-source/" target="_blank" rel="nofollow noopener noreferrer">2021 Technology trend review: Cloud, Kubernetes, and GraphQL</a></li>
<li>TechTarget: <a href="https://searchapparchitecture.techtarget.com/feature/Enterprise-application-trends-that-will-impact" target="_blank" rel="nofollow noopener noreferrer">Enterprise application trends that will impact 2021: GraphQL vs. REST choice steers microservices development</a></li>
<li><a href="https://www.dice.com/jobs/q-GraphQL-jobs" target="_blank" rel="nofollow noopener noreferrer">Top 20 GraphQL Jobs Postings</a></li>
<li>GraphQL Galaxy’s talk uploaded online, <a href="https://youtu.be/mfg6ZJ2GGRc" target="_blank" rel="nofollow noopener noreferrer">check out the Keynote</a>!</li>
<li>The <a href="https://the-guild.dev/blog/a-new-year-for-schema-stitching" target="_blank" rel="nofollow noopener noreferrer">new Schema Stitching Handbook was released</a>, together with examples and video walkthrough with everything you need to know about Federated/Distributed GraphQL Gateways</li>
<li><a href="https://the-guild.dev/blog/graphql-modules-v1" target="_blank" rel="nofollow noopener noreferrer">The Guild announced GraphQL Modules 1.0</a> as a major rewrite after 3 years of experience. The new version includes better simplicity and performance</li>
<li>With <a href="https://graphql-mesh.com/" target="_blank" rel="nofollow noopener noreferrer">GraphQL Mesh</a> you can now wrap any existing API and add reactivity to it - check out <a href="https://the-guild.dev/blog/add-reactivity-to-an-existing-source" target="_blank" rel="nofollow noopener noreferrer">this blog post about how to do it</a></li>
<li><a href="https://twitter.com/whereischarly/status/1349467930166239232?s=20" target="_blank" rel="nofollow noopener noreferrer">spotify-graphql is approaching v2.0</a> as a complete rewrite, instead of manual code it uses GraphQL Mesh under the hood to generate the API</li>
<li>Software Engineering Daily: <a href="https://softwareengineeringdaily.com/2021/01/19/dgraph-native-graphql-database-with-manish-jain/" target="_blank" rel="nofollow noopener noreferrer">Podcast with DGraph’s Manit Jain</a></li>
</ul><h2>Upcoming Events:<a class="hash-link" href="http://graphql.org#upcoming-events">#</a></h2><ul><li>Asia’s largest <a href="https://graphql.asia/" target="_blank" rel="nofollow noopener noreferrer">GraphQL conference</a> is back! February 24th &amp; 25th</li>
</ul><h2>Get Involved!<a class="hash-link" href="http://graphql.org#get-involved">#</a></h2><p>Developers can get involved in the community and contribute to the project at <a href="https://github.com/graphql">https://github.com/graphql</a>.</p><p>Organizations interested in becoming members of the GraphQL Foundation or the GraphQL Specification can learn more on our <a href="http://graphql.org/foundation/join/">member page</a>. If you have questions about membership, please send an email to <a href="mailto:membership@graphql.org" target="_blank" rel="nofollow noopener noreferrer">membership@graphql.org</a>.</p></div>]]></description>
      <link>http://graphql.org/blog/2021-02-15-graphql-foundation-monthly-newsletter-february-2021</link>
      <guid>http://graphql.org/blog/2021-02-15-graphql-foundation-monthly-newsletter-february-2021</guid>
      <pubDate>Mon, 15 Feb 2021 01:00:00 +0100</pubDate>
    </item>
    <item>
      <title><![CDATA[GraphQL Foundation Monthly Newsletter February 2021]]></title>
      <description><![CDATA[<p><time datetime="2021-02-15T00:00:00.000Z">February 15, 2021</time> by GraphQL Foundation</p><p><a class="transition-colors py-1 px-2.5 capitalize rounded bg-zinc-200 dark:bg-zinc-700 font-bold hover:!no-underline hover:!bg-primary hover:text-white dark:hover:text-zinc-900" href="https://graphql.org/tags/newsletter/">newsletter</a></p>
<p class="_mt-6 _leading-7 first:_mt-0"><a class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]" href="https://graphql.org/">GraphQL</a> has redefined how developers work with APIs and client-server interactions. And as the community works hard to foster the growth and adoption of GraphQL, we are excited to share the work of the community and discussions via the monthly GraphQL Foundation newsletter.</p>
<p class="_mt-6 _leading-7 first:_mt-0">GraphQL reached new heights in 2020 and is only poised to continue its meteoric rise in 2021. Thank you again for your involvement in this project and your support of the GraphQL Foundation. We are excited for another productive year!</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Working Group Updates</h2>
<h3 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-8 _text-2xl"><a href="https://github.com/graphql/graphql-spec/pull/776" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Advancing no introspection at root of Subscription operation</a></h3>
<p class="_mt-6 _leading-7 first:_mt-0">The group decided to disallow since it doesn’t work in the reference implementation. During the graphql-js implementation some issues were discovered around fragments that are being fixed. Read more <a href="https://github.com/graphql/graphql-spec/pull/776" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">here</a>.</p>
<h3 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-8 _text-2xl"><a href="https://github.com/graphql/graphql-spec/pull/793" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Default value coercion update</a></h3>
<p class="_mt-6 _leading-7 first:_mt-0">Currently this is a case where infinite loops can occur. The WG is working to figure out how to avoid this in the spec <a href="https://github.com/graphql/graphql-spec/pull/793#issuecomment-738736539" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">here</a>.</p>
<h3 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-8 _text-2xl"><a href="https://github.com/graphql/graphql-spec/blob/main/rfcs/DeferStream.md" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Defer/stream updates</a></h3>
<p class="_mt-6 _leading-7 first:_mt-0">The official experimental branch of graphql-js/express-graphql. The WG is working to update the initialCount, validation rule in GraphQL.js, and the spec.</p>
<h3 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-8 _text-2xl">Schema Coordinates Spec</h3>
<p class="_mt-6 _leading-7 first:_mt-0">The RFC and spec edit have been out for a few months with credit due to everyone who has reviewed those. Last time the field arguments were the discussion there were two main contenders:  versus . The WG is looking for consensus. The discussion summarized can be found <a href="https://github.com/graphql/graphql-spec/pull/746#issuecomment-740914167" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">here</a>.</p>
<h3 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-8 _text-2xl">_Typename is not valid at subscription root</h3>
<p class="_mt-6 _leading-7 first:_mt-0"> does not return an async iterator and has been deemed not useful at the root of a subscription operation, yet it is allowed by GraphQL validation. This field has caused some confusion in the community, and the WG has proposed explicitly validating it to prevent the field to catch these issues earlier.</p>
<h3 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-8 _text-2xl">Default value coercion</h3>
<p class="_mt-6 _leading-7 first:_mt-0">There’s inconsistency in the handling of default values between user-supplied defaults (i.e. variables in operation documents) and schema-supplied defaults (for arguments or input object fields). The WG discussed ways in which a poorly constructed GraphQL schema can break the type safety guarantees of GraphQL and proposed addressing this by making schema defaults operate in a more expected manner. Next steps are to get an implementation finished so that we can advance the spec changes to stage 2.</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">In Other News…</h2>
<ul class="_mt-6 _list-disc first:_mt-0 ltr:_ml-6 rtl:_mr-6"><li class="_my-2"><a href="https://medium.com/walmartglobaltech/federated-graphql-walmart-bfc85c2553de" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Federated GraphQL @ Walmart</a></li>
<li class="_my-2"><a href="https://thenewstack.io/apollo-extends-explorer-graphql-ide-to-development-environments/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Apollo Extends Explorer GraphQL IDE to Development Environments</a></li>
<li class="_my-2"><a href="https://netflixtechblog.com/how-netflix-scales-its-api-with-graphql-federation-part-2-bbe71aaec44a" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">How Netflix Scales its API with GraphQL Federation (Part 2)</a></li>
<li class="_my-2"><a href="https://hasura.io/blog/graphql-january-with-hasura/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Hasura launched a 3 week series of articles, live-streams, and A.M.As for GraphQL beginners and experts.</a></li>
<li class="_my-2"><a href="https://www.prisma.io/blog/announcing-the-release-of-nexus-schema-v1-b5eno5g08d0b" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Prisma announced Nexus 1.0: A Major Release for Type-Safe, Code-First GraphQL APIs</a></li>
<li class="_my-2">ZDNet: <a href="https://zdnet.com/article/2021-technology-trend-review-part-1-blockchain-cloud-open-source/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">2021 Technology trend review: Cloud, Kubernetes, and GraphQL</a></li>
<li class="_my-2">TechTarget: <a href="https://searchapparchitecture.techtarget.com/feature/Enterprise-application-trends-that-will-impact" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Enterprise application trends that will impact 2021: GraphQL vs. REST choice steers microservices development</a></li>
<li class="_my-2"><a href="https://www.dice.com/jobs/q-GraphQL-jobs" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Top 20 GraphQL Jobs Postings</a></li>
<li class="_my-2">GraphQL Galaxy’s talk uploaded online, <a href="https://youtu.be/mfg6ZJ2GGRc" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">check out the Keynote</a>!</li>
<li class="_my-2">The <a href="https://the-guild.dev/blog/a-new-year-for-schema-stitching" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">new Schema Stitching Handbook was released</a>, together with examples and video walkthrough with everything you need to know about Federated/Distributed GraphQL Gateways</li>
<li class="_my-2"><a href="https://the-guild.dev/blog/graphql-modules-v1" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">The Guild announced GraphQL Modules 1.0</a> as a major rewrite after 3 years of experience. The new version includes better simplicity and performance</li>
<li class="_my-2">With <a href="https://graphql-mesh.com/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphQL Mesh</a> you can now wrap any existing API and add reactivity to it - check out <a href="https://the-guild.dev/blog/add-reactivity-to-an-existing-source" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">this blog post about how to do it</a></li>
<li class="_my-2"><a href="https://twitter.com/whereischarly/status/1349467930166239232?s=20" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">spotify-graphql is approaching v2.0</a> as a complete rewrite, instead of manual code it uses GraphQL Mesh under the hood to generate the API</li>
<li class="_my-2">Software Engineering Daily: <a href="https://softwareengineeringdaily.com/2021/01/19/dgraph-native-graphql-database-with-manish-jain/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Podcast with DGraph’s Manit Jain</a></li>
</ul><h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Upcoming Events</h2>
<ul class="_mt-6 _list-disc first:_mt-0 ltr:_ml-6 rtl:_mr-6"><li class="_my-2">Asia’s largest <a href="https://graphql.asia/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphQL conference</a> is back! February 24th &amp; 25th</li>
</ul><h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Get Involved!</h2>
<p class="_mt-6 _leading-7 first:_mt-0">Developers can get involved in the community and contribute to the project at <a href="https://github.com/graphql" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">https://github.com/graphql</a>.</p>
<p class="_mt-6 _leading-7 first:_mt-0">Organizations interested in becoming members of the GraphQL Foundation or the GraphQL Specification can learn more on our <a class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]" href="https://graphql.org/foundation/join/">member page</a>. If you have questions about membership, please send an email to <a class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]" href="mailto:membership@graphql.org">membership@graphql.org</a>.</p>]]></description>
      <link>https://graphql.org/blog/2021-02-15-newsletter-february-2021</link>
      <guid>https://graphql.org/blog/2021-02-15-newsletter-february-2021</guid>
      <pubDate>Mon, 15 Feb 2021 01:00:00 +0100</pubDate>
    </item>
    <item>
      <title><![CDATA[Improving Latency with @defer and @stream Directives]]></title>
      <description><![CDATA[<blockquote>
<p>Rob Richard and Liliana Matos are front-end engineers at <a href="https://www.1stdibs.com" target="_blank" rel="nofollow noopener noreferrer">1stDibs.com</a>. They have been working with the GraphQL Working Group as champions of the the <code>@defer</code> and <code>@stream</code> directives.</p>
</blockquote><p>The <code>@defer</code> and <code>@stream</code> directives have been a much anticipated set of features ever since Lee Byron first talked about it at <a href="https://youtu.be/ViXL0YQnioU?t=769" target="_blank" rel="nofollow noopener noreferrer">GraphQL Europe 2016</a>. For most of 2020, we have been working with the GraphQL Working Group to standardize this feature. It is now a Stage 2 proposal, but to advance further, we are looking to the GraphQL community to try using these directives and provide feedback. We have released experimental versions of <code>GraphQL.js</code> and <code>express-graphql</code>. They are published to npm under <code>graphql@experimental-stream-defer</code> and <code>express-graphql@experimental-stream-defer</code>. We encourage everyone interested in this feature to try out these releases and let us know how it goes in the <a href="https://github.com/graphql/graphql-js/issues/2848" target="_blank" rel="nofollow noopener noreferrer">issue created for feedback</a>. Read on to find out more about what this proposal offers.</p><p>One of the disadvantages of GraphQL’s request/response model is that the GraphQL response is not returned to clients until the entire request has finished processing. However, not all requested data may be of equal importance, and in some use cases it may be possible for applications to act on a subset of the requested data. An application can speed up its time-to-interactive if the GraphQL server can send the most important data as soon as it’s ready. The new <code>@defer</code> and <code>@stream</code> directives allow GraphQL servers to do exactly that by returning multiple payloads from a single GraphQL response.</p><p>The <code>@defer</code> directive can be applied to fragment spreads and inline fragments. It is a declarative way for developers to mark parts of a query as non-essential for immediate return.</p><p>Here’s an example of the <code>@defer</code> directive:</p><h4>Request<a class="hash-link" href="http://graphql.org#request">#</a></h4><p>query{</p><p>person(id:"cGVvcGxlOjE="){</p><p>name</p><p>...HomeworldFragment @defer(label:"homeworldDefer")</p><p>}</p><p>fragment HomeworldFragment on Person {</p><p>homeworld {</p><p>name</p><p>}</p><p>}</p><h4>Response<a class="hash-link" href="http://graphql.org#response">#</a></h4><p><strong>Payload 1</strong></p><p>{</p><p>"data":{</p><p>"person":{</p><p>"name":"Luke Skywalker"</p><p>}</p><p>},</p><p>"hasNext":true</p><p>}</p><p><strong>Payload 2</strong></p><p>{</p><p>"label":"homeworldDefer",</p><p>"path":["person"],</p><p>"data":{</p><p>"homeworld":{</p><p>"name":"Tatooine"</p><p>}</p><p>},</p><p>"hasNext":false</p><p>}</p><p>When the GraphQL execution engine encounters the <code>@defer</code> directive, it will fork execution and begin to resolve those fields asynchronously. While the deferred payload is still being prepared, the client can receive and act on the initial payload. This is most useful when the deferred data is large, expensive to load, or not on the critical path for interactivity.</p><p>Similar to <code>@defer</code>, the <code>@stream</code> directive also allows the client to receive data before the entire result is ready. <code>@stream</code> can be used on list fields. Here’s an example of the <code>@stream</code> directive:</p><h4>Request<a class="hash-link" href="http://graphql.org#request-1">#</a></h4><p>query{</p><p>person(id:"cGVvcGxlOjE="){</p><p>name</p><p>films @stream(initialCount:2,label:"filmsStream"){</p><p>title</p><p>}</p><p>}</p><h4>Response<a class="hash-link" href="http://graphql.org#response-1">#</a></h4><p><strong>Payload 1</strong></p><p>{</p><p>"data":{</p><p>"person":{</p><p>"name":"Luke Skywalker",</p><p>"films":[</p><p>{"title":"A New Hope"},</p><p>{"title":"The Empire Strikes Back"}</p><p>]</p><p>}</p><p>},</p><p>"hasNext":true</p><p>}</p><p><strong>Payload 2</strong></p><p>{</p><p>"label":"filmsStream",</p><p>"path":["person","films",2],</p><p>"data":{</p><p>"title":"Return of the Jedi"</p><p>},</p><p>"hasNext":true</p><p>}</p><p><strong>Payload 3</strong></p><p>{</p><p>"label":"filmsStream",</p><p>"path":["person","films",3],</p><p>"data":{</p><p>"title":"Revenge of the Sith"</p><p>},</p><p>"hasNext":false</p><p>}</p><p>When the GraphQL execution engine encounters the <code>@stream</code> directive, it will resolve as many list items specified by the <code>initialCount</code> argument. The rest will be resolved asynchronously. This is especially useful for an interface where only a few elements can be rendered above the fold. The client can render these elements as soon as possible while the server is still resolving the rest of the data.</p><p>While the GraphQL specification doesn’t specify transport protocols, we expect the most common transport for queries with <code>@defer</code>/<code>@stream</code> to be HTTP with chunked transfer encoding. This allows a GraphQL server to keep a standard HTTP connection open, while streaming each payload to the client as soon as it’s ready. It has low overhead, has been supported by browsers for decades, and can work easily with most infrastructure.</p><p>You can learn more about these directives at:</p><ul><li><a href="https://github.com/graphql/graphql-spec/blob/master/rfcs/DeferStream.md" target="_blank" rel="nofollow noopener noreferrer">The @defer/@stream RFC</a></li>
<li><a href="https://github.com/graphql/graphql-spec/pull/742" target="_blank" rel="nofollow noopener noreferrer">The proposed spec edits</a></li>
<li><a href="https://github.com/graphql/graphql-over-http/blob/master/rfcs/IncrementalDelivery.md" target="_blank" rel="nofollow noopener noreferrer">The GraphQL Incremental Delivery over HTTP RFC</a></li>
<li><a href="https://www.youtube.com/watch?v=icv_Pq06aOY" target="_blank" rel="nofollow noopener noreferrer">Our talk at GraphQL Summit 2020</a></li>
</ul><blockquote>
<p>– <strong>Rob Richard</strong>, <strong>Liliana Matos</strong>, Front-End Engineering, 1stDibs.com</p>
</blockquote>]]></description>
      <link>http://graphql.org/blog/2020-12-08-improving-latency-with-defer-and-stream-directives</link>
      <guid>http://graphql.org/blog/2020-12-08-improving-latency-with-defer-and-stream-directives</guid>
      <pubDate>Tue, 08 Dec 2020 01:00:00 +0100</pubDate>
    </item>
    <item>
      <title><![CDATA[Improving Latency with @defer and @stream Directives]]></title>
      <description><![CDATA[<p><time datetime="2020-12-08T00:00:00.000Z">December 8, 2020</time> by Rob Richard, Liliana Matos</p><p><a class="transition-colors py-1 px-2.5 capitalize rounded bg-zinc-200 dark:bg-zinc-700 font-bold hover:!no-underline hover:!bg-primary hover:text-white dark:hover:text-zinc-900" href="https://graphql.org/tags/announcements/">announcements</a></p>
<blockquote class="_mt-6 _border-gray-300 _italic _text-gray-700 dark:_border-gray-700 dark:_text-gray-400 first:_mt-0 ltr:_border-l-2 ltr:_pl-6 rtl:_border-r-2 rtl:_pr-6">
<p class="_mt-6 _leading-7 first:_mt-0">Rob Richard and Liliana Matos are front-end engineers at <a href="https://1stdibs.com" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">1stDibs.com</a>. They have been working with the GraphQL Working Group as champions of the  and  directives.</p>
</blockquote>
<p class="_mt-6 _leading-7 first:_mt-0">The  and  directives have been a much anticipated set of features ever since Lee Byron first talked about it at <a href="https://youtu.be/ViXL0YQnioU?t=769" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphQL Europe 2016</a>. For most of 2020, we have been working with the GraphQL Working Group to standardize this feature. It is now a Stage 2 proposal, but to advance further, we are looking to the GraphQL community to try using these directives and provide feedback. We have released experimental versions of  and . They are published to npm under  and . We encourage everyone interested in this feature to try out these releases and let us know how it goes in the <a href="https://github.com/graphql/graphql-js/issues/2848" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">issue created for feedback</a>. Read on to find out more about what this proposal offers.</p>
<p class="_mt-6 _leading-7 first:_mt-0">One of the disadvantages of GraphQL’s request/response model is that the GraphQL response is not returned to clients until the entire request has finished processing. However, not all requested data may be of equal importance, and in some use cases it may be possible for applications to act on a subset of the requested data. An application can speed up its time-to-interactive if the GraphQL server can send the most important data as soon as it’s ready. The new  and  directives allow GraphQL servers to do exactly that by returning multiple payloads from a single GraphQL response.</p>
<p class="_mt-6 _leading-7 first:_mt-0">The  directive can be applied to fragment spreads and inline fragments. It is a declarative way for developers to mark parts of a query as non-essential for immediate return.</p>
<p class="_mt-6 _leading-7 first:_mt-0">Here’s an example of the  directive:</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">
Request
Response
<strong>Payload 1</strong>
<strong>Payload 2</strong>
When the GraphQL execution engine encounters the  directive, it will fork execution and begin to resolve those fields asynchronously. While the deferred payload is still being prepared, the client can receive and act on the initial payload. This is most useful when the deferred data is large, expensive to load, or not on the critical path for interactivity.
Similar to , the  directive also allows the client to receive data before the entire result is ready.  can be used on list fields. Here’s an example of the  directive:

Request
Response
<strong>Payload 1</strong>
<strong>Payload 2</strong>
<strong>Payload 3</strong>
When the GraphQL execution engine encounters the  directive, it will resolve as many list items specified by the  argument. The rest will be resolved asynchronously. This is especially useful for an interface where only a few elements can be rendered above the fold. The client can render these elements as soon as possible while the server is still resolving the rest of the data.
While the GraphQL specification doesn’t specify transport protocols, we expect the most common transport for queries with / to be HTTP with chunked transfer encoding. This allows a GraphQL server to keep a standard HTTP connection open, while streaming each payload to the client as soon as it’s ready. It has low overhead, has been supported by browsers for decades, and can work easily with most infrastructure.
You can learn more about these directives at:
<a href="https://github.com/graphql/graphql-wg/blob/main/rfcs/DeferStream.md" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">The @defer/@stream RFC</a>
<a href="https://github.com/graphql/graphql-spec/pull/742" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">The proposed spec edits</a>
<a href="https://github.com/graphql/graphql-over-http/blob/master/rfcs/IncrementalDelivery.md" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">The GraphQL Incremental Delivery over HTTP RFC</a>
<a href="https://www.youtube.com/watch?v=icv_Pq06aOY" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Our talk at GraphQL Summit 2020</a>

– <strong>Rob Richard</strong>, <strong>Liliana Matos</strong>, Front-End Engineering, 1stDibs.com
</h2>]]></description>
      <link>https://graphql.org/blog/2020-12-08-defer-stream</link>
      <guid>https://graphql.org/blog/2020-12-08-defer-stream</guid>
      <pubDate>Tue, 08 Dec 2020 01:00:00 +0100</pubDate>
    </item>
    <item>
      <title><![CDATA[GraphQL Foundation Monthly Newsletter October 2020]]></title>
      <description><![CDATA[<p>11/12/2020 by GraphQL Foundation</p><hr /><div><p><a href="https://graphql.org/" target="_blank" rel="nofollow noopener noreferrer">GraphQL</a> has redefined how developers work with APIs and client-server interactions. And as the community works hard to foster the growth and adoption of GraphQL, we are excited to share the work of the community and discussions via the monthly GraphQL Foundation newsletter.</p><h2>WG Updates<a class="hash-link" href="http://graphql.org#wg-updates">#</a></h2><p>The <a href="https://github.com/graphql/graphql-wg" target="_blank" rel="nofollow noopener noreferrer">GraphQL Working Group</a> meets monthly, and records <a href="https://github.com/graphql/graphql-wg/blob/master/notes/2020-10-01.md" target="_blank" rel="nofollow noopener noreferrer">detailed minutes</a>. You can also listen to the replays of GraphQL technical meetings on <a href="https://youtube.graphql.org" target="_blank" rel="nofollow noopener noreferrer">YouTube</a>.</p><h3><a href="https://github.com/graphql/graphql-spec/issues/715" target="_blank" rel="nofollow noopener noreferrer">Query ambiguity: discussion of replacement terms</a><a class="hash-link" href="http://graphql.org#query-ambiguity-discussion-of-replacement-terms-https-github-com-graphql-graphql-spec-issues-715">#</a></h3><p>In the GraphQL ecosystem the term "query" can seem overloaded and ambiguous - sometimes it refers to the query operation type or a query operation, sometimes it refers to a GraphQL request or a GraphQL document containing operations, sometimes it refers to the contents of selection sets (as in "query reuse"), and sometimes it is used as a verb to refer to the generic act of querying a server for information.</p><p>The WG discussed the best way to remove this ambiguity and how to move forward.</p><h3><a href="https://github.com/graphql/graphql-spec/pull/746" target="_blank" rel="nofollow noopener noreferrer">Schema Coordinates RFC check in</a><a class="hash-link" href="http://graphql.org#schema-coordinates-rfc-check-in-https-github-com-graphql-graphql-spec-pull-746">#</a></h3><p>The RFC is filed, and the next action is to turn this into an actual spec edit.</p><h3><a href="https://github.com/graphql/graphql-spec/pull/733" target="_blank" rel="nofollow noopener noreferrer">Tagged type update</a><a class="hash-link" href="http://graphql.org#tagged-type-update-https-github-com-graphql-graphql-spec-pull-733">#</a></h3><p>This is an RFC for a new "Tagged type" to be added to GraphQL. It replaces the <a href="https://github.com/graphql/graphql-spec/pull/586" target="_blank" rel="nofollow noopener noreferrer">"@oneField directive"</a> proposal following feedback from the Input Unions Working Group. Please note that "Tagged type" is the working name, and may change if we come up with a better name for it.</p><p>A Tagged type defines a list of named members each with an associated type (like the fields in Object types and Input Object types), but differs from Object types and Input Object types in that exactly one of those members must be present.</p><p>The aim of the Tagged type is to introduce a form of polymorphism in GraphQL that can be symmetric between input and output. In output, it can generally be used as an alternative to Union (the differences will be outlined below). It goes beyond interfaces and unions in that it allows the same type to be specified more than once, which is particularly useful to represent filters such as this pseudocode <code>{greaterThan: Int} | {lessThan: Int}</code>.</p><h2>In Other News...<a class="hash-link" href="http://graphql.org#in-other-news">#</a></h2><ul><li><a href="https://product.voxmedia.com/2020/11/2/21494865/to-federate-or-stitch-a-graphql-gateway-revisited" target="_blank" rel="nofollow noopener noreferrer">Vox Media evaluates Apollo GraphQL Federation and The Guild Schema Stitching</a> for the best GraphQL platform to manage “a chorus of applications working together to publish modern media”</li>
<li>AWS released a “<a href="https://aws.amazon.com/graphql/guide/" target="_blank" rel="nofollow noopener noreferrer">Decision Guide to GraphQL Implementation</a>”</li>
<li><a href="https://netflixtechblog.com/how-netflix-scales-its-api-with-graphql-federation-part-1-ae3557c187e2" target="_blank" rel="nofollow noopener noreferrer">Netflix discusses</a> how it scales its API with <a href="https://www.apollographql.com/" target="_blank" rel="nofollow noopener noreferrer">Apollo GraphQL</a> Federation via its next generation architecture, “Studio Edge”, which uses federation as a critical element.</li>
<li><a href="https://dev.to/danielrearden/building-a-graphql-server-with-graphql-helix-2k44" target="_blank" rel="nofollow noopener noreferrer">Building a GraphQL server with GraphQL Helix</a>, a newly released library for building GraphQL APIs. The aim of GraphQL Helix is to allow developers to use new features that are not yet supported in other libraries and to prevent vendor lock-in.</li>
<li><a href="https://the-guild.dev/blog/graphql-tools-v7" target="_blank" rel="nofollow noopener noreferrer">GraphQL Tools v7 was released to deliver the next generation GraphQL API Gateway</a>, bringing a new way to federate multiple GraphQL servers, focusing on standard spec compliant GraphQ</li>
<li>We’ve already announced that The Guild has recently joined the GraphQL Foundation and now <a href="https://the-guild.dev/blog/joining-graphql-foundation" target="_blank" rel="nofollow noopener noreferrer">they wrote a blog post about it</a>. Who will be the next to join?</li>
</ul><h2>Upcoming Events:<a class="hash-link" href="http://graphql.org#upcoming-events">#</a></h2><ul><li><strong>Nov 17</strong>: <a href="https://www.graphql-meetup.com/#/graphql-contributor-days-november-2020" target="_blank" rel="nofollow noopener noreferrer">GraphQL Contributor Days</a>, in partnership with <a href="https://hasura.io/" target="_blank" rel="nofollow noopener noreferrer">Hasura</a>, will give important updates to the community, and provide a forum for anyone using GraphQL to have direct access to core contributors and authors of various libraries and frameworks through live chat and an online broadcast.</li>
<li><strong>Dec 2</strong>: <a href="https://relaymeetup.com/" target="_blank" rel="nofollow noopener noreferrer">Relay Meetup</a> is a global, online meetup on Relay, the GraphQL client. This event will feature a conversation about the @defer and @stream directives and why it should be brought to the official GraphQL specification.</li>
<li><strong>Dec 7-8</strong>: <a href="https://graphqlgalaxy.com" target="_blank" rel="nofollow noopener noreferrer">GraphQL Galaxy Conference</a> is a new remote conference focusing on all things <a href="https://twitter.com/search?q=%23GraphQL&amp;src=hashtag_click" target="_blank" rel="nofollow noopener noreferrer">GraphQL</a>.</li>
<li>Missed Apollo Day on Nov. 10th? Check out some of the great talks on <a href="https://www.twitch.tv/apollographql" target="_blank" rel="nofollow noopener noreferrer">Twitch</a>.</li>
</ul><h2>Get Involved!<a class="hash-link" href="http://graphql.org#get-involved">#</a></h2><p>Developers can get involved in the community and contribute to the project at <a href="https://github.com/graphql">https://github.com/graphql</a>.</p><p>Organizations interested in becoming members of the GraphQL Foundation or the GraphQL Specification can learn more on our <a href="http://graphql.org/foundation/join">member page</a>. If you have questions about membership, please send an email to <a href="mailto:membership@graphql.org" target="_blank" rel="nofollow noopener noreferrer">membership@graphql.org</a>.</p></div>]]></description>
      <link>http://graphql.org/blog/2020-11-12-graphql-foundation-monthly-newsletter-october-2020</link>
      <guid>http://graphql.org/blog/2020-11-12-graphql-foundation-monthly-newsletter-october-2020</guid>
      <pubDate>Thu, 12 Nov 2020 01:00:00 +0100</pubDate>
    </item>
    <item>
      <title><![CDATA[GraphQL Foundation Monthly Newsletter October 2020]]></title>
      <description><![CDATA[<p><time datetime="2020-11-12T00:00:00.000Z">November 12, 2020</time> by GraphQL Foundation</p><p><a class="transition-colors py-1 px-2.5 capitalize rounded bg-zinc-200 dark:bg-zinc-700 font-bold hover:!no-underline hover:!bg-primary hover:text-white dark:hover:text-zinc-900" href="https://graphql.org/tags/newsletter/">newsletter</a></p>
<p class="_mt-6 _leading-7 first:_mt-0"><a class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]" href="https://graphql.org/">GraphQL</a> has redefined how developers work with APIs and client-server interactions. And as the community works hard to foster the growth and adoption of GraphQL, we are excited to share the work of the community and discussions via the monthly GraphQL Foundation newsletter.</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">WG Updates</h2>
<p class="_mt-6 _leading-7 first:_mt-0">The <a href="https://github.com/graphql/graphql-wg" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphQL Working Group</a> meets monthly, and records <a href="https://github.com/graphql/graphql-wg/blob/master/notes/2020-10-01.md" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">detailed minutes</a>. You can also listen to the replays of GraphQL technical meetings on <a href="https://youtube.graphql.org" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">YouTube</a>.</p>
<h3 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-8 _text-2xl"><a href="https://github.com/graphql/graphql-spec/issues/715" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Query ambiguity: discussion of replacement terms</a></h3>
<p class="_mt-6 _leading-7 first:_mt-0">In the GraphQL ecosystem the term “query” can seem overloaded and ambiguous - sometimes it refers to the query operation type or a query operation, sometimes it refers to a GraphQL request or a GraphQL document containing operations, sometimes it refers to the contents of selection sets (as in “query reuse”), and sometimes it is used as a verb to refer to the generic act of querying a server for information.</p>
<p class="_mt-6 _leading-7 first:_mt-0">The WG discussed the best way to remove this ambiguity and how to move forward.</p>
<h3 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-8 _text-2xl"><a href="https://github.com/graphql/graphql-spec/pull/746" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Schema Coordinates RFC check in</a></h3>
<p class="_mt-6 _leading-7 first:_mt-0">The RFC is filed, and the next action is to turn this into an actual spec edit.</p>
<h3 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-8 _text-2xl"><a href="https://github.com/graphql/graphql-spec/pull/733" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Tagged type update</a></h3>
<p class="_mt-6 _leading-7 first:_mt-0">This is an RFC for a new “Tagged type” to be added to GraphQL. It replaces the <a href="https://github.com/graphql/graphql-spec/pull/586" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">“@oneField directive”</a> proposal following feedback from the Input Unions Working Group. Please note that “Tagged type” is the working name, and may change if we come up with a better name for it.</p>
<p class="_mt-6 _leading-7 first:_mt-0">A Tagged type defines a list of named members each with an associated type (like the fields in Object types and Input Object types), but differs from Object types and Input Object types in that exactly one of those members must be present.</p>
<p class="_mt-6 _leading-7 first:_mt-0">The aim of the Tagged type is to introduce a form of polymorphism in GraphQL that can be symmetric between input and output. In output, it can generally be used as an alternative to Union (the differences will be outlined below). It goes beyond interfaces and unions in that it allows the same type to be specified more than once, which is particularly useful to represent filters such as this pseudocode .</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">In Other News…</h2>
<ul class="_mt-6 _list-disc first:_mt-0 ltr:_ml-6 rtl:_mr-6"><li class="_my-2"><a href="https://product.voxmedia.com/2020/11/2/21494865/to-federate-or-stitch-a-graphql-gateway-revisited" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Vox Media evaluates Apollo GraphQL Federation and The Guild Schema Stitching</a> for the best GraphQL platform to manage “a chorus of applications working together to publish modern media”</li>
<li class="_my-2">AWS released a “<a href="https://aws.amazon.com/graphql/guide/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Decision Guide to GraphQL Implementation</a>”</li>
<li class="_my-2"><a href="https://netflixtechblog.com/how-netflix-scales-its-api-with-graphql-federation-part-1-ae3557c187e2" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Netflix discusses</a> how it scales its API with <a href="https://www.apollographql.com/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Apollo GraphQL</a> Federation via its next generation architecture, “Studio Edge”, which uses federation as a critical element.</li>
<li class="_my-2"><a href="https://dev.to/danielrearden/building-a-graphql-server-with-graphql-helix-2k44" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Building a GraphQL server with GraphQL Helix</a>, a newly released library for building GraphQL APIs. The aim of GraphQL Helix is to allow developers to use new features that are not yet supported in other libraries and to prevent vendor lock-in.</li>
<li class="_my-2"><a href="https://the-guild.dev/blog/graphql-tools-v7" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphQL Tools v7 was released to deliver the next generation GraphQL API Gateway</a>, bringing a new way to federate multiple GraphQL servers, focusing on standard spec compliant GraphQ</li>
<li class="_my-2">We’ve already announced that The Guild has recently joined the GraphQL Foundation and now <a href="https://the-guild.dev/blog/joining-graphql-foundation" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">they wrote a blog post about it</a>. Who will be the next to join?</li>
</ul><h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Upcoming Events</h2>
<ul class="_mt-6 _list-disc first:_mt-0 ltr:_ml-6 rtl:_mr-6"><li class="_my-2"><strong>Nov 17</strong>: <a href="https://www.graphql-meetup.com/#/graphql-contributor-days-november-2020" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphQL Contributor Days</a>, in partnership with <a href="https://hasura.io/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Hasura</a>, will give important updates to the community, and provide a forum for anyone using GraphQL to have direct access to core contributors and authors of various libraries and frameworks through live chat and an online broadcast.</li>
<li class="_my-2"><strong>Dec 2</strong>: <a href="https://relaymeetup.com/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Relay Meetup</a> is a global, online meetup on Relay, the GraphQL client. This event will feature a conversation about the @defer and @stream directives and why it should be brought to the official GraphQL specification.</li>
<li class="_my-2"><strong>Dec 7-8</strong>: <a href="https://graphqlgalaxy.com" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphQL Galaxy Conference</a> is a new remote conference focusing on all things <a href="https://twitter.com/search?q=%23GraphQL&amp;src=hashtag_click" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphQL</a>.</li>
<li class="_my-2">Missed Apollo Day on Nov. 10th? Check out some of the great talks on <a href="https://www.twitch.tv/apollographql" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Twitch</a>.</li>
</ul><h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Get Involved!</h2>
<p class="_mt-6 _leading-7 first:_mt-0">Developers can get involved in the community and contribute to the project at <a href="https://github.com/graphql" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">https://github.com/graphql</a>.</p>
<p class="_mt-6 _leading-7 first:_mt-0">Organizations interested in becoming members of the GraphQL Foundation or the GraphQL Specification can learn more on our <a class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]" href="https://graphql.org/foundation/join/">member page</a>. If you have questions about membership, please send an email to <a class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]" href="mailto:membership@graphql.org">membership@graphql.org</a>.</p>]]></description>
      <link>https://graphql.org/blog/2020-11-12-newsletter-october-2020</link>
      <guid>https://graphql.org/blog/2020-11-12-newsletter-october-2020</guid>
      <pubDate>Thu, 12 Nov 2020 01:00:00 +0100</pubDate>
    </item>
    <item>
      <title><![CDATA[GraphQL Foundation Monthly Newsletter September 2020]]></title>
      <description><![CDATA[<p>10/15/2020 by GraphQL Foundation</p><hr /><div><p><a href="https://graphql.org/" target="_blank" rel="nofollow noopener noreferrer">GraphQL</a> has redefined how developers work with APIs and client-server interactions. And as the community works hard to foster the growth and adoption of GraphQL, we are excited to share the work of the community and discussions via a new monthly GraphQL Foundation newsletter.</p><p>All work on GraphQL and related projects, both big and small, is important to the growth and maturity of the project, which has already seen adoption from many of the world’s largest internet-scale companies.</p><p>Many of these items are just in beginning discussions while some are further along. The goal of this monthly post is to summarize and share what’s top of mind for the community and help others get involved. These are only initial discussion topics. For notes on the full discussion during the monthly WG calls please refer to these <a href="https://github.com/graphql/graphql-wg/blob/b1bfe0cee461d752146dc77e5c35a5e8d7921272/notes/2020-09-03.md#allowing-deprecation-of-inputs-10m-evan" target="_blank" rel="nofollow noopener noreferrer">call notes</a>.</p><h2>WG Updates:<a class="hash-link" href="http://graphql.org#wg-updates">#</a></h2><h3>Allowing deprecation of inputs<a class="hash-link" href="http://graphql.org#allowing-deprecation-of-inputs">#</a></h3><p>Discussed whether the spec should allow deprecating an input that is required. Two concerns: deprecations are intended to be actionable; introspection does not include deprecated things by default - could break tooling that's no longer receiving deprecated inputs as part of their introspection results. <em>Regarding case 1: not much of a blocker; the action from deprecation doesn't need to come from a schema (e.g. it could be switch to a new version/endpoint)</em> Regarding case 2: much more of an issue because we could be breaking clients. My suggestion is to return required arguments even if they're deprecated - introspection should always give you what's necessary even if you say you don't want it.</p><h3>@defer/@stream<a class="hash-link" href="http://graphql.org#defer-stream">#</a></h3><p>trying to answer the “why we don’t support Defer on field question”. The reasoning for that is the original Apollo implementation was only on fields. We ran into problems in that it’s difficult to coordinate</p><h3>Querying Query query queries: "query" ambiguity<a class="hash-link" href="http://graphql.org#querying-query-query-queries-query-ambiguity">#</a></h3><p>The issue was first raised around the ambiguity of the term "query" as used in the GraphQL spec and ecosystem back in April. In just this title, we've referred to requesting, the Query type, a query operation, and a nested selection set; but that's just some of the ways we use this term, which can make it really hard for people new to GraphQL to get up to speed. Benjie has analyzed the use of the term, and has proposed a consistent set of terminology to use based on other terms used in the GraphQL spec already, this was discussed at the most recent Working Group. See <a href="https://github.com/graphql/graphql-spec/pull/777" target="_blank" rel="nofollow noopener noreferrer">Spec PR #777</a>.</p><h3>Other topics discussed:<a class="hash-link" href="http://graphql.org#other-topics-discussed">#</a></h3><ul><li><a href="https://github.com/graphql/graphql-js/issues/2104" target="_blank" rel="nofollow noopener noreferrer">TypeScript Migration Progress in graphql-js</a></li>
<li><a href="https://github.com/graphql/graphql-js/issues/2787" target="_blank" rel="nofollow noopener noreferrer">How to bootstrap graphql-js working group?</a></li>
<li>GitHub infrastructure for managing Working groups</li>
<li>Custom Scalars subproject</li>
</ul><h2>Ecosystem Updates:<a class="hash-link" href="http://graphql.org#ecosystem-updates">#</a></h2><p>Vscode-graphql, which uses the official GraphQL Language Server, has now become the official reference vscode extension! Like GraphiQL, we will work to ensure all new spec language features are introduced here. After making the announcement we gained 30,000 new users! <a href="https://rikki.dev/vscode-graphql-lsp-0-3-0/" target="_blank" rel="nofollow noopener noreferrer">This blog post</a> will tell you more about all the new features.</p><h2>In Other News...<a class="hash-link" href="http://graphql.org#in-other-news">#</a></h2><ul><li>Dgraph Labs launched <a href="https://www.producthunt.com/posts/slash-graphql" target="_blank" rel="nofollow noopener noreferrer">Slash GraphQL</a>, a product that can help you get a working GraphQL backend in minutes</li>
<li>A new library for the WebSocket Protocol has been created. Read more <a href="https://the-guild.dev/blog/graphql-over-websockets" target="_blank" rel="nofollow noopener noreferrer">here</a>.</li>
<li>The Guild has created a new <a href="https://github.com/dotansimha/graphql-eslint" target="_blank" rel="nofollow noopener noreferrer">GraphQL-ESLint library</a> for linting your GraphQL schemas and operations with community and custom rules. Read more <a href="https://the-guild.dev/blog/introducing-graphql-eslint" target="_blank" rel="nofollow noopener noreferrer">here</a>.</li>
<li>GraphQL CLI 4.1 has been released. <a href="https://the-guild.dev/blog/whats-new-in-graphql-cli-4.1.0" target="_blank" rel="nofollow noopener noreferrer">Read here</a> about the new functionality.</li>
<li>You can now consume WebHooks as GraphQL Subscriptions thanks to the new version of <a href="https://github.com/urigo/graphql-mesh" target="_blank" rel="nofollow noopener noreferrer">GraphQL Mesh</a>. Read more <a href="https://the-guild.dev/blog/graphql-mesh-subscriptions" target="_blank" rel="nofollow noopener noreferrer">here</a>.</li>
<li>Hasura’s <a href="https://hasura.io/enterprisegraphql/" target="_blank" rel="nofollow noopener noreferrer">Enterprise GraphQL Conf</a> is taking place October 20-22. There is still time to register</li>
<li>AWS released a new webinar “<a href="https://pages.awscloud.com/Build-Modern-Serverless-Applications-with-GraphQL-APIs-and-AWS-AppSync_2020_0918-MBL_OD.html?&amp;trk=ep_card-el_a131L0000084iG3QAI&amp;trkCampaign=NA-FY20-AWS-DIGMKT-WEBINAR-SERIES-September_2020_0918-MBL&amp;sc_channel=el&amp;sc_campaign=pac_2018-2019_exlinks_ondemand_OTT_evergreen&amp;sc_outcome=Product_Adoption_Campaigns&amp;sc_geo=NAMER&amp;sc_country=mult" target="_blank" rel="nofollow noopener noreferrer">Build Modern Serverless Applications with GraphQL APIs and AWS AppSync</a>”</li>
<li>Catch up on recent talks from the <a href="https://www.youtube.com/watch?v=4UDsR4z2KIY" target="_blank" rel="nofollow noopener noreferrer">GraphQL Berlin</a> Meetup</li>
<li><a href="https://www.meetup.com/Amsterdam-GraphQL-Meetup/events/273901137/" target="_blank" rel="nofollow noopener noreferrer">GraphQL Amsterdam</a>, <a href="https://www.meetup.com/Copenhagen-GraphQL-Meetup-Group/events/273901144/" target="_blank" rel="nofollow noopener noreferrer">GraphQL Copenhagen</a>, React GraphQL Academy and The Guild are collaborating on an online GraphQL Meetup. Check out the details <a href="https://twitter.com/reactgqlacademy/status/1313789927834947585?s=20" target="_blank" rel="nofollow noopener noreferrer">here</a>.</li>
<li>Apollo created an <a href="https://apollo-visualizer.vercel.app/" target="_blank" rel="nofollow noopener noreferrer">Error Handling Visualizer</a> tool, which provides an interactive playground to visualize the relationship between nullability and error handling in GraphQL, specifically with Apollo Client.</li>
</ul><h2>Get Involved!<a class="hash-link" href="http://graphql.org#get-involved">#</a></h2><p>Developers can get involved in the community and contribute to the project at <a href="https://github.com/graphql">https://github.com/graphql</a>.</p><p>Organizations interested in becoming members of the GraphQL Foundation or the GraphQL Specification can learn more on our <a href="http://graphql.org/foundation/join">member page</a>. If you have questions about membership, please send an email to <a href="mailto:membership@graphql.org" target="_blank" rel="nofollow noopener noreferrer">membership@graphql.org</a>.</p></div>]]></description>
      <link>http://graphql.org/blog/2020-10-15-graphql-foundation-monthly-newsletter-september-2020</link>
      <guid>http://graphql.org/blog/2020-10-15-graphql-foundation-monthly-newsletter-september-2020</guid>
      <pubDate>Thu, 15 Oct 2020 02:00:00 +0200</pubDate>
    </item>
    <item>
      <title><![CDATA[GraphQL Foundation Monthly Newsletter September 2020]]></title>
      <description><![CDATA[<p><time datetime="2020-10-15T00:00:00.000Z">October 15, 2020</time> by GraphQL Foundation</p><p><a class="transition-colors py-1 px-2.5 capitalize rounded bg-zinc-200 dark:bg-zinc-700 font-bold hover:!no-underline hover:!bg-primary hover:text-white dark:hover:text-zinc-900" href="https://graphql.org/tags/newsletter/">newsletter</a></p>
<p class="_mt-6 _leading-7 first:_mt-0"><a class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]" href="https://graphql.org/">GraphQL</a> has redefined how developers work with APIs and client-server interactions. And as the community works hard to foster the growth and adoption of GraphQL, we are excited to share the work of the community and discussions via a new monthly GraphQL Foundation newsletter.</p>
<p class="_mt-6 _leading-7 first:_mt-0">All work on GraphQL and related projects, both big and small, is important to the growth and maturity of the project, which has already seen adoption from many of the world’s largest internet-scale companies.</p>
<p class="_mt-6 _leading-7 first:_mt-0">Many of these items are just in beginning discussions while some are further along. The goal of this monthly post is to summarize and share what’s top of mind for the community and help others get involved. These are only initial discussion topics. For notes on the full discussion during the monthly WG calls please refer to these <a href="https://github.com/graphql/graphql-wg/blob/b1bfe0cee461d752146dc77e5c35a5e8d7921272/notes/2020-09-03.md#allowing-deprecation-of-inputs-10m-evan" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">call notes</a>.</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">WG Updates</h2>
<h3 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-8 _text-2xl">Allowing deprecation of inputs</h3>
<p class="_mt-6 _leading-7 first:_mt-0">Discussed whether the spec should allow deprecating an input that is required. Two concerns: deprecations are intended to be actionable; introspection does not include deprecated things by default - could break tooling that’s no longer receiving deprecated inputs as part of their introspection results.</p>
<ul class="_mt-6 _list-disc first:_mt-0 ltr:_ml-6 rtl:_mr-6"><li class="_my-2">Regarding case 1: not much of a blocker; the action from deprecation doesn’t need to come from a schema (e.g. it could be switch to a new version/endpoint)</li>
<li class="_my-2">Regarding case 2: much more of an issue because we could be breaking clients. My suggestion is to return required arguments even if they’re deprecated - introspection should always give you what’s necessary even if you say you don’t want it.</li>
</ul><h3 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-8 _text-2xl">/</h3>
<p class="_mt-6 _leading-7 first:_mt-0">trying to answer the “why we don’t support Defer on field question”. The reasoning for that is the original Apollo implementation was only on fields. We ran into problems in that it’s difficult to coordinate</p>
<h3 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-8 _text-2xl">Querying Query query queries: “query” ambiguity</h3>
<p class="_mt-6 _leading-7 first:_mt-0">The issue was first raised around the ambiguity of the term “query” as used in the GraphQL spec and ecosystem back in April. In just this title, we’ve referred to requesting, the Query type, a query operation, and a nested selection set; but that’s just some of the ways we use this term, which can make it really hard for people new to GraphQL to get up to speed. Benjie has analyzed the use of the term, and has proposed a consistent set of terminology to use based on other terms used in the GraphQL spec already, this was discussed at the most recent Working Group. See <a href="https://github.com/graphql/graphql-spec/pull/777" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Spec PR #777</a>.</p>
<h3 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-8 _text-2xl">Other topics discussed</h3>
<ul class="_mt-6 _list-disc first:_mt-0 ltr:_ml-6 rtl:_mr-6"><li class="_my-2"><a href="https://github.com/graphql/graphql-js/issues/2104" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">TypeScript Migration Progress in graphql-js</a></li>
<li class="_my-2"><a href="https://github.com/graphql/graphql-js/issues/2787" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">How to bootstrap graphql-js working group?</a></li>
<li class="_my-2">GitHub infrastructure for managing Working groups</li>
<li class="_my-2">Custom Scalars subproject</li>
</ul><h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Ecosystem Updates</h2>
<p class="_mt-6 _leading-7 first:_mt-0">Vscode-graphql, which uses the official GraphQL Language Server, has now become the official reference vscode extension! Like GraphiQL, we will work to ensure all new spec language features are introduced here. After making the announcement we gained 30,000 new users! <a href="https://rikki.dev/vscode-graphql-lsp-0-3-0/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">This blog post</a> will tell you more about all the new features.</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">In Other News…</h2>
<ul class="_mt-6 _list-disc first:_mt-0 ltr:_ml-6 rtl:_mr-6"><li class="_my-2">Dgraph Labs launched <a href="https://www.producthunt.com/posts/slash-graphql" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Slash GraphQL</a>, a product that can help you get a working GraphQL backend in minutes</li>
<li class="_my-2">A new library for the WebSocket Protocol has been created. Read more <a href="https://the-guild.dev/blog/graphql-over-websockets" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">here</a>.</li>
<li class="_my-2">The Guild has created a new <a href="https://github.com/dotansimha/graphql-eslint" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphQL-ESLint library</a> for linting your GraphQL schemas and operations with community and custom rules. Read more <a href="https://the-guild.dev/blog/introducing-graphql-eslint" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">here</a>.</li>
<li class="_my-2">GraphQL CLI 4.1 has been released. <a href="https://the-guild.dev/blog/whats-new-in-graphql-cli-4.1.0" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Read here</a> about the new functionality.</li>
<li class="_my-2">You can now consume WebHooks as GraphQL Subscriptions thanks to the new version of <a href="https://github.com/urigo/graphql-mesh" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphQL Mesh</a>. Read more <a href="https://the-guild.dev/blog/graphql-mesh-subscriptions" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">here</a>.</li>
<li class="_my-2">Hasura’s <a href="https://hasura.io/enterprisegraphql/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Enterprise GraphQL Conf</a> is taking place October 20-22. There is still time to register</li>
<li class="_my-2">AWS released a new webinar “<a href="https://pages.awscloud.com/Build-Modern-Serverless-Applications-with-GraphQL-APIs-and-AWS-AppSync_2020_0918-MBL_OD.html?&amp;trk=ep_card-el_a131L0000084iG3QAI&amp;trkCampaign=NA-FY20-AWS-DIGMKT-WEBINAR-SERIES-September_2020_0918-MBL&amp;sc_channel=el&amp;sc_campaign=pac_2018-2019_exlinks_ondemand_OTT_evergreen&amp;sc_outcome=Product_Adoption_Campaigns&amp;sc_geo=NAMER&amp;sc_country=mult" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Build Modern Serverless Applications with GraphQL APIs and AWS AppSync</a>”</li>
<li class="_my-2">Catch up on recent talks from the <a href="https://www.youtube.com/watch?v=4UDsR4z2KIY" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphQL Berlin</a> Meetup</li>
<li class="_my-2"><a href="https://www.meetup.com/Amsterdam-GraphQL-Meetup/events/273901137/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphQL Amsterdam</a>, <a href="https://www.meetup.com/Copenhagen-GraphQL-Meetup-Group/events/273901144/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphQL Copenhagen</a>, React GraphQL Academy and The Guild are collaborating on an online GraphQL Meetup. Check out the details <a href="https://twitter.com/reactgqlacademy/status/1313789927834947585?s=20" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">here</a>.</li>
<li class="_my-2">Apollo created an <a href="https://apollo-visualizer.vercel.app/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Error Handling Visualizer</a> tool, which provides an interactive playground to visualize the relationship between nullability and error handling in GraphQL, specifically with Apollo Client.</li>
</ul><h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Get Involved!</h2>
<p class="_mt-6 _leading-7 first:_mt-0">Developers can get involved in the community and contribute to the project at <a href="https://github.com/graphql" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">https://github.com/graphql</a>.</p>
<p class="_mt-6 _leading-7 first:_mt-0">Organizations interested in becoming members of the GraphQL Foundation or the GraphQL Specification can learn more on our <a class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]" href="https://graphql.org/foundation/join/">member page</a>. If you have questions about membership, please send an email to <a class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]" href="mailto:membership@graphql.org">membership@graphql.org</a>.</p>]]></description>
      <link>https://graphql.org/blog/2020-10-15-newsletter-september-2020</link>
      <guid>https://graphql.org/blog/2020-10-15-newsletter-september-2020</guid>
      <pubDate>Thu, 15 Oct 2020 02:00:00 +0200</pubDate>
    </item>
    <item>
      <title><![CDATA[Google Season of Docs 2020 Participant: Carolyn Stransky]]></title>
      <description><![CDATA[<blockquote>
<p><a href="https://workwithcarolyn.com/" target="_blank" rel="nofollow noopener noreferrer">Carolyn Stransky</a> is a frontend developer and journalist based in Berlin, Germany. She is selected for <a href="https://developers.google.com/season-of-docs" target="_blank" rel="nofollow noopener noreferrer">Google Season of Docs 2020</a> - GraphQL Foundation under the mentorship of <a href="https://github.com/IvanGoncharov" target="_blank" rel="nofollow noopener noreferrer">Ivan Goncharov</a>. In this post, she will share her plans on how she is going to spend the next couple of months contributing to the GraphQL Foundation.</p>
</blockquote><p>When I first heard about GraphQL three years ago, I thought that it was a programming language that constructed charts or plotted points on graphs. After building my first application with GraphQL, I would have categorized it as React-specific tooling, like Redux or React Router. Months later, I was still convinced it was just another Twitter-fueled programming trend.</p><p>Looking back now, it’s clear that my initial perceptions of GraphQL were incorrect… but they weren’t uncommon.</p><p>Learning a new technology comes with a lot of questions - and GraphQL is no exception. There are so many misconceptions about what GraphQL is and how it can be used. And I wasn’t the only GraphQL newbie holding on to those same, inaccurate beliefs.</p><p>After gaining a solid understanding of what GraphQL <em>really</em> is, I started giving presentations at conferences about how difficult I found the learning process (literally the talk title was <a href="https://workwithcarolyn.com/speaking/life-is-hard-and-so-is-learning-graphql" target="_blank" rel="nofollow noopener noreferrer">Life is hard and so is learning GraphQL</a>). This talk was cathartic, both for me and the audiences I was presenting to. Through my research, I also realized that while <a href="https://graphql.org/" target="_blank" rel="nofollow noopener noreferrer">graphql.org</a> thoroughly covers the core concepts, it doesn’t directly address some of the questions you face as a new learner.</p><p>Fortunately, GraphQL has evolved enough that the information is out there and available. It’s more a matter of finding it because that information is scattered throughout various resources and programming communities. That’s why I was excited to see a <a href="https://github.com/graphql/faq" target="_blank" rel="nofollow noopener noreferrer">Frequently Asked Questions</a> (FAQ) page as one of the proposed Season of Docs projects. And as someone who has openly critiqued the GraphQL documentation, I wanted to play a part in actively improving them.</p><p>There are two main goals behind this FAQ page:</p><ol><li><strong>Build a centralized resource for everyone</strong>. As of now, much of the GraphQL ecosystem is focused on JavaScript due to the early ties with Relay and React. But GraphQL is for everyone, regardless of programming language, so this resource should be too. To ensure this, the FAQ content will be framework agnostic and vendor-neutral.</li>
<li><strong>Become a truly community-owned resource</strong>. GraphQL was initially passed down from Facebook, but it’s no longer maintained solely by Facebook. This should be a resource that everyone is welcome to contribute to and the community feels empowered to change and grow. That way, common questions won’t be left unanswered.</li>
</ol><p>The plan for exactly how to tackle this page will morph and evolve throughout the next two and a half months. My hope, though, is that keeping these goals in mind will lead to a new resource that will help both newcomers and seasoned GraphQL users thrive.</p><p>In preparation for the documentation development part of Season of Docs, I became familiar with <a href="http://graphql.org" target="_blank" rel="nofollow noopener noreferrer">the repository behind graphql.org</a> by triaging issues and reviewing open pull requests. I also helped with the <a href="https://github.com/graphql/graphql.github.io/issues/875" target="_blank" rel="nofollow noopener noreferrer">ongoing migration to Gatsby</a> because I’ll be building the new FAQ page in Gatsby (there are still <a href="https://github.com/graphql/graphql.github.io/pull/913#issuecomment-687325610" target="_blank" rel="nofollow noopener noreferrer">open issues</a> if you want to contribute). You can read more details about the community bonding phase <a href="https://workwithcarolyn.com/blog/community-bonding-gsod" target="_blank" rel="nofollow noopener noreferrer">on my blog</a>.</p><p>The next step is to create the inaugural batch of FAQ content. This will be about 10-15 questions sourced from various areas of the Internet and in consultation with prominent GraphQL teachers. Once those are complete with thorough answers and built into the new Gatsby site, I’ll get feedback from the community (that’s you) and continue to iterate on the content, design, layout - everything!</p><p>If you have opinions or would like to follow the project’s progress, <a href="https://github.com/graphql/graphql.github.io/issues/new" target="_blank" rel="nofollow noopener noreferrer">open an issue</a> or <a href="https://github.com/graphql/graphql.github.io/" target="_blank" rel="nofollow noopener noreferrer">lurk around the website repository</a>.</p><blockquote>
<p>– <strong>Carolyn Stransky</strong>, GSoD 2020, Graphql Foundation</p>
</blockquote>]]></description>
      <link>http://graphql.org/blog/2020-09-21-gsod-carolyn-stransky</link>
      <guid>http://graphql.org/blog/2020-09-21-gsod-carolyn-stransky</guid>
      <pubDate>Mon, 21 Sep 2020 02:00:00 +0200</pubDate>
    </item>
    <item>
      <title><![CDATA[Google Season of Docs 2020 Participant: Carolyn Stransky]]></title>
      <description><![CDATA[<p><time datetime="2020-09-21T00:00:00.000Z">September 21, 2020</time> by Carolyn Stransky</p><p><a class="transition-colors py-1 px-2.5 capitalize rounded bg-zinc-200 dark:bg-zinc-700 font-bold hover:!no-underline hover:!bg-primary hover:text-white dark:hover:text-zinc-900" href="https://graphql.org/tags/announcements/">announcements</a></p>
<blockquote class="_mt-6 _border-gray-300 _italic _text-gray-700 dark:_border-gray-700 dark:_text-gray-400 first:_mt-0 ltr:_border-l-2 ltr:_pl-6 rtl:_border-r-2 rtl:_pr-6">
<p class="_mt-6 _leading-7 first:_mt-0"><a href="https://workwithcarolyn.com" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Carolyn Stransky</a> is a frontend developer and journalist based in Berlin, Germany. She is selected for <a href="https://developers.google.com/season-of-docs" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Google Season of Docs 2020</a> - GraphQL Foundation under the mentorship of <a href="https://github.com/IvanGoncharov" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Ivan Goncharov</a>. In this post, she will share her plans on how she is going to spend the next couple of months contributing to the GraphQL Foundation.</p>
</blockquote>
<p class="_mt-6 _leading-7 first:_mt-0">When I first heard about GraphQL three years ago, I thought that it was a programming language that constructed charts or plotted points on graphs. After building my first application with GraphQL, I would have categorized it as React-specific tooling, like Redux or React Router. Months later, I was still convinced it was just another Twitter-fueled programming trend.</p>
<p class="_mt-6 _leading-7 first:_mt-0">Looking back now, it’s clear that my initial perceptions of GraphQL were incorrect… but they weren’t uncommon.</p>
<p class="_mt-6 _leading-7 first:_mt-0">Learning a new technology comes with a lot of questions - and GraphQL is no exception. There are so many misconceptions about what GraphQL is and how it can be used. And I wasn’t the only GraphQL newbie holding on to those same, inaccurate beliefs.</p>
<p class="_mt-6 _leading-7 first:_mt-0">After gaining a solid understanding of what GraphQL <em>really</em> is, I started giving presentations at conferences about how difficult I found the learning process (literally the talk title was <a href="https://workwithcarolyn.com/speaking/life-is-hard-and-so-is-learning-graphql" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Life is hard and so is learning GraphQL</a>). This talk was cathartic, both for me and the audiences I was presenting to. Through my research, I also realized that while <a class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]" href="https://graphql.org/">graphql.org</a> thoroughly covers the core concepts, it doesn’t directly address some of the questions you face as a new learner.</p>
<p class="_mt-6 _leading-7 first:_mt-0">Fortunately, GraphQL has evolved enough that the information is out there and available. It’s more a matter of finding it because that information is scattered throughout various resources and programming communities. That’s why I was excited to see a <a href="https://github.com/graphql/faq" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Frequently Asked Questions</a> (FAQ) page as one of the proposed Season of Docs projects. And as someone who has openly critiqued the GraphQL documentation, I wanted to play a part in actively improving them.</p>
<p class="_mt-6 _leading-7 first:_mt-0">There are two main goals behind this FAQ page:</p>
<ol class="_mt-6 _list-decimal first:_mt-0 ltr:_ml-6 rtl:_mr-6"><li class="_my-2"><strong>Build a centralized resource for everyone</strong>. As of now, much of the GraphQL ecosystem is focused on JavaScript due to the early ties with Relay and React. But GraphQL is for everyone, regardless of programming language, so this resource should be too. To ensure this, the FAQ content will be framework agnostic and vendor-neutral.</li>
<li class="_my-2"><strong>Become a truly community-owned resource</strong>. GraphQL was initially passed down from Facebook, but it’s no longer maintained solely by Facebook. This should be a resource that everyone is welcome to contribute to and the community feels empowered to change and grow. That way, common questions won’t be left unanswered.</li>
</ol><p class="_mt-6 _leading-7 first:_mt-0">The plan for exactly how to tackle this page will morph and evolve throughout the next two and a half months. My hope, though, is that keeping these goals in mind will lead to a new resource that will help both newcomers and seasoned GraphQL users thrive.</p>
<p class="_mt-6 _leading-7 first:_mt-0">In preparation for the documentation development part of Season of Docs, I became familiar with the repository behind <a class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]" href="https://graphql.org/">graphql.org</a> by triaging issues and reviewing open pull requests. I also helped with the <a href="https://github.com/graphql/graphql.github.io/issues/875" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">ongoing migration to Gatsby</a> because I’ll be building the new FAQ page in Gatsby (there are still <a href="https://github.com/graphql/graphql.github.io/pull/913#issuecomment-687325610" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">open issues</a> if you want to contribute). You can read more details about the community bonding phase <a href="https://workwithcarolyn.com/blog/community-bonding-gsod" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">on my blog</a>.</p>
<p class="_mt-6 _leading-7 first:_mt-0">The next step is to create the inaugural batch of FAQ content. This will be about 10-15 questions sourced from various areas of the Internet and in consultation with prominent GraphQL teachers. Once those are complete with thorough answers and built into the new Gatsby site, I’ll get feedback from the community (that’s you) and continue to iterate on the content, design, layout - everything!</p>
<p class="_mt-6 _leading-7 first:_mt-0">If you have opinions or would like to follow the project’s progress, <a href="https://github.com/graphql/graphql.github.io/issues/new" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">open an issue</a> or <a href="https://github.com/graphql/graphql.github.io" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">lurk around the website repository</a>.</p>
<blockquote class="_mt-6 _border-gray-300 _italic _text-gray-700 dark:_border-gray-700 dark:_text-gray-400 first:_mt-0 ltr:_border-l-2 ltr:_pl-6 rtl:_border-r-2 rtl:_pr-6">
<p class="_mt-6 _leading-7 first:_mt-0">– <strong>Carolyn Stransky</strong>, GSoD 2020, GraphQL Foundation</p>
</blockquote>]]></description>
      <link>https://graphql.org/blog/2020-09-21-gsod-2020-carolyn</link>
      <guid>https://graphql.org/blog/2020-09-21-gsod-2020-carolyn</guid>
      <pubDate>Mon, 21 Sep 2020 02:00:00 +0200</pubDate>
    </item>
    <item>
      <title><![CDATA[GraphQL Foundation Monthly Newsletter August 2020]]></title>
      <description><![CDATA[<p>9/11/2020 by GraphQL Foundation</p><hr /><div><p><a href="https://graphql.org" target="_blank" rel="nofollow noopener noreferrer">GraphQL</a> has redefined how developers work with APIs and client-server interactions. And as the community works hard to foster the growth and adoption of GraphQL, we are excited to share the work of the community and discussions via a new monthly GraphQL Foundation newsletter.</p><p>All work on GraphQL and related projects, both big and small, is important to the growth and maturity of the project, which has already seen adoption from many of the world’s largest internet-scale companies.</p><p>Many of these items are just in beginning discussions while some are further along. The goal of this monthly post is to summarize and share what’s top of mind for the community and help others get involved. These are only initial discussion topics. For notes on the full discussion during the monthly WG calls please refer to these <a href="https://docs.google.com/document/d/1_jvxzCkI6VWo2KEobisoiW1n_irJ4dp0aD8Pq9UXuvw/edit#" target="_blank" rel="nofollow noopener noreferrer">call notes</a></p><h2>Updates<a class="hash-link" href="http://graphql.org#updates">#</a></h2><h3><a href="https://github.com/enisdenjo/graphql-transport-ws/blob/master/PROTOCOL.md" target="_blank" rel="nofollow noopener noreferrer">GraphQL over WebSocket refresh, existing issues and security implications</a><a class="hash-link" href="http://graphql.org#graphql-over-websocket-refresh-existing-issues-and-security-implications-https-github-com-enisdenjo-graphql-transport-ws-blob-master-protocol-md">#</a></h3><p>This discussion topic proposes taking on the following two critical items of security and bypassing the onConnect event. And possibly re-writing the WebSocket protocol from scratch with full RFCs</p><h3><a href="https://github.com/graphql/graphql-spec/pull/733" target="_blank" rel="nofollow noopener noreferrer">Tagged Type RFC</a><a class="hash-link" href="http://graphql.org#tagged-type-rfc-https-github-com-graphql-graphql-spec-pull-733">#</a></h3><p>This is an RFC for a new "Tagged" type to be added to GraphQL, to help address the input polymorphism feature gap. Originally proposed as the @oneField directive, the Tagged type has evolved into an entire new type in the type system, and is currently the lead proposal from the Input Unions Working Group.</p><p>A Tagged type defines a list of named member fields each with an associated type (like the fields in Object and Input Object types); but with the stipulation that exactly one of these fields must be present (no more, no less). Depending on the types of the member fields, a Tagged type could be appropriate for input, output, or both, which is proving to be quite controversial; it's possible that the tagged type might be scoped to input only before release. The Tagged type was most recently introduced to the GraphQL Working Group in August and is undergoing feedback and revision before an expected update with the working group in October or November.</p><p>If you have use-cases for input polymorphism, please take a look - feedback is very welcome.</p><h3><a href="https://github.com/graphql/graphql-spec/issues/735" target="_blank" rel="nofollow noopener noreferrer">Standardize naming for Field coordinates</a><a class="hash-link" href="http://graphql.org#standardize-naming-for-field-coordinates-https-github-com-graphql-graphql-spec-issues-735">#</a></h3><p>This PR proposes the following 2 RFCs 1. Formalizing the naming and definition of field coordinates (as discussed in <a href="https://github.com/graphql/graphql-spec/issues/735" target="_blank" rel="nofollow noopener noreferrer">#735</a>) 2. Formalizing the way in which a Field Node (and list thereof) contained within a query document can be serialized as field coordinates</p><h3><a href="https://github.com/graphql/graphql-js/issues/2727" target="_blank" rel="nofollow noopener noreferrer">Adding generics to DocumentNode and Source to allow TypeScript type inference</a><a class="hash-link" href="http://graphql.org#adding-generics-to-documentnode-and-source-to-allow-typescript-type-inference-https-github-com-graphql-graphql-js-issues-2727">#</a></h3><p><a href="https://github.com/dotansimha" target="_blank" rel="nofollow noopener noreferrer">@dotansimha</a> from <a href="https://the-guild.dev" target="_blank" rel="nofollow noopener noreferrer">The Guild</a> had recently implemented an improved version of DocumentNode, called TypedDocumentNode, that allows type generics for result type and variable type and contributed it to graphql-js.</p><p>This improved version allows TypeScript to infer the types automatically when an object that matches the signature is used.</p><p>You can learn more by reading about it on his <a href="https://the-guild.dev/blog/typed-document-node" target="_blank" rel="nofollow noopener noreferrer">blog post</a>.</p><h2>In Other News<a class="hash-link" href="http://graphql.org#in-other-news">#</a></h2><ul><li>We recently welcomed the newest member of the GraphQL Foundation - <a href="https://the-guild.dev" target="_blank" rel="nofollow noopener noreferrer">The Guild</a>. <a href="https://foundation.graphql.org/members/" target="_blank" rel="nofollow noopener noreferrer">Here</a> you can find the list of all current members of the foundation.</li>
<li><a href="https://github.com/hereisnaman" target="_blank" rel="nofollow noopener noreferrer">@hereisnaman</a> successfully finished his Google Summer of Code (GSoC) project and is in the process of merging his<a href="https://github.com/graphql/graphql-js/pull/2770" target="_blank" rel="nofollow noopener noreferrer">PR</a>. Learn more about it <a href="https://foundation.graphql.org/news/2020/06/30/google-summer-of-code-2020-participant-naman/" target="_blank" rel="nofollow noopener noreferrer">here</a>.</li>
<li>GraphQL was accepted to the Google Season of Docs (GSoD) and <a href="https://github.com/carolstran" target="_blank" rel="nofollow noopener noreferrer">@carolstran</a> will be working on the <a href="https://developers.google.com/season-of-docs/docs/participants/project-graphql-carolstran" target="_blank" rel="nofollow noopener noreferrer">FAQ section</a> of graphql.org</li>
<li><a href="https://github.com/graphql/graphql-over-http" target="_blank" rel="nofollow noopener noreferrer">GraphQL over HTTP</a> was moved and is now under GraphQL Foundation</li>
<li><a href="https://github.com/lilianammmatos" target="_blank" rel="nofollow noopener noreferrer">@lilianammmatos</a> and <a href="https://github.com/robrichard" target="_blank" rel="nofollow noopener noreferrer">@robrichard have</a> made big progress on <code>@deferer &amp; @stream</code>. Yo can learn more by watching their talk about it at the <a href="https://www.youtube.com/watch?v=icv_Pq06aOY" target="_blank" rel="nofollow noopener noreferrer">GraphQL Summit</a>:</li>
<li><a href="https://github.com/andimarek" target="_blank" rel="nofollow noopener noreferrer">@andimarek</a> and <a href="https://github.com/eapache" target="_blank" rel="nofollow noopener noreferrer">@eapache</a> started the <a href="https://github.com/graphql/graphql-scalars/issues" target="_blank" rel="nofollow noopener noreferrer">GraphQL Scalars</a> initiative. You can also learn more by watching their talk about it at the <a href="https://www.youtube.com/watch?v=SRGTaYL3h9c" target="_blank" rel="nofollow noopener noreferrer">GraphQL Summit</a>.</li>
<li>All WG recordings were published on <a href="https://www.youtube.com/channel/UCERcwLeheOXp_u61jEXxHMA" target="_blank" rel="nofollow noopener noreferrer">Youtube</a>.</li>
</ul><h2>Get Involved!<a class="hash-link" href="http://graphql.org#get-involved">#</a></h2><p>Developers can get involved in the community and contribute to the project at <a href="https://github.com/graphql">https://github.com/graphql</a>.</p><p>Organizations interested in becoming members of the GraphQL Foundation or the GraphQL Specification can learn more on our <a href="http://graphql.org/foundation/join">member page</a>. If you have questions about membership, please send an email to <a href="mailto:membership@graphql.org" target="_blank" rel="nofollow noopener noreferrer">membership@graphql.org</a>.</p></div>]]></description>
      <link>http://graphql.org/blog/2020-09-11-graphql-foundation-monthly-newsletter-august-2020</link>
      <guid>http://graphql.org/blog/2020-09-11-graphql-foundation-monthly-newsletter-august-2020</guid>
      <pubDate>Fri, 11 Sep 2020 02:00:00 +0200</pubDate>
    </item>
    <item>
      <title><![CDATA[GraphQL Foundation Monthly Newsletter August 2020]]></title>
      <description><![CDATA[<p><time datetime="2020-09-11T00:00:00.000Z">September 11, 2020</time> by GraphQL Foundation</p><p><a class="transition-colors py-1 px-2.5 capitalize rounded bg-zinc-200 dark:bg-zinc-700 font-bold hover:!no-underline hover:!bg-primary hover:text-white dark:hover:text-zinc-900" href="https://graphql.org/tags/newsletter/">newsletter</a></p>
<p class="_mt-6 _leading-7 first:_mt-0"><a href="https://graphql.org" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphQL</a> has redefined how developers work with APIs and client-server interactions. And as the community works hard to foster the growth and adoption of GraphQL, we are excited to share the work of the community and discussions via a new monthly GraphQL Foundation newsletter.</p>
<p class="_mt-6 _leading-7 first:_mt-0">All work on GraphQL and related projects, both big and small, is important to the growth and maturity of the project, which has already seen adoption from many of the world’s largest internet-scale companies.</p>
<p class="_mt-6 _leading-7 first:_mt-0">Many of these items are just in beginning discussions while some are further along. The goal of this monthly post is to summarize and share what’s top of mind for the community and help others get involved. These are only initial discussion topics. For notes on the full discussion during the monthly WG calls please refer to these <a href="https://docs.google.com/document/d/1_jvxzCkI6VWo2KEobisoiW1n_irJ4dp0aD8Pq9UXuvw/edit" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">call notes</a></p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Updates</h2>
<h3 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-8 _text-2xl"><a href="https://github.com/enisdenjo/graphql-transport-ws/blob/master/PROTOCOL.md" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphQL over WebSocket refresh, existing issues and security implications</a></h3>
<p class="_mt-6 _leading-7 first:_mt-0">This discussion topic proposes taking on the following two critical items of security and bypassing the onConnect event. And possibly re-writing the WebSocket protocol from scratch with full RFCs</p>
<h3 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-8 _text-2xl"><a href="https://github.com/graphql/graphql-spec/pull/733" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Tagged Type RFC</a></h3>
<p class="_mt-6 _leading-7 first:_mt-0">This is an RFC for a new “Tagged” type to be added to GraphQL, to help address the input polymorphism feature gap. Originally proposed as the @oneField directive, the Tagged type has evolved into an entire new type in the type system, and is currently the lead proposal from the Input Unions Working Group.</p>
<p class="_mt-6 _leading-7 first:_mt-0">A Tagged type defines a list of named member fields each with an associated type (like the fields in Object and Input Object types); but with the stipulation that exactly one of these fields must be present (no more, no less). Depending on the types of the member fields, a Tagged type could be appropriate for input, output, or both, which is proving to be quite controversial; it’s possible that the tagged type might be scoped to input only before release. The Tagged type was most recently introduced to the GraphQL Working Group in August and is undergoing feedback and revision before an expected update with the working group in October or November.</p>
<p class="_mt-6 _leading-7 first:_mt-0">If you have use-cases for input polymorphism, please take a look - feedback is very welcome.</p>
<h3 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-8 _text-2xl"><a href="https://github.com/graphql/graphql-spec/issues/735" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Standardize naming for Field coordinates</a></h3>
<p class="_mt-6 _leading-7 first:_mt-0">This PR proposes the following 2 RFCs</p>
<ol class="_mt-6 _list-decimal first:_mt-0 ltr:_ml-6 rtl:_mr-6"><li class="_my-2">Formalizing the naming and definition of field coordinates (as discussed in <a href="https://github.com/graphql/graphql-spec/issues/735" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">#735</a>)</li>
<li class="_my-2">Formalizing the way in which a Field Node (and list thereof) contained within a query document can be serialized as field coordinates</li>
</ol><h3 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-8 _text-2xl"><a href="https://github.com/graphql/graphql-js/issues/2727" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Adding generics to DocumentNode and Source to allow TypeScript type inference</a></h3>
<p class="_mt-6 _leading-7 first:_mt-0"><a href="https://github.com/dotansimha" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">@dotansimha</a> from <a href="https://the-guild.dev" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">The Guild</a> had recently implemented an improved version of DocumentNode, called TypedDocumentNode, that allows type generics for result type and variable type and contributed it to graphql-js.</p>
<p class="_mt-6 _leading-7 first:_mt-0">This improved version allows TypeScript to infer the types automatically when an object that matches the signature is used.</p>
<p class="_mt-6 _leading-7 first:_mt-0">You can learn more by reading about it on his <a href="https://the-guild.dev/blog/typed-document-node" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">blog post</a>.</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">In Other News</h2>
<ul class="_mt-6 _list-disc first:_mt-0 ltr:_ml-6 rtl:_mr-6"><li class="_my-2">We recently welcomed the newest member of the GraphQL Foundation - <a href="https://the-guild.dev" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">The Guild</a>. <a href="https://foundation.graphql.org/members/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Here</a> you can find the list of all current members of the foundation.</li>
<li class="_my-2"><a href="https://github.com/hereisnaman" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">@hereisnaman</a> successfully finished his Google Summer of Code (GSoC) project and is in the process of merging his<a href="https://github.com/graphql/graphql-js/pull/2770" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">PR</a>. Learn more about it <a href="https://foundation.graphql.org/news/2020/06/30/google-summer-of-code-2020-participant-naman/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">here</a>.</li>
<li class="_my-2">GraphQL was accepted to the Google Season of Docs (GSoD) and <a href="https://github.com/carolstran" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">@carolstran</a> will be working on the <a href="https://developers.google.com/season-of-docs/docs/participants/project-graphql-carolstran" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">FAQ section</a> of graphql.org</li>
<li class="_my-2"><a href="https://github.com/graphql/graphql-over-http" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphQL over HTTP</a> was moved and is now under GraphQL Foundation</li>
<li class="_my-2"><a href="https://github.com/lilianammmatos" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">@lilianammmatos</a> and <a href="https://github.com/robrichard" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">@robrichard have</a> made big progress on . Yo can learn more by watching their talk about it at the <a href="https://www.youtube.com/watch?v=icv_Pq06aOY" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphQL Summit</a>:</li>
<li class="_my-2"><a href="https://github.com/andimarek" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">@andimarek</a> and <a href="https://github.com/eapache" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">@eapache</a> started the <a href="https://github.com/graphql/graphql-scalars/issues" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphQL Scalars</a> initiative. You can also learn more by watching their talk about it at the <a href="https://www.youtube.com/watch?v=SRGTaYL3h9c" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphQL Summit</a>.</li>
<li class="_my-2">All WG recordings were published on <a href="https://www.youtube.com/channel/UCERcwLeheOXp_u61jEXxHMA" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">YouTube</a>.</li>
</ul><h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Get Involved!</h2>
<p class="_mt-6 _leading-7 first:_mt-0">Developers can get involved in the community and contribute to the project at <a href="https://github.com/graphql" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">https://github.com/graphql</a>.</p>
<p class="_mt-6 _leading-7 first:_mt-0">Organizations interested in becoming members of the GraphQL Foundation or the GraphQL Specification can learn more on our <a class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]" href="https://graphql.org/foundation/join/">member page</a>. If you have questions about membership, please send an email to <a class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]" href="mailto:membership@graphql.org">membership@graphql.org</a>.</p>]]></description>
      <link>https://graphql.org/blog/2020-09-11-newsletter-august-2020</link>
      <guid>https://graphql.org/blog/2020-09-11-newsletter-august-2020</guid>
      <pubDate>Fri, 11 Sep 2020 02:00:00 +0200</pubDate>
    </item>
    <item>
      <title><![CDATA[Google Summer of Code 2020 Participant: Naman]]></title>
      <description><![CDATA[<p><img src="http://graphql.org/img/logos/gsoc.svg" alt="GSOC 2020" /></p><blockquote>
<p><a href="https://naman.sh" target="_blank" rel="nofollow noopener noreferrer">Naman Kumar</a> is a Computer Science &amp; Engineering student from New Delhi, India and a FullStack Engineer at <a href="https://producthunt.com" target="_blank" rel="nofollow noopener noreferrer">ProductHunt</a>. He is selected for Google Summer of Code 2020 - GraphQL Foundation under the mentorship of <a href="https://github.com/IvanGoncharov" target="_blank" rel="nofollow noopener noreferrer">Ivan Goncharov</a>. In this post he will share his plans on how he is going to spend his summer contributing to the Graphql Foundation.</p>
</blockquote><p>Hi, GraphQL is a technology I use everyday at my work place and other projects building platforms with 200 to 2 million users. I am surely in love with it, acknowledging how much it improves the development speed and removes the overhead of documentation for starters.</p><p>I have huge respect for Open Source organisations and really inspired by the work the whole graphql community is doing to make lives of developers easier. I have always wanted to participating in GSOC, which I assure you is a dream of every student.</p><p>I got to know about the acceptance of Graphql Foundation under GSOC from Ivan’s <a href="https://www.youtube.com/watch?v=PsXxL1oJLrc&amp;list=PLTRTpHrUcSB9jtvOwnq1yVwZl5k2DdBb2&amp;index=24&amp;t=0s" target="_blank" rel="nofollow noopener noreferrer">talk</a> at GraphQL Asia Submit 2020. I was really excited about having a chance to contribute to the tools which are used not only by me but are powering applications used by billions of people on the planet.</p><p>Having a keen interest in compiler design, the project idea of working on the <a href="https://github.com/graphql/graphql-js/" target="_blank" rel="nofollow noopener noreferrer">graphql.js</a> reference parser looked really interesting to me. Fortunately being selected for the program, I am going to spend the summer of 2020 working on Graphql.js reference parser and <a href="https://github.com/graphql/graphiql/tree/main/packages/graphql-language-service-parser" target="_blank" rel="nofollow noopener noreferrer">GraphiQL parser</a>, to merge the two together. Graphql.js reference parser do not have streaming support or the best error recovery setup. The goal is to take inspiration from the GraphiQL parser and implement the streaming support in the reference parser so that it can be used by IDEs and other development tools.</p><p>I spent the community bonding period getting to know both the people in the graphql community and getting myself familiar with the projects. I explored the code base and solved few minor bugs with the help of Ivan. The graphql.js reference parser which is well maintained has a really good code quality and readability which helped me gain it's understanding really quickly, on the other hand the GraphiQL parser with just 1000 lines of pure “old is gold” code base, implemented 3 years ago, looks difficult to grasp at first but with proper understanding is a very simple and cute state machine.</p><p>Ivan and I also spent the time ideating about dividing the whole project into 3 milestones and breaking those into smaller goals. As the graphiql parser is not actively maintained and has zero test coverage it was really important to have the parser fully covered before we make any changes. Our goal was to enable the graphql.js parser be able to used by the IDEs and performance is a major factor we need to care about for that. Considering it, we also decided to do benchmarking of the GraphiQL parser. Ergo the first milestones includes reaching 100% test coverage for the GraphiQL parser and thorough benchmarking.</p><p>The next steps will be to use the graphql.js reference parser’s lexer in the GraphiQL parser and construct a plan to merge the parsers. Once the graphql.js parser reaches the capabilities as that of the GraphiQL parser, we can migrate the GraphiQL IDE to use graphql.js parser. Near to the completion of the first milestone I am really happy with the new thing I have learned under the mentorship of Ivan and really excited to work on the upcoming tasks.</p><blockquote>
<p>– <strong>Naman Kumar</strong>, GSOC 2020, Graphql Foundation</p>
</blockquote>]]></description>
      <link>http://graphql.org/blog/2020-06-30-gsoc-2020-participant-naman</link>
      <guid>http://graphql.org/blog/2020-06-30-gsoc-2020-participant-naman</guid>
      <pubDate>Tue, 30 Jun 2020 02:00:00 +0200</pubDate>
    </item>
    <item>
      <title><![CDATA[Google Summer of Code 2020 Participant: Naman]]></title>
      <description><![CDATA[<p><time datetime="2020-06-30T00:00:00.000Z">June 30, 2020</time> by Naman Kumar</p><p><a class="transition-colors py-1 px-2.5 capitalize rounded bg-zinc-200 dark:bg-zinc-700 font-bold hover:!no-underline hover:!bg-primary hover:text-white dark:hover:text-zinc-900" href="https://graphql.org/tags/announcements/">announcements</a></p>
<p class="_mt-6 _leading-7 first:_mt-0"><img alt="GSOC 2020" width="1608" height="176" data-nimg="1" class="c2" src="https://graphql.org/_next/static/media/gsoc.1f206d32.svg" /></p>
<blockquote class="_mt-6 _border-gray-300 _italic _text-gray-700 dark:_border-gray-700 dark:_text-gray-400 first:_mt-0 ltr:_border-l-2 ltr:_pl-6 rtl:_border-r-2 rtl:_pr-6">
<p class="_mt-6 _leading-7 first:_mt-0"><a href="https://naman.sh" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Naman Kumar</a> is a Computer Science &amp; Engineering student from New Delhi, India and a FullStack Engineer at <a href="https://producthunt.com" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">ProductHunt</a>. He is selected for Google Summer of Code 2020 - GraphQL Foundation under the mentorship of <a href="https://github.com/IvanGoncharov" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Ivan Goncharov</a>. In this post he will share his plans on how he is going to spend his summer contributing to the Graphql Foundation.</p>
</blockquote>
<p class="_mt-6 _leading-7 first:_mt-0">Hi, GraphQL is a technology I use everyday at my work place and other projects building platforms with 200 to 2 million users. I am surely in love with it, acknowledging how much it improves the development speed and removes the overhead of documentation for starters.</p>
<p class="_mt-6 _leading-7 first:_mt-0">I have huge respect for Open Source organisations and really inspired by the work the whole graphql community is doing to make lives of developers easier. I have always wanted to participating in GSOC, which I assure you is a dream of every student.</p>
<p class="_mt-6 _leading-7 first:_mt-0">I got to know about the acceptance of Graphql Foundation under GSOC from Ivan’s <a href="https://www.youtube.com/watch?v=PsXxL1oJLrc&amp;list=PLTRTpHrUcSB9jtvOwnq1yVwZl5k2DdBb2&amp;index=24&amp;t=0s" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">talk</a> at GraphQL Asia Submit 2020. I was really excited about having a chance to contribute to the tools which are used not only by me but are powering applications used by billions of people on the planet.</p>
<p class="_mt-6 _leading-7 first:_mt-0">Having a keen interest in compiler design, the project idea of working on the <a href="https://github.com/graphql/graphql-js/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">graphql.js</a> reference parser looked really interesting to me. Fortunately being selected for the program, I am going to spend the summer of 2020 working on Graphql.js reference parser and <a href="https://github.com/graphql/graphiql/tree/main/packages/graphql-language-service-parser" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphiQL parser</a>, to merge the two together. Graphql.js reference parser do not have streaming support or the best error recovery setup. The goal is to take inspiration from the GraphiQL parser and implement the streaming support in the reference parser so that it can be used by IDEs and other development tools.</p>
<p class="_mt-6 _leading-7 first:_mt-0">I spent the community bonding period getting to know both the people in the graphql community and getting myself familiar with the projects. I explored the code base and solved few minor bugs with the help of Ivan. The graphql.js reference parser which is well maintained has a really good code quality and readability which helped me gain it’s understanding really quickly, on the other hand the GraphiQL parser with just 1000 lines of pure “old is gold” code base, implemented 3 years ago, looks difficult to grasp at first but with proper understanding is a very simple and cute state machine.</p>
<p class="_mt-6 _leading-7 first:_mt-0">Ivan and I also spent the time ideating about dividing the whole project into 3 milestones and breaking those into smaller goals. As the graphiql parser is not actively maintained and has zero test coverage it was really important to have the parser fully covered before we make any changes. Our goal was to enable the graphql.js parser be able to used by the IDEs and performance is a major factor we need to care about for that. Considering it, we also decided to do benchmarking of the GraphiQL parser. Ergo the first milestones includes reaching 100% test coverage for the GraphiQL parser and thorough benchmarking.</p>
<p class="_mt-6 _leading-7 first:_mt-0">The next steps will be to use the graphql.js reference parser’s lexer in the GraphiQL parser and construct a plan to merge the parsers. Once the graphql.js parser reaches the capabilities as that of the GraphiQL parser, we can migrate the GraphiQL IDE to use graphql.js parser. Near to the completion of the first milestone I am really happy with the new thing I have learned under the mentorship of Ivan and really excited to work on the upcoming tasks.</p>
<blockquote class="_mt-6 _border-gray-300 _italic _text-gray-700 dark:_border-gray-700 dark:_text-gray-400 first:_mt-0 ltr:_border-l-2 ltr:_pl-6 rtl:_border-r-2 rtl:_pr-6">
<p class="_mt-6 _leading-7 first:_mt-0">– <strong>Naman Kumar</strong>, GSOC 2020, GraphQL Foundation</p>
</blockquote>]]></description>
      <link>https://graphql.org/blog/2020-06-30-gsoc-2020-naman</link>
      <guid>https://graphql.org/blog/2020-06-30-gsoc-2020-naman</guid>
      <pubDate>Tue, 30 Jun 2020 02:00:00 +0200</pubDate>
    </item>
    <item>
      <title><![CDATA[GraphQL joins Google Season of Docs]]></title>
      <description><![CDATA[<p>6/13/2020 by Obinna Ekwuno</p><hr /><div><p>Open source communities are one of the best ways to collaborate with a larger scale of developers, it incorporates the best part of learning, mentorship, and collaboration on a large scale. <strong>Open-source</strong> software has been proven to create large effective ecosystems of users that improve quality. It has been known for many years that the more a piece of software is used, the quicker bugs <strong>will</strong> be identified. In the <strong>open-source</strong> community when a bug is found, users contribute fixes. <strong>GraphQL</strong> is an <strong>open</strong>-<strong>source</strong> data query and manipulation language for APIs, and a runtime for fulfilling queries with existing data. <strong>GraphQL</strong> was developed internally by Facebook in 2012 before being publicly released in 2015.</p><p>The Google Season of Docs is the intersection of technical writing, open-source contribution, and mentorship. In this three month program, you will be working closely with maintainers of open source projects to improve on existing documentation and processes to better the community.</p><p>For technical writers who are new to open source, the program provides an opportunity to gain experience in contributing to open source projects.</p><p>For technical writers who're already working in open source, the program provides a potentially new way of working together. Season of Docs also gives open source projects an opportunity to engage more of the technical writing community.</p><h2><strong>How can I be a part of this?</strong><a class="hash-link" href="http://graphql.org#how-can-i-be-a-part-of-this">#</a></h2><p>Open source organizations apply to be mentor organizations in the Season of Docs which includes a list of documentation project ideas with their applications. Technical writers can look through the list of proposals here are the <a href="https://github.com/graphql/foundation/tree/master/mentorship/2020/gsod" target="_blank" rel="nofollow noopener noreferrer">project ideas for the GraphQL organization</a>. When you have selected a project you would like to work on, write up a project proposal and submit it to <a href="https://developers.google.com/season-of-docs" target="_blank" rel="nofollow noopener noreferrer">Season of Docs</a>. You may continue to refine your proposals until July 9th. If you need clarifications, please contact Ivan Goncharov and Uri Goldshtein by sending a message to <a href="mailto:mentorship@lists.foundation.graphql.org" target="_blank" rel="nofollow noopener noreferrer">mentorship@lists.foundation.graphql.org</a>.</p><p>The GraphQL organization will reach out to you after they have evaluated the proposals. The accepted technical writers spend a few months working with mentors from the open-source organizations to complete their projects. At the end of the program, the Google program administrators announce the projects that finished successfully. Check out the <a href="https://developers.google.com/season-of-docs/docs/tech-writer-guide" target="_blank" rel="nofollow noopener noreferrer">official technical writer guide.</a></p><h2><strong>How long is this program?</strong><a class="hash-link" href="http://graphql.org#how-long-is-this-program">#</a></h2><p>The technical writing applications started on June 9th, 2020 and will last till July 9th, 2020. The selection process for the proposals submitted to organizations lasts till July 31st, 2020. Then Doc development officially begins September 14th, 2020, and ends December 5th, 2020. For a more detailed timeline check out the <a href="https://developers.google.com/season-of-docs/docs/timeline" target="_blank" rel="nofollow noopener noreferrer">official season of docs timeline</a>.</p><p><em>– <strong>Obinna Ekwuno</strong>, Software Engineer, DevRel GatsbyJS</em></p></div>]]></description>
      <link>http://graphql.org/blog/2020-06-13-graphql-joins-google-season-of-docs</link>
      <guid>http://graphql.org/blog/2020-06-13-graphql-joins-google-season-of-docs</guid>
      <pubDate>Sat, 13 Jun 2020 02:00:00 +0200</pubDate>
    </item>
    <item>
      <title><![CDATA[GraphQL joins Google Season of Docs]]></title>
      <description><![CDATA[<p><time datetime="2020-06-13T00:00:00.000Z">June 13, 2020</time> by Obinna Ekwuno</p><p><a class="transition-colors py-1 px-2.5 capitalize rounded bg-zinc-200 dark:bg-zinc-700 font-bold hover:!no-underline hover:!bg-primary hover:text-white dark:hover:text-zinc-900" href="https://graphql.org/tags/announcements/">announcements</a></p>
<p class="_mt-6 _leading-7 first:_mt-0">Open source communities are one of the best ways to collaborate with a larger scale of developers, it incorporates the best part of learning, mentorship, and collaboration on a large scale. <strong>Open-source</strong> software has been proven to create large effective ecosystems of users that improve quality. It has been known for many years that the more a piece of software is used, the quicker bugs <strong>will</strong> be identified. In the <strong>open-source</strong> community when a bug is found, users contribute fixes. <strong>GraphQL</strong> is an <strong>open</strong>-<strong>source</strong> data query and manipulation language for APIs, and a runtime for fulfilling queries with existing data. <strong>GraphQL</strong> was developed internally by Facebook in 2012 before being publicly released in 2015.</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">What is Google Season of Docs?</h2>
<p class="_mt-6 _leading-7 first:_mt-0">The Google Season of Docs is the intersection of technical writing, open-source contribution, and mentorship. In this three month program, you will be working closely with maintainers of open source projects to improve on existing documentation and processes to better the community.</p>
<p class="_mt-6 _leading-7 first:_mt-0">For technical writers who are new to open source, the program provides an opportunity to gain experience in contributing to open source projects.</p>
<p class="_mt-6 _leading-7 first:_mt-0">For technical writers who’re already working in open source, the program provides a potentially new way of working together. Season of Docs also gives open source projects an opportunity to engage more of the technical writing community.</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">How can I be a part of this?</h2>
<p class="_mt-6 _leading-7 first:_mt-0">Open source organizations apply to be mentor organizations in the Season of Docs which includes a list of documentation project ideas with their applications. Technical writers can look through the list of proposals here are the <a href="https://github.com/graphql/foundation/tree/master/mentorship/2020/gsod" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">project ideas for the GraphQL organization</a>. When you have selected a project you would like to work on, write up a project proposal and submit it to <a href="https://developers.google.com/season-of-docs" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Season of Docs</a>. You may continue to refine your proposals until July 9th. If you need clarifications, please contact Ivan Goncharov and Uri Goldshtein by sending a message to <a class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]" href="mailto:mentorship@lists.foundation.graphql.org">mentorship@lists.foundation.graphql.org</a>.</p>
<p class="_mt-6 _leading-7 first:_mt-0">The GraphQL organization will reach out to you after they have evaluated the proposals. The accepted technical writers spend a few months working with mentors from the open-source organizations to complete their projects. At the end of the program, the Google program administrators announce the projects that finished successfully. Check out the <a href="https://developers.google.com/season-of-docs/docs/tech-writer-guide" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">official technical writer guide.</a></p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">How long is this program?</h2>
<p class="_mt-6 _leading-7 first:_mt-0">The technical writing applications started on June 9th, 2020 and will last till July 9th, 2020. The selection process for the proposals submitted to organizations lasts till July 31st, 2020. Then Doc development officially begins September 14th, 2020, and ends December 5th, 2020. For a more detailed timeline check out the <a href="https://developers.google.com/season-of-docs/docs/timeline" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">official season of docs timeline</a>.</p>
<p class="_mt-6 _leading-7 first:_mt-0"><em>– <strong>Obinna Ekwuno</strong>, Software Engineer, DevRel GatsbyJS</em></p>]]></description>
      <link>https://graphql.org/blog/2020-06-13-season-of-docs</link>
      <guid>https://graphql.org/blog/2020-06-13-season-of-docs</guid>
      <pubDate>Sat, 13 Jun 2020 02:00:00 +0200</pubDate>
    </item>
    <item>
      <title><![CDATA[Web-based GraphQL IDEs for the win: How & Why Playground & GraphiQL are joining forces]]></title>
      <description><![CDATA[<p><img src="http://graphql.org/img/news/playground-transition-banner.png" alt="Banner showing the Prisma and GraphQL Foundation logos with a :handshake: emoji between them" /></p><h2>GraphiQL's beginnings<a class="hash-link" href="http://graphql.org#graphiql-s-beginnings">#</a></h2><p>The initial public commit to GraphiQL was in 2014.</p><p>When <a href="https://github.com/leebyron" target="_blank" rel="nofollow noopener noreferrer">Lee Byron</a>, <a href="https://github.com/asiandrummer" target="_blank" rel="nofollow noopener noreferrer">Hyo Jeong</a> and <a href="https://github.com/AGS-" target="_blank" rel="nofollow noopener noreferrer">Angel Gomez</a> first published it, the intention was to create a minimal reference IDE development ecosystem for GraphQL. <a href="https://github.com/wincent" target="_blank" rel="nofollow noopener noreferrer">Greg Hurrell</a> created the streaming <code>graphql-language-service-parser</code>, designed to empower the <code>codemirror-graphql</code> mode.</p><p>The goal was to give people the utility packages they needed to build their own web based or desktop IDE tool, and at its core, a relatively simple tool for folks to start learning and applying the language, and for exploring schemas. At the time, LSP was not yet a commonly accepted standard, and VSCode had yet to become the incredibly popular development tool it is today.</p><p>Last year, these original engineers handed over to the graphql foundation three repositories: GraphiQL, <code>codemirror-graphql</code> and the <code>graphql-language-service</code> packages.</p><p>Fast forward to now, and GraphiQL is now used by GraphQL implementations in dozens of languages, as well as hundreds of frameworks and runtimes. It's used for everything from HTTP operations, to querying local schemas, data science tools, and even for data transmission for IOT platforms. You'll find it in the AWS dashboard, GitHub developer tools, and many more places we are honored to see this library used.</p><h2>Enter Playground<a class="hash-link" href="http://graphql.org#enter-playground">#</a></h2><p>Alongside GraphiQL, many of us are familiar with its sibling - the handsome &amp; feature-full <a href="https://github.com/prisma-labs/graphql-playground" target="_blank" rel="nofollow noopener noreferrer">GraphQL Playground</a>. Following GraphiQL's lead, it uses our <code>codemirror-graphql</code> (<a href="https://insomnia.rest/graphql/" target="_blank" rel="nofollow noopener noreferrer">Insomnia</a>, <a href="https://altair.sirmuel.design/" target="_blank" rel="nofollow noopener noreferrer">Altair</a> and many others are also in this club!). This is why there are so many similarities between the direct editing experience of these tools.</p><p>Playground is <em>exactly</em> what we wanted to happen. It helped drive the development of our language ecosystem, and gave users an easier option than the more customization-oriented GraphiQL. It provided a ton of excellent features - <code>graphql-config</code> support, multiple tabs, i18n, and http server middlewares.</p><h2>Prisma Donates Playground to GraphQL Foundation<a class="hash-link" href="http://graphql.org#prisma-donates-playground-to-graphql-foundation">#</a></h2><p>As many have successfully guessed, <strong>Prisma <em>is</em> donating Playground to the GraphQL Foundation.</strong> Entering 2019 Prisma envisioned an eventual Playground 2.0 but then the advent of a modular GraphiQL 2 project showed an opportunity for great synergy, made all the more natural by Prisma's pivot toward modular database tooling for developers.</p><p>Playground 1.x has been a community effort of <a href="https://github.com/prisma-labs/graphql-playground/graphs/contributors" target="_blank" rel="nofollow noopener noreferrer">dozens of contributors</a>. Prisma thanks all contributors who helped out along the way. Prisma remains deeply committed to supporting the future of the GraphQL language. For example the <a href="https://github.com/prisma-labs" target="_blank" rel="nofollow noopener noreferrer">Prisma Labs team</a> continues to focus on GraphQL API layer and <a href="https://github.com/prisma-labs/nexus/issues/373" target="_blank" rel="nofollow noopener noreferrer">recently announced</a> the transition of <a href="https://nexus.js.org/" target="_blank" rel="nofollow noopener noreferrer">Nexus</a> from a schema building library into a full <a href="https://www.nexusjs.org" target="_blank" rel="nofollow noopener noreferrer">fledged GraphQL API framework</a>.</p><h2>The Playground Features you love<a class="hash-link" href="http://graphql.org#the-playground-features-you-love">#</a></h2><p>In the interest of parity, we will keep a lot of the same features, whether by introducing them to the core or proving plugins that will ship with the playground preset.</p><ul><li>multiple tabs (GraphiQL Core)</li>
<li>headers tab per operation tab (plugin)</li>
<li>tracing tab (plugin)</li>
<li>playground doc explorer (plugin)</li>
<li>internationalization (GraphiQL Core)</li>
<li><code>graphql-config</code> support, with new features thanks to our fantastic colleagues at the <a href="https://github.com/orgs/the-guild-org/people" target="_blank" rel="nofollow noopener noreferrer">Guild Dev</a>, who Prisma has entrusted with many other projects.</li>
<li>easy to use middlewares</li>
</ul><h2>New Features<a class="hash-link" href="http://graphql.org#new-features">#</a></h2><p>These new features will come with the new <code>graphql@2.0.0</code>:</p><ul><li>vscode style command palette (via <code>monaco-editor</code>)</li>
<li>jump to fragment or other type definitions</li>
<li>generate a collection of operations from your project's source files</li>
<li>more customizable network options - default headers per project, as well as headers per-operation</li>
<li>helpers for integrating custom authentication flows</li>
<li>extensive theme, layout, and component customization abilities (you can start with the playground theme preset and work from there!)</li>
<li>custom tabs and panels</li>
<li>a first-class <code>graphiql-explorer</code> plugin in partnership with the original creators, our colleagues at <a href="https://www.onegraph.com/" target="_blank" rel="nofollow noopener noreferrer">OneGraph</a></li>
</ul><h2>How will it be re-implemented?<a class="hash-link" href="http://graphql.org#how-will-it-be-re-implemented">#</a></h2><p>Playground 2.0 will be a GraphiQL preset that includes the custom theme as well as the custom playground doc explorer plugin (as an alternative to the new doc explorer proposed by @orta and other users), HTTP headers and tracing tab plugins. You can find more technical detail, ongoing discussion and things to work on the <a href="https://github.com/graphql/graphiql/issues/983" target="_blank" rel="nofollow noopener noreferrer">GraphiQL Plugin API Meta Issue</a> or in <a href="https://github.com/graphql/graphiql/issues?q=label%3Agraphql-playground-preset" target="_blank" rel="nofollow noopener noreferrer">other playground related discussion issues</a> in the GraphiQL monorepo.</p><p>While the Playground team's baseline goal will be relative parity with Playground 1.0, the team will be accepting proposals for new features and plugins that build on the existing GraphQL Playground experience. The <a href="https://github.com/graphql/graphiql/projects/10" target="_blank" rel="nofollow noopener noreferrer">Features Roundup</a> project is a great place to see what we have planned already for plugins that Playground's preset can use, or you can also create a proposal if you don't see what you're looking for.</p><h2><code>graphql-playground</code> repository next steps<a class="hash-link" href="http://graphql.org#graphql-playground-repository-next-steps">#</a></h2><p>The existing <code>graphql-playground</code> repository will get one or two more maintenance/bugfix releases before it will be archived. You can still fork it of course. You can learn more about this in <a href="https://github.com/prisma-labs/graphql-playground/issues/1143" target="_blank" rel="nofollow noopener noreferrer">the graphql-playground issue</a> we created for this migration.</p><h2>Call for Contributors<a class="hash-link" href="http://graphql.org#call-for-contributors">#</a></h2><p>We're also looking for contributors to form a team to develop, support and maintain a playground preset. The goal would be for them to help iterate on and stabilize the plugin API effort, as well as work towards the effort of contributing to and maintaining the playground preset and its associated plugins. If you are interested leave comment in the <a href="https://github.com/graphql/graphiql/issues/1443" target="_blank" rel="nofollow noopener noreferrer">Call for Contributors Github issue</a>.</p><p>You can also follow the <a href="https://github.com/graphql/graphiql/issues/983" target="_blank" rel="nofollow noopener noreferrer">Plugin API Proposal discussion issue</a> for updates, and get involved in our <a href="https://discord.gg/EXUYPaY" target="_blank" rel="nofollow noopener noreferrer">discord channel</a> we've created just for the playground initiative.</p>]]></description>
      <link>http://graphql.org/blog/2020-04-03-web-based-graphql-ides-for-the-win</link>
      <guid>http://graphql.org/blog/2020-04-03-web-based-graphql-ides-for-the-win</guid>
      <pubDate>Fri, 03 Apr 2020 02:00:00 +0200</pubDate>
    </item>
    <item>
      <title><![CDATA[Web-based GraphQL IDEs for the win: How & Why Playground & GraphiQL are joining forces]]></title>
      <description><![CDATA[<p><time datetime="2020-04-03T00:00:00.000Z">April 3, 2020</time> by Rikki Schulte, Jason Kuhrt</p><p><a class="transition-colors py-1 px-2.5 capitalize rounded bg-zinc-200 dark:bg-zinc-700 font-bold hover:!no-underline hover:!bg-primary hover:text-white dark:hover:text-zinc-900" href="https://graphql.org/tags/announcements/">announcements</a></p>
<p class="_mt-6 _leading-7 first:_mt-0"><img alt="Banner showing the Prisma and GraphQL Foundation logos with a :handshake: emoji between them" width="1600" height="500" data-nimg="1" class="c2" srcset="/nextImageExportOptimizer/playground-transition-banner.2458871d-opt-1920.WEBP 1x, /nextImageExportOptimizer/playground-transition-banner.2458871d-opt-1920.WEBP 2x" src="https://graphql.org/nextImageExportOptimizer/playground-transition-banner.2458871d-opt-1920.WEBP" /></p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">GraphiQL’s beginnings</h2>
<p class="_mt-6 _leading-7 first:_mt-0">The initial public commit to GraphiQL was in 2014.</p>
<p class="_mt-6 _leading-7 first:_mt-0">When <a href="https://github.com/leebyron" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Lee Byron</a>, <a href="https://github.com/asiandrummer" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Hyo Jeong</a> and <a href="https://github.com/AGS-" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Angel Gomez</a> first published it, the intention was to create a minimal reference IDE development ecosystem for GraphQL. <a href="https://github.com/wincent" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Greg Hurrell</a> created the streaming , designed to empower the  mode.</p>
<p class="_mt-6 _leading-7 first:_mt-0">The goal was to give people the utility packages they needed to build their own web based or desktop IDE tool, and at its core, a relatively simple tool for folks to start learning and applying the language, and for exploring schemas. At the time, LSP was not yet a commonly accepted standard, and VSCode had yet to become the incredibly popular development tool it is today.</p>
<p class="_mt-6 _leading-7 first:_mt-0">Last year, these original engineers handed over to the graphql foundation three repositories: GraphiQL,  and the  packages.</p>
<p class="_mt-6 _leading-7 first:_mt-0">Fast forward to now, and GraphiQL is now used by GraphQL implementations in dozens of languages, as well as hundreds of frameworks and runtimes. It’s used for everything from HTTP operations, to querying local schemas, data science tools, and even for data transmission for IOT platforms. You’ll find it in the AWS dashboard, GitHub developer tools, and many more places we are honored to see this library used.</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Enter Playground</h2>
<p class="_mt-6 _leading-7 first:_mt-0">Alongside GraphiQL, many of us are familiar with its sibling - the handsome &amp; feature-full <a href="https://github.com/prisma-labs/graphql-playground" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphQL Playground</a>. Following GraphiQL’s lead, it uses our  (<a href="https://insomnia.rest/graphql/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Insomnia</a>, <a href="https://altair.sirmuel.design/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Altair</a> and many others are also in this club!). This is why there are so many similarities between the direct editing experience of these tools.</p>
<p class="_mt-6 _leading-7 first:_mt-0">Playground is <em>exactly</em> what we wanted to happen. It helped drive the development of our language ecosystem, and gave users an easier option than the more customization-oriented GraphiQL. It provided a ton of excellent features -  support, multiple tabs, i18n, and http server middlewares.</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Prisma Donates Playground to GraphQL Foundation</h2>
<p class="_mt-6 _leading-7 first:_mt-0">As many have successfully guessed, <strong>Prisma <em>is</em> donating Playground to the GraphQL Foundation.</strong> Entering 2019 Prisma envisioned an eventual Playground 2.0 but then the advent of a modular GraphiQL 2 project showed an opportunity for great synergy, made all the more natural by Prisma’s pivot toward modular database tooling for developers.</p>
<p class="_mt-6 _leading-7 first:_mt-0">Playground 1.x has been a community effort of <a href="https://github.com/prisma-labs/graphql-playground/graphs/contributors" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">dozens of contributors</a>. Prisma thanks all contributors who helped out along the way. Prisma remains deeply committed to supporting the future of the GraphQL language. For example the <a href="https://github.com/prisma-labs" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Prisma Labs team</a> continues to focus on GraphQL API layer and <a href="https://github.com/prisma-labs/nexus/issues/373" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">recently announced</a> the transition of <a href="https://nexus.js.org/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Nexus</a> from a schema building library into a full <a href="https://www.nexusjs.org" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">fledged GraphQL API framework</a>.</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">The Playground Features you love</h2>
<p class="_mt-6 _leading-7 first:_mt-0">In the interest of parity, we will keep a lot of the same features, whether by introducing them to the core or proving plugins that will ship with the playground preset.</p>
<ul class="_mt-6 _list-disc first:_mt-0 ltr:_ml-6 rtl:_mr-6"><li class="_my-2">multiple tabs (GraphiQL Core)</li>
<li class="_my-2">headers tab per operation tab (plugin)</li>
<li class="_my-2">tracing tab (plugin)</li>
<li class="_my-2">playground doc explorer (plugin)</li>
<li class="_my-2">internationalization (GraphiQL Core)</li>
<li class="_my-2"> support, with new features thanks to our fantastic colleagues at the <a href="https://github.com/orgs/the-guild-org/people" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Guild Dev</a>, who Prisma has entrusted with many other projects.</li>
<li class="_my-2">easy to use middlewares</li>
</ul><h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">New Features</h2>
<p class="_mt-6 _leading-7 first:_mt-0">These new features will come with the new :</p>
<ul class="_mt-6 _list-disc first:_mt-0 ltr:_ml-6 rtl:_mr-6"><li class="_my-2">vscode style command palette (via )</li>
<li class="_my-2">jump to fragment or other type definitions</li>
<li class="_my-2">generate a collection of operations from your project’s source files</li>
<li class="_my-2">more customizable network options - default headers per project, as well as headers per-operation</li>
<li class="_my-2">helpers for integrating custom authentication flows</li>
<li class="_my-2">extensive theme, layout, and component customization abilities (you can start with the playground theme preset and work from there!)</li>
<li class="_my-2">custom tabs and panels</li>
<li class="_my-2">a first-class  plugin in partnership with the original creators, our colleagues at <a href="https://www.onegraph.com/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">OneGraph</a></li>
</ul><h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">How will it be re-implemented?</h2>
<p class="_mt-6 _leading-7 first:_mt-0">Playground 2.0 will be a GraphiQL preset that includes the custom theme as well as the custom playground doc explorer plugin (as an alternative to the new doc explorer proposed by @orta and other users), HTTP headers and tracing tab plugins. You can find more technical detail, ongoing discussion and things to work on the <a href="https://github.com/graphql/graphiql/issues/983" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphiQL Plugin API Meta Issue</a> or in <a href="https://github.com/graphql/graphiql/issues?q=label%3Agraphql-playground-preset" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">other playground related discussion issues</a> in the GraphiQL monorepo.</p>
<p class="_mt-6 _leading-7 first:_mt-0">While the Playground team’s baseline goal will be relative parity with Playground 1.0, the team will be accepting proposals for new features and plugins that build on the existing GraphQL Playground experience. The <a href="https://github.com/graphql/graphiql/projects/10" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Features Roundup</a> project is a great place to see what we have planned already for plugins that Playground’s preset can use, or you can also create a proposal if you don’t see what you’re looking for.</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400"> repository next steps</h2>
<p class="_mt-6 _leading-7 first:_mt-0">The existing  repository will get one or two more maintenance/bugfix releases before it will be archived. You can still fork it of course. You can learn more about this in <a href="https://github.com/prisma-labs/graphql-playground/issues/1143" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">the graphql-playground issue</a> we created for this migration.</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Call for Contributors</h2>
<p class="_mt-6 _leading-7 first:_mt-0">We’re also looking for contributors to form a team to develop, support and maintain a playground preset. The goal would be for them to help iterate on and stabilize the plugin API effort, as well as work towards the effort of contributing to and maintaining the playground preset and its associated plugins. If you are interested leave comment in the <a href="https://github.com/graphql/graphiql/issues/1443" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Call for Contributors Github issue</a>.</p>
<p class="_mt-6 _leading-7 first:_mt-0">You can also follow the <a href="https://github.com/graphql/graphiql/issues/983" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Plugin API Proposal discussion issue</a> for updates, and get involved in our <a href="https://discord.gg/EXUYPaY" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">discord channel</a> we’ve created just for the playground initiative.</p>]]></description>
      <link>https://graphql.org/blog/2020-04-03-graphiql-graphql-playground</link>
      <guid>https://graphql.org/blog/2020-04-03-graphiql-graphql-playground</guid>
      <pubDate>Fri, 03 Apr 2020 02:00:00 +0200</pubDate>
    </item>
    <item>
      <title><![CDATA[Announcing the 1st GraphQL Foundation Annual Report]]></title>
      <description><![CDATA[<p>The GraphQL Foundation recently turned 1 year old and is happy to announce its <a href="http://graphql.org/foundation/annual-reports/2019/">first annual report</a>!</p><p>The annual report details the accomplishments of the organization in its first year, along with a forward looking statement for 2020 and beyond from Lee Byron, the GraphQL Foundation Executive Director:</p><div><p>As the Executive Director of the GraphQL project, I hope I can speak for the whole community when I say we are looking forward to another productive year of GraphQL development. We are putting the final touches on the GraphQL 2020 spec release, and continue to make great progress developing new features, stabilizing existing ones, and exploring beyond core GraphQL.</p>
<p>It has been really encouraging to see GraphQL continue to evolve over the past year as a technology and as a community. GraphQL is being used at scale by not only Facebook but now a great number of organizations large and small. As I said when first introducing the project, GraphQL is unapologetically driven by the needs of the client. This has been a critical aspect of GraphQL's success and it is great to see this principle reflect itself in our community, where those more interested in consuming APIs than producing them have come together to support the ongoing sustainability of the project.</p>
<p>Since establishing the GraphQL Foundation, we've had an outpouring of support from these companies. This neutral, non-profit home for the GraphQL project has provided a healthy way for users, contributors, and supporters to collaborate and contribute funding in support of our programs and collaborative processes. For example, this support has enabled us to support long-time contributor Ivan Goncharov to focus on crucial development and maintenance of the reference implementation, specification and other community gardening work. It has also allowed us to launch a <a href="https://www.edx.org/course/exploring-graphql-a-query-language-for-apis" target="_blank" rel="nofollow noopener noreferrer">free GraphQL edX course</a>, and has enabled us to take some first steps toward supporting and producing community events.</p>
<p>Development of the GraphQL spec has remained open to all contributors. Over the last year we've brought more rigor and clarity to the development process. I've found it encouraging that contributions have been a healthy mix of aspirational new features and iterative improvements to the stable base. This demonstrates that GraphQL is evolving in meaningful ways to address exciting new use cases while also building confidence and stability around what thousands of companies use in production every day. Both of these are essential for GraphQL's long term success.</p>
<p>Looking ahead, I have great optimism for GraphQL and see huge opportunities. First, we've been hard at work on the 2020 spec and that release is imminent. Spec development continues to accelerate and exciting advancements and improvements are underway for the 2021 release and beyond. Second, we have been accepted to participate in Google Summer of Code and are looking forward to adding these talented students as project collaborators. Third, the communities around the core GraphQL project are collaborating. For example, GraphiQL and Playground recently announced they will be joining efforts to build better tools for us all.</p>
<p>Thank you again for your involvement in this project and your support of the GraphQL Foundation. I am pleased with our progress and am looking forward to another productive year.</p>
<p><em>– <strong>Lee Byron</strong>, Executive Director, GraphQL Foundation, and GraphQL Co-Creator</em></p></div>]]></description>
      <link>http://graphql.org/blog/2020-04-02-announcing-the-first-graphql-foundation-annual-report</link>
      <guid>http://graphql.org/blog/2020-04-02-announcing-the-first-graphql-foundation-annual-report</guid>
      <pubDate>Thu, 02 Apr 2020 02:00:00 +0200</pubDate>
    </item>
    <item>
      <title><![CDATA[Announcing the 1st GraphQL Foundation Annual Report]]></title>
      <description><![CDATA[<p class="_mt-6 _leading-7 first:_mt-0">The GraphQL Foundation recently turned 1 year old and is happy to announce its <a class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]" href="https://graphql.org/foundation/annual-reports/2019/">first annual report</a>!</p><p class="_mt-6 _leading-7 first:_mt-0">The annual report details the accomplishments of the organization in its first year, along with a forward looking statement for 2020 and beyond from Lee Byron, the GraphQL Foundation Executive Director:</p><div><p class="_mt-6 _leading-7 first:_mt-0">As the Executive Director of the GraphQL project, I hope I can speak for the whole community when I say we are looking forward to another productive year of GraphQL development. We are putting the final touches on the GraphQL 2020 spec release, and continue to make great progress developing new features, stabilizing existing ones, and exploring beyond core GraphQL.</p>
<p class="_mt-6 _leading-7 first:_mt-0">It has been really encouraging to see GraphQL continue to evolve over the past year as a technology and as a community. GraphQL is being used at scale by not only Facebook but now a great number of organizations large and small. As I said when first introducing the project, GraphQL is unapologetically driven by the needs of the client. This has been a critical aspect of GraphQL’s success and it is great to see this principle reflect itself in our community, where those more interested in consuming APIs than producing them have come together to support the ongoing sustainability of the project.</p>
<p class="_mt-6 _leading-7 first:_mt-0">Since establishing the GraphQL Foundation, we’ve had an outpouring of support from these companies. This neutral, non-profit home for the GraphQL project has provided a healthy way for users, contributors, and supporters to collaborate and contribute funding in support of our programs and collaborative processes. For example, this support has enabled us to support long-time contributor Ivan Goncharov to focus on crucial development and maintenance of the reference implementation, specification and other community gardening work. It has also allowed us to launch a <a href="https://edx.org/course/exploring-graphql-a-query-language-for-apis" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">free GraphQL edX course</a>, and has enabled us to take some first steps toward supporting and producing community events.</p>
<p class="_mt-6 _leading-7 first:_mt-0">Development of the GraphQL spec has remained open to all contributors. Over the last year we’ve brought more rigor and clarity to the development process. I’ve found it encouraging that contributions have been a healthy mix of aspirational new features and iterative improvements to the stable base. This demonstrates that GraphQL is evolving in meaningful ways to address exciting new use cases while also building confidence and stability around what thousands of companies use in production every day. Both of these are essential for GraphQL’s long term success.</p>
<p class="_mt-6 _leading-7 first:_mt-0">Looking ahead, I have great optimism for GraphQL and see huge opportunities. First, we’ve been hard at work on the 2020 spec and that release is imminent. Spec development continues to accelerate and exciting advancements and improvements are underway for the 2021 release and beyond. Second, we have been accepted to participate in Google Summer of Code and are looking forward to adding these talented students as project collaborators. Third, the communities around the core GraphQL project are collaborating. For example, GraphiQL and Playground recently announced they will be joining efforts to build better tools for us all.</p>
<p class="_mt-6 _leading-7 first:_mt-0">Thank you again for your involvement in this project and your support of the GraphQL Foundation. I am pleased with our progress and am looking forward to another productive year.</p>
<p class="_mt-6 _leading-7 first:_mt-0"><em>– <strong>Lee Byron</strong>, Executive Director, GraphQL Foundation, and GraphQL Co-Creator</em></p></div>]]></description>
      <link>https://graphql.org/blog/2020-04-02-graphql-annual-report-2019</link>
      <guid>https://graphql.org/blog/2020-04-02-graphql-annual-report-2019</guid>
      <pubDate>Thu, 02 Apr 2020 02:00:00 +0200</pubDate>
    </item>
    <item>
      <title><![CDATA[Linux Foundation Training Announces a Free Online Course-Exploring GraphQL: A Query Language for APIs]]></title>
      <description><![CDATA[<p><a href="http://www.linuxfoundation.org/" target="_blank" rel="nofollow noopener noreferrer">The Linux Foundation</a>, the nonprofit organization enabling mass innovation through open source, today announced enrollment is now open for a new, free, course – <a href="https://www.edx.org/course/introduction-to-graphql" target="_blank" rel="nofollow noopener noreferrer">Exploring GraphQL: A Query Language for APIs</a>. This course is offered through <a href="https://www.edx.org/" target="_blank" rel="nofollow noopener noreferrer">edX</a>, the trusted platform for learning.</p><p><a href="https://graphql.org" target="_blank" rel="nofollow noopener noreferrer">GraphQL</a> is revolutionizing the way developers are building APIs for web, mobile and even databases. But what exactly is GraphQL? GraphQL is an open source data query and manipulation language for APIs, and a runtime for fulfilling queries with existing data.</p><p>This course explains what GraphQL is and why it is getting so much attention from software engineers. It covers the advantages over REST, what types of software architectures to use it with, and why it benefits both frontend and backend developers. The student practices GraphQL queries in an interactive playground, and learns advanced topics such as how to implement a GraphQL server on the backend, how to use a GraphQL server with a client, and how to keep the GraphQL server secure. The course content was originally created by <a href="https://prisma.io" target="_blank" rel="nofollow noopener noreferrer">Prisma</a>, and updated and maintained by <a href="https://novvum.io" target="_blank" rel="nofollow noopener noreferrer">Novvum</a>.</p><p>"Since open sourcing GraphQL, I have been blown away by the growth of the technology and community. I'm excited to see the introduction of more educational material which I hope will help our community continue to grow and reach developers world-wide." – <em>Lee Byron, Executive Director, GraphQL Foundation, and GraphQL Co-Creator</em></p><p>This course will help programmers gain the skills needed to use GraphQL for a small project or professionally in production. They will feel comfortable getting started with the right tools for their use case.</p><p>For the nontechnical person, this course will help them improve communication with developers and to participate in conversations about GraphQL. They will understand when and why to use GraphQL for a project.</p><p><a href="https://www.edx.org/course/introduction-to-graphql" target="_blank" rel="nofollow noopener noreferrer">Exploring GraphQL: A Query Language for APIs</a> is available at no cost, with content access for up to 7 weeks. Learners may upgrade to the verified track for $99, which includes all graded assessments, unlimited access to the course content and the ability to earn a Verified Certificate upon passing the course.</p><h3>About The Linux Foundation<a class="hash-link" href="http://graphql.org#about-the-linux-foundation">#</a></h3><p>The Linux Foundation is the organization of choice for the world’s top developers and companies to build ecosystems that accelerate open technology development and industry adoption. Together with the worldwide open source community, it is solving the hardest technology problems by creating the largest shared technology investment in history. Founded in 2000, The Linux Foundation today provides tools, training and events to scale any open source project, which together deliver an economic impact not achievable by any one company. More information can be found at <a href="https://linuxfoundation.org" target="_blank" rel="nofollow noopener noreferrer">www.linuxfoundation.org</a>.</p><p>The Linux Foundation has registered trademarks and uses trademarks. For a list of trademarks of The Linux Foundation, please see our trademark usage page: <a href="https://www.linuxfoundation.org/trademark-usage">https://www.linuxfoundation.org/trademark-usage</a>.</p><p>Linux is a registered trademark of Linus Torvalds.</p><p># # #</p><h3>Media Contact:<a class="hash-link" href="http://graphql.org#media-contact">#</a></h3><p>Clyde Seepersad<br />The Linux Foundation<br />404-964-6973<br />cseepersad@linuxfoundation.org</p>]]></description>
      <link>http://graphql.org/blog/2019-10-31-linux-foundation-training-announces-free-online-course-exploring-graphql</link>
      <guid>http://graphql.org/blog/2019-10-31-linux-foundation-training-announces-free-online-course-exploring-graphql</guid>
      <pubDate>Thu, 31 Oct 2019 01:00:00 +0100</pubDate>
    </item>
    <item>
      <title><![CDATA[Linux Foundation Training Announces a Free Online Course-Exploring GraphQL: A Query Language for APIs]]></title>
      <description><![CDATA[<p><time datetime="2019-10-31T00:00:00.000Z">October 31, 2019</time> by GraphQL Foundation</p><p><a class="transition-colors py-1 px-2.5 capitalize rounded bg-zinc-200 dark:bg-zinc-700 font-bold hover:!no-underline hover:!bg-primary hover:text-white dark:hover:text-zinc-900" href="https://graphql.org/tags/announcements/">announcements</a></p>
<p class="_mt-6 _leading-7 first:_mt-0"><a href="http://www.linuxfoundation.org/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">The Linux Foundation</a>, the nonprofit organization enabling mass innovation through open source, today announced enrollment is now open for a new, free, course – <a href="https://www.edx.org/course/introduction-to-graphql" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Exploring GraphQL: A Query Language for APIs</a>. This course is offered through <a href="https://www.edx.org/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">edX</a>, the trusted platform for learning.</p>
<p class="_mt-6 _leading-7 first:_mt-0"><a href="https://graphql.org" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphQL</a> is revolutionizing the way developers are building APIs for web, mobile and even databases. But what exactly is GraphQL? GraphQL is an open source data query and manipulation language for APIs, and a runtime for fulfilling queries with existing data.</p>
<p class="_mt-6 _leading-7 first:_mt-0">This course explains what GraphQL is and why it is getting so much attention from software engineers. It covers the advantages over REST, what types of software architectures to use it with, and why it benefits both frontend and backend developers. The student practices GraphQL queries in an interactive playground, and learns advanced topics such as how to implement a GraphQL server on the backend, how to use a GraphQL server with a client, and how to keep the GraphQL server secure. The course content was originally created by <a href="https://prisma.io" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Prisma</a>, and updated and maintained by <a href="https://novvum.io" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Novvum</a>.</p>
<p class="_mt-6 _leading-7 first:_mt-0">”Since open sourcing GraphQL, I have been blown away by the growth of the technology and community. I’m excited to see the introduction of more educational material which I hope will help our community continue to grow and reach developers world-wide.” – <em>Lee Byron, Executive Director, GraphQL Foundation, and GraphQL Co-Creator</em></p>
<p class="_mt-6 _leading-7 first:_mt-0">This course will help programmers gain the skills needed to use GraphQL for a small project or professionally in production. They will feel comfortable getting started with the right tools for their use case.</p>
<p class="_mt-6 _leading-7 first:_mt-0">For the nontechnical person, this course will help them improve communication with developers and to participate in conversations about GraphQL. They will understand when and why to use GraphQL for a project.</p>
<p class="_mt-6 _leading-7 first:_mt-0"><a href="https://www.edx.org/course/introduction-to-graphql" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Exploring GraphQL: A Query Language for APIs</a> is available at no cost, with content access for up to 7 weeks. Learners may upgrade to the verified track for $99, which includes all graded assessments, unlimited access to the course content and the ability to earn a Verified Certificate upon passing the course.</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">About The Linux Foundation</h2>
<p class="_mt-6 _leading-7 first:_mt-0">The Linux Foundation is the organization of choice for the world’s top developers and companies to build ecosystems that accelerate open technology development and industry adoption. Together with the worldwide open source community, it is solving the hardest technology problems by creating the largest shared technology investment in history. Founded in 2000, The Linux Foundation today provides tools, training and events to scale any open source project, which together deliver an economic impact not achievable by any one company. More information can be found at <a href="https://linuxfoundation.org" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">https://linuxfoundation.org</a>.</p>
<p class="_mt-6 _leading-7 first:_mt-0">The Linux Foundation has registered trademarks and uses trademarks. For a list of trademarks of The Linux Foundation, please see our trademark usage page: <a href="https://linuxfoundation.org/trademark-usage" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">https://linuxfoundation.org/trademark-usage</a>.</p>
<p class="_mt-6 _leading-7 first:_mt-0">Linux is a registered trademark of Linus Torvalds.</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Media Contact</h2>]]></description>
      <link>https://graphql.org/blog/2019-10-31-linux-foundation-training</link>
      <guid>https://graphql.org/blog/2019-10-31-linux-foundation-training</guid>
      <pubDate>Thu, 31 Oct 2019 01:00:00 +0100</pubDate>
    </item>
    <item>
      <title><![CDATA[GraphQL Foundation Launches Interactive Landscape and Welcomes New Members from Open Source Summit Europe]]></title>
      <description><![CDATA[<p><a href="http://graphql.org/">The GraphQL Foundation</a>, a neutral home for the GraphQL community to accelerate development of the surrounding ecosystem, today announced seven new members to support the Foundation's efforts, along with the launch of the <a href="https://landscape.graphql.org" target="_blank" rel="nofollow noopener noreferrer">GraphQL Landscape</a>.</p><p>The GraphQL Landscape is a dynamically generated tool designed to help explore the burgeoning GraphQL community of projects, adopters and member organizations. Currently, it is comprised of 100+ cards representing a market cap of more than $3.4T.</p><p>"When we first created GraphQL, we set out to make product development easier with APIs driven by the needs of mobile and app developers and dramatic simplifications of how APIs are built and maintained," said Lee Byron, Director of the GraphQL Foundation. "I'm thrilled to see this influx of multi-industry support for GraphQL and a commitment to increase developer productivity, showcased throughout the impressive and growing landscape."</p><p>"I'm thrilled to help launch the GraphQL Foundation's first landscape, displaying GraphQL's vast range of projects, adopters and members," said Chris Aniszczyk, VP of Developer Relations and CTO of CNCF at the Linux Foundation. "This interactive resource has been a labor of love from and for our community, and I look forward to watching it grow into the same standard for real-time ecosystem information that the CNCF Landscape has been for the cloud native space."</p><p>GraphQL is a next­-generation API technology developed internally by Facebook in 2012 before being publicly <a href="https://code.fb.com/core-data/graphql-a-data-query-language/" target="_blank" rel="nofollow noopener noreferrer">open sourced in 2015</a>. Unlike REST-­based APIs, which take advantage of HTTP and existing protocols, GraphQL APIs provide developers with the flexibility to query the exact data they need from a diverse set of cloud data sources, with less code, greater performance and security, and a faster development cycle. Not only does this enable developers to rapidly build top­ quality apps, it also helps them achieve consistency and feature parity across multiple platforms such as web, iOS, Android, and embedded and IoT applications.</p><p>Brian Warner of The Linux Foundation has joined the GraphQL Foundation as its Program Director, helping to support the growing community and the project's ongoing needs. "I look forward to working with Lee and the governing board to establish the infrastructure and support needed to ensure the health and sustainability of the vibrant GraphQL community."</p><p>GraphQL is being used in production by a <a href="https://graphql.org/users/" target="_blank" rel="nofollow noopener noreferrer">variety of high scale companies</a> such as Airbnb, Atlassian, Audi, CNBC, GitHub, Major League Soccer, Netflix, Shopify, The New York Times, Twitter, Pinterest and Yelp. GraphQL also <a href="https://code.fb.com/core-data/graphql-a-data-query-language/" target="_blank" rel="nofollow noopener noreferrer">powers hundreds of billions of API calls a day at Facebook</a>.</p><h2>Member Quotes<a class="hash-link" href="http://graphql.org#member-quotes">#</a></h2><p>"Open source specifications rely on strong collaboration and proper stewardship. 8base loves GraphQL and we joined the GraphQL Foundation to be involved in the specification's future with other leading-edge technology companies. Our hope is that, with our involvement, the surrounding ecosystem continues to flourish at an accelerated pace." - <em>Albert Santalo, CEO &amp; Founder, 8base</em></p><p>"It's truly surreal to see GraphQL grow from its conception to spread throughout the entire technology industry. The Foundation provides the infrastructure to make this a true industry standard, backed by stable, trusted, company-neutral governance." - <em>Nick Schrock, Founder, Elementl</em></p><p>"At Expedia Group, GraphQL is helping us build better experiences for our travelers. As a rapidly adopted technology in software development, we believe an open and community supported GraphQL specification and ecosystem is critical to its continued success." - <em>Trevor Livingston, Principal Architect, Expedia Group (VRBO)</em></p><p>"At Fauna, we have seen first-hand the productivity and architectural benefits GraphQL offers developers. We believe that an open ecosystem and shared specification are a benefit to all. We're excited to contribute to the GraphQL community and collaborate on its continued innovation." - <em>Matt Freels, CTO, Fauna, Inc.</em></p><p>"We are thrilled to be a part of the GraphQL Foundation. We see GraphQL as one of the most important emerging API technologies and strongly believe in its bright future! We're excited to continue investing in the GraphQL ecosystem and community with tools, events and educational content." - <em>Johannes Schickling, CEO, Prisma</em></p><p>"We're deliberate about the technology we build and adopt. That's why we're excited to double-down on our investment in GraphQL as a foundational technology at Shopify. We believe GraphQL provides great tools for our internal teams and app developers to extend our platform and create faster merchant experiences." - <em>Jean-Michel Lemieux, CTO, Shopify</em></p><p>"GraphQL plays a key part in helping us serve the public conversation on Twitter by enabling faster product iteration across our teams. As GraphQL is gaining tremendous adoption as one of the best protocols for remote retrieval of large object graphs, we are very excited to support the GraphQL Foundation." - <em>Anna Sulkina Engineering Director, Core Services Group, Twitter</em></p><h2>About the GraphQL Foundation<a class="hash-link" href="http://graphql.org#about-the-graphql-foundation">#</a></h2><p>The GraphQL Foundation is an open, neutral organization that provides oversight of funding, operations, and marketing resources for the GraphQL community to enable widespread adoption and help accelerate development of the broader ecosystem. The <a href="https://github.com/graphql/graphql-spec" target="_blank" rel="nofollow noopener noreferrer">GraphQL specification</a>, <a href="https://github.com/graphql/graphql-js" target="_blank" rel="nofollow noopener noreferrer">GraphQL.js</a> reference implementation, <a href="https://github.com/graphql/dataloader" target="_blank" rel="nofollow noopener noreferrer">DataLoader</a> library, and <a href="https://github.com/graphql/graphiql" target="_blank" rel="nofollow noopener noreferrer">GraphiQL</a> developer tool are technical projects supported by the GraphQL Foundation. More details can be found at <a href="https://foundation.graphql.org">https://foundation.graphql.org</a>.</p><h2>About The Linux Foundation<a class="hash-link" href="http://graphql.org#about-the-linux-foundation">#</a></h2><p>The Linux Foundation is the organization of choice for the world’s top developers and companies to build ecosystems that accelerate open technology development and industry adoption. Together with the worldwide open source community, it is solving the hardest technology problems by creating the largest shared technology investment in history. Founded in 2000, The Linux Foundation today provides tools, training and events to scale any open source project, which together deliver an economic impact not achievable by any one company. More information can be found at www.linuxfoundation.org.</p><p># # #</p><p><em>The Linux Foundation has registered trademarks and uses trademarks. For a list of trademarks of The Linux Foundation, please see our trademark usage page: <a href="https://www.linuxfoundation.org/trademark-usage">https://www.linuxfoundation.org/trademark-usage</a>. Linux is a registered trademark of Linus Torvalds.</em></p>]]></description>
      <link>http://graphql.org/blog/2019-10-28-graphql-foundation-launches-interactive-landscape-welcomes-new-members</link>
      <guid>http://graphql.org/blog/2019-10-28-graphql-foundation-launches-interactive-landscape-welcomes-new-members</guid>
      <pubDate>Mon, 28 Oct 2019 01:00:00 +0100</pubDate>
    </item>
    <item>
      <title><![CDATA[GraphQL Foundation Launches Interactive Landscape and Welcomes New Members from Open Source Summit Europe]]></title>
      <description><![CDATA[<p><time datetime="2019-10-28T00:00:00.000Z">October 28, 2019</time> by GraphQL Foundation</p><p><a class="transition-colors py-1 px-2.5 capitalize rounded bg-zinc-200 dark:bg-zinc-700 font-bold hover:!no-underline hover:!bg-primary hover:text-white dark:hover:text-zinc-900" href="https://graphql.org/tags/announcements/">announcements</a></p>
<p class="_mt-6 _leading-7 first:_mt-0"><a class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]" href="https://graphql.org/">The GraphQL Foundation</a>, a neutral home for the GraphQL community to accelerate development of the surrounding ecosystem, today announced seven new members to support the Foundation’s efforts, along with the launch of the <a href="https://landscape.graphql.org" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphQL Landscape</a>.</p>
<p class="_mt-6 _leading-7 first:_mt-0">The GraphQL Landscape is a dynamically generated tool designed to help explore the burgeoning GraphQL community of projects, adopters and member organizations. Currently, it is comprised of 100+ cards representing a market cap of more than $3.4T.</p>
<p class="_mt-6 _leading-7 first:_mt-0">”When we first created GraphQL, we set out to make product development easier with APIs driven by the needs of mobile and app developers and dramatic simplifications of how APIs are built and maintained,” said Lee Byron, Director of the GraphQL Foundation. “I’m thrilled to see this influx of multi-industry support for GraphQL and a commitment to increase developer productivity, showcased throughout the impressive and growing landscape."</p>
<p class="_mt-6 _leading-7 first:_mt-0">"I’m thrilled to help launch the GraphQL Foundation’s first landscape, displaying GraphQL’s vast range of projects, adopters and members,” said Chris Aniszczyk, VP of Developer Relations and CTO of CNCF at the Linux Foundation. “This interactive resource has been a labor of love from and for our community, and I look forward to watching it grow into the same standard for real-time ecosystem information that the CNCF Landscape has been for the cloud native space.”</p>
<p class="_mt-6 _leading-7 first:_mt-0">GraphQL is a next­-generation API technology developed internally by Facebook in 2012 before being publicly <a href="https://code.fb.com/core-data/graphql-a-data-query-language/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">open sourced in 2015</a>. Unlike REST-­based APIs, which take advantage of HTTP and existing protocols, GraphQL APIs provide developers with the flexibility to query the exact data they need from a diverse set of cloud data sources, with less code, greater performance and security, and a faster development cycle. Not only does this enable developers to rapidly build top­ quality apps, it also helps them achieve consistency and feature parity across multiple platforms such as web, iOS, Android, and embedded and IoT applications.</p>
<p class="_mt-6 _leading-7 first:_mt-0">Brian Warner of The Linux Foundation has joined the GraphQL Foundation as its Program Director, helping to support the growing community and the project’s ongoing needs. “I look forward to working with Lee and the governing board to establish the infrastructure and support needed to ensure the health and sustainability of the vibrant GraphQL community.”</p>
<p class="_mt-6 _leading-7 first:_mt-0">GraphQL is being used in production by a <a href="https://graphql.org/users/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">variety of high scale companies</a> such as Airbnb, Atlassian, Audi, CNBC, GitHub, Major League Soccer, Netflix, Shopify, The New York Times, Twitter, Pinterest and Yelp. GraphQL also <a href="https://code.fb.com/core-data/graphql-a-data-query-language/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">powers hundreds of billions of API calls a day at Facebook</a>.</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">Member Quotes</h2>
<p class="_mt-6 _leading-7 first:_mt-0">”Open source specifications rely on strong collaboration and proper stewardship. 8base loves GraphQL and we joined the GraphQL Foundation to be involved in the specification’s future with other leading-edge technology companies. Our hope is that, with our involvement, the surrounding ecosystem continues to flourish at an accelerated pace.” - <em>Albert Santalo, CEO &amp; Founder, 8base</em></p>
<p class="_mt-6 _leading-7 first:_mt-0">”It’s truly surreal to see GraphQL grow from its conception to spread throughout the entire technology industry. The Foundation provides the infrastructure to make this a true industry standard, backed by stable, trusted, company-neutral governance.” - <em>Nick Schrock, Founder, Elementl</em></p>
<p class="_mt-6 _leading-7 first:_mt-0">”At Expedia Group, GraphQL is helping us build better experiences for our travelers. As a rapidly adopted technology in software development, we believe an open and community supported GraphQL specification and ecosystem is critical to its continued success.” - <em>Trevor Livingston, Principal Architect, Expedia Group (VRBO)</em></p>
<p class="_mt-6 _leading-7 first:_mt-0">“At Fauna, we have seen first-hand the productivity and architectural benefits GraphQL offers developers. We believe that an open ecosystem and shared specification are a benefit to all. We’re excited to contribute to the GraphQL community and collaborate on its continued innovation.” - <em>Matt Freels, CTO, Fauna, Inc.</em></p>
<p class="_mt-6 _leading-7 first:_mt-0">”We are thrilled to be a part of the GraphQL Foundation. We see GraphQL as one of the most important emerging API technologies and strongly believe in its bright future! We’re excited to continue investing in the GraphQL ecosystem and community with tools, events and educational content.” - <em>Johannes Schickling, CEO, Prisma</em></p>
<p class="_mt-6 _leading-7 first:_mt-0">”We’re deliberate about the technology we build and adopt. That’s why we’re excited to double-down on our investment in GraphQL as a foundational technology at Shopify. We believe GraphQL provides great tools for our internal teams and app developers to extend our platform and create faster merchant experiences.” - <em>Jean-Michel Lemieux, CTO, Shopify</em></p>
<p class="_mt-6 _leading-7 first:_mt-0">”GraphQL plays a key part in helping us serve the public conversation on Twitter by enabling faster product iteration across our teams. As GraphQL is gaining tremendous adoption as one of the best protocols for remote retrieval of large object graphs, we are very excited to support the GraphQL Foundation.” - <em>Anna Sulkina Engineering Director, Core Services Group, Twitter</em></p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">About the GraphQL Foundation</h2>
<p class="_mt-6 _leading-7 first:_mt-0">The GraphQL Foundation is an open, neutral organization that provides oversight of funding, operations, and marketing resources for the GraphQL community to enable widespread adoption and help accelerate development of the broader ecosystem. The <a href="https://github.com/graphql/graphql-spec" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphQL specification</a>, <a href="https://github.com/graphql/graphql-js" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphQL.js</a> reference implementation, <a href="https://github.com/graphql/dataloader" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">DataLoader</a> library, and <a href="https://github.com/graphql/graphiql" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphiQL</a> developer tool are technical projects supported by the GraphQL Foundation. More details can be found at <a href="https://foundation.graphql.org" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">https://foundation.graphql.org</a>.</p>
<h2 class="_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100 _mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400">About The Linux Foundation</h2>
<p class="_mt-6 _leading-7 first:_mt-0">The Linux Foundation is the organization of choice for the world’s top developers and companies to build ecosystems that accelerate open technology development and industry adoption. Together with the worldwide open source community, it is solving the hardest technology problems by creating the largest shared technology investment in history. Founded in 2000, The Linux Foundation today provides tools, training and events to scale any open source project, which together deliver an economic impact not achievable by any one company. More information can be found at <a href="http://www.linuxfoundation.org" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">www.linuxfoundation.org</a>.</p>
<hr class="_my-8 _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400" /><p class="_mt-6 _leading-7 first:_mt-0"><em>The Linux Foundation has registered trademarks and uses trademarks. For a list of trademarks of The Linux Foundation, please see our trademark usage page: <a href="https://linuxfoundation.org/trademark-usage" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">https://linuxfoundation.org/trademark-usage</a>. Linux is a registered trademark of Linus Torvalds.</em></p>]]></description>
      <link>https://graphql.org/blog/2019-10-28-interactive-landscape</link>
      <guid>https://graphql.org/blog/2019-10-28-interactive-landscape</guid>
      <pubDate>Mon, 28 Oct 2019 01:00:00 +0100</pubDate>
    </item>
    <item>
      <title><![CDATA[The GraphQL Foundation Announces Collaboration with the Joint Development Foundation to Drive Open Source and Open Standards]]></title>
      <description><![CDATA[<p>The <a href="http://graphql.org/foundation/">GraphQL Foundation</a>, a neutral home for the GraphQL community to accelerate development of the surrounding ecosystem, today announces it is collaborating with the Joint Development Foundation (JDF), <a href="https://www.linuxfoundation.org/press-release/2018/12/jdf-joins-lf-family/" target="_blank" rel="nofollow noopener noreferrer">which recently joined the Linux Foundation to drive adoption of open source and standards</a>, to continue developing the <a href="https://github.com/facebook/graphql/" target="_blank" rel="nofollow noopener noreferrer">GraphQL specification</a>.</p><p>GraphQL Foundation encourages contributions, stewardship, and a shared investment from a broad group in vendor-neutral events, documentation, tools, and support for the data query language. The following companies Apollo, AWS, Butterfly Network, Dgraph Labs, Facebook, Gatsby, GraphZen, Hasura, IBM, Intuit, Neo4j, Novvum, Pipefy, Salsify, Solo.io and Thicit are joining as members to advance GraphQL as an industry specification for designing more effective APIs.</p><p>GraphQL powers hundreds of billions of API calls a day at Facebook, which developed the technology in 2012 and played an integral role in helping GraphQL <a href="https://www.linuxfoundation.org/press-release/2018/11/intent_to_form_graphql/" target="_blank" rel="nofollow noopener noreferrer">join the Linux Foundation last year</a>. Today, virtually every major programming language offers GraphQL support through a variety of open source software libraries.</p><p>GraphQL is the first Linux Foundation project to benefit from the JDF and Linux Foundation collaboration, which provides open source projects with a swift path to standardization for open specifications. Developers will have an open GraphQL specification and open source software implementations available for designing conformant APIs.</p><p>“We are excited to formally welcome new members and to work closely with them to build out and support a global GraphQL ecosystem. We’re pleased that the GraphQL specification will continue to evolve through the JDF and Linux Foundation partnership. With an easier and faster way to create and advance standards, developers can concentrate on creating applications that make a bigger impact on communities around the world,” said Lee Byron, co-creator of GraphQL.</p><p>GraphQL is important for API development as it allows nested objects in a single API request that traditionally would require multiple API requests. The <a href="https://github.com/facebook/graphql/" target="_blank" rel="nofollow noopener noreferrer">GraphQL specification</a>, <a href="https://github.com/graphql/graphql-js" target="_blank" rel="nofollow noopener noreferrer">GraphQL.js</a> reference implementation, <a href="https://github.com/facebook/dataloader" target="_blank" rel="nofollow noopener noreferrer">DataLoader</a> library, and <a href="https://github.com/graphql/graphiql" target="_blank" rel="nofollow noopener noreferrer">GraphiQL</a> developer tool are technical projects supported by the GraphQL Foundation. As application development shifts toward microservices architectures with an emphasis on flexibility and speed to market, tools like GraphQL are redefining API design and client-server interaction to improve the developer experience, increasing developer productivity and minimizing amounts of data transferred. GraphQL makes cross-platform and mobile development simpler with availability in multiple programming languages that are consistent and feature parity across multiple platforms such as web, iOS, Android, and embedded and IoT applications.</p><p><a href="https://www.linuxfoundation.org/" target="_blank" rel="nofollow noopener noreferrer">The Linux Foundation</a> and the <a href="https://opensource.facebook.com/" target="_blank" rel="nofollow noopener noreferrer">Facebook Open Source</a> team leveraged the JDF’s proven framework to create a lightweight governance structure for specifications — allowing communities to quickly spin-up neutral collaborations.</p><p>“We’re thrilled to see GraphQL and the Joint Development Foundation join forces and get to work so quickly to advance open standards,” said Jim Zemlin, executive director of the Linux Foundation. “Working with the JDF, the GraphQL community is able to leverage turnkey infrastructure to create and manage open standards more quickly and nimbly than ever before. This allows developers to continue to break barriers and modernize application development.”</p><p>“We are very pleased to have worked closely with the Linux Foundation in creating this novel approach to specification-based collaborations,” said Michael Cheng from the Facebook Open Source team. “By offering open source communities a streamlined path to standardization and nurturing open source implementations, this strategic alignment benefits GraphQL developers, corporate contributors and end users who need both outcomes to succeed.”</p><p>“We look forward to working closely with the GraphQL Foundation and we expect many other Linux Foundation projects to work with us this year to accelerate specifications and standards development to advance their mission and drive the creation of innovative technology, ” said David Rudin, president of the Joint Development Foundation.</p><p>“Given GraphQL’s centrality in the modern app development stack, the foundation we’re launching today is not just necessary, but overdue. As the creators of Apollo, the most widely used implementation of GraphQL, we’re looking forward to working together with the Linux Foundation to define appropriate governance processes and accelerate the adoption of this critical Internet standard.” — Geoff Schmidt, CEO and Co-Founder, Apollo</p><p>“GraphQL is a foundational technology for building APIs that empower frontend developers to deliver the best user experience for their customers. With AWS AppSync and the Amplify Framework, AWS is enabling developers to build and run critical GraphQL workloads at scale, and we are excited to join the Foundation to support and grow the GraphQL community.” — Adrian Cockcroft, Vice President of Cloud Architecture Strategy, AWS</p><p>“GraphQL has been invaluable to Butterfly Network in advancing our mission of democratizing medical imaging. It’s enabled us to build data-efficient APIs to serve healthcare providers in areas with limited broadband internet access, while preserving our ability to quickly develop new API functionality. GraphQL has played a key role in allowing our back end and front end teams to work together with a minimum of friction. We’re excited to support the GraphQL Foundation in its work to further shepherd the standard.” — Jimmy Jia, Principal Scientist, Butterfly Network</p><p>“Dgraph started just a few months after a draft GraphQL spec was released in mid-2015. Unsatisfied with existing graph languages, we decided to bet the future of our distributed graph database on GraphQL. Dgraph is now the only database to natively support a language very close to GraphQL. Considering how easy and intuitive it is for our users, it has been the best decision we made. So, we stand proud with the GraphQL Foundation to help build the next generation of apps on graphs.” – Manish R. Jain, CEO, Dgraph Labs</p><p>“Our goal at Gastby is to provide the best platform for building fast, compelling websites. We use GraphQL to provide a flexible data layer that can be used with different sources. We welcome the establishment of the GraphQL Specification Project and are very excited to be part of it.” — Mikhail Novikov, Software Developer, Gatsby Inc.</p><p>“GraphZen strives to deliver a fantastic developer experience for C# developers building GraphQL APIs and to provide the support and training needed by enterprises to realize the benefits of GraphQL. GraphZen is excited to join the GraphQL Foundation and steward the GraphQL specification in a way that continues to drive innovation and adoption through open standards.” — Craig Smitham, Creator &amp; Founder, GraphZen</p><p>“The GraphQL technology and community is spearheading a much required shift in the API experience for the modern web, especially as applications are becoming more ‘frontend’ heavy. At Hasura, we’re extremely excited about the potential of GraphQL to evolve the way teams organize their codebases, and communicate with each other; especially in relation to the ongoing serverless movement. There could not be a better home for GraphQL projects and events than the GraphQL Foundation, and we are proud to do our bit to help make the technology and community around GraphQL sustainable and open.” — Tanmai Gopal, CEO, Hasura</p><p>“IBM has continued to be an industry leader, helping clients keep pace with the rapidly evolving API technologies landscape. We are pleased to join the new GraphQL Foundation as a founding member to help drive greater open source innovation and adoption of this important data access language and runtime for APIs.” – Juan Carlos Soto, VP Hybrid Cloud Integration and API Economy, IBM</p><p>“Intuit began using GraphQL shortly after it arrived in open source. We have developed a complex schema with over 600 core objects, 1,600 types and thousands of connections between objects. We’ve made major contributions to the open source GraphQL Java library. We look forward to participating in the GraphQL Foundation to advance its capabilities and more directly participate in the thriving community.” — Jeff Brewer, Vice President, Chief Architect, Small Business and Self-Employed Group, Intuit</p><p>“Neo4j is pleased to support GraphQL, due to its unique ability to enable front-end developers, API developers and data architects to all work with the same graph-based data model. Our GraphQL integration and GRANDstack have already helped thousands of developers build graph applications with Neo4j, thanks to the huge developer productivity gain of GraphQL and the graph thinking mindset it brings for both developers and API consumers. The GraphQL Foundation is an important step to cement today’s most relevant standard for building APIs and we’re honored to join as founding members to help steward GraphQL as the ecosystem continues to evolve.” — Emil Eifrem, CEO and Co-Founder, Neo4j</p><p>“We are grateful that Novvum has grown alongside GraphQL and its community over the past four years. We couldn’t be more excited about the future of GraphQL, and look forward to working with the Linux Foundation and GraphQL Foundation to improve the quality and experience of API development for engineers.” — Raj Singh, CEO and Co-Founder, Novvum</p><p>“At Pipefy we are building the lean management platform. Since the beginning, GraphQL has enabled our developers to deliver new features and services more efficiently and with better communication from front-end and back-end teams. After we started using it internally, we decided to build our public API using GraphQL, a choice that enabled us to deliver a better developer experience to the developers who are building on top of our platform. We are excited to contribute to the GraphQL ecosystem and support the GraphQL Foundation.” — Raphael Costa, Head of Platform, Pipefy</p><p>“Salsify provides a data platform that enables the world’s largest brands to deliver compelling product experiences across the retail ecosystem. Our GraphQL powered APIs enable us to support a diverse set of use cases with great developer ergonomics and excellent performance. We look forward to working with the GraphQL Foundation to support the continued evolution of GraphQL.” — Joel Turkel, Chief Software Architect, Salsify</p><p>“<a href="http://solo.io/" target="_blank" rel="nofollow noopener noreferrer">Solo.io</a>’s mission is to empower enterprise organizations rapidly adopt innovative technology and extend their existing investments. GraphQL is a powerful way to help “glue” monolith, microservices, and serverless applications with a unified API. Our open-source project, Sqoop, leverages GraphQL and other innovative projects like Envoy to streamline the developer experience, and simply glue together environments without writing a single line of code. We are excited to join the GraphQL Foundation and look forward to working within the GraphQL community” — Idit Levine, CEO &amp; Founder, Solo.io</p><p>“GraphQL, and alongside its tooling, has grown to proof its worth and is here to stay. Time for a power-up supported by many hands and brains through the Joint Development Foundation and Linux Foundation. GraphQL is the glue that keeps your domain data in context, understandable, and always ready to empower the next ideas. Looking forward to new and improved power’s, to evolution.” — Tim Govers, CEO, Thicit</p>]]></description>
      <link>http://graphql.org/blog/2019-03-12-graphql-foundation-announces-collaboration-with-jdf</link>
      <guid>http://graphql.org/blog/2019-03-12-graphql-foundation-announces-collaboration-with-jdf</guid>
      <pubDate>Tue, 12 Mar 2019 01:00:00 +0100</pubDate>
    </item>
    <item>
      <title><![CDATA[The GraphQL Foundation Announces Collaboration with the Joint Development Foundation to Drive Open Source and Open Standards]]></title>
      <description><![CDATA[<p><time datetime="2019-03-12T00:00:00.000Z">March 12, 2019</time> by GraphQL Foundation</p><p><a class="transition-colors py-1 px-2.5 capitalize rounded bg-zinc-200 dark:bg-zinc-700 font-bold hover:!no-underline hover:!bg-primary hover:text-white dark:hover:text-zinc-900" href="https://graphql.org/tags/announcements/">announcements</a></p>
<p class="_mt-6 _leading-7 first:_mt-0">The <a class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]" href="https://graphql.org/foundation/">GraphQL Foundation</a>, a neutral home for the GraphQL community to accelerate development of the surrounding ecosystem, today announces it is collaborating with the Joint Development Foundation (JDF), <a href="https://www.linuxfoundation.org/press-release/2018/12/jdf-joins-lf-family/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">which recently joined the Linux Foundation to drive adoption of open source and standards</a>, to continue developing the <a href="https://github.com/facebook/graphql/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphQL specification</a>.</p>
<p class="_mt-6 _leading-7 first:_mt-0">GraphQL Foundation encourages contributions, stewardship, and a shared investment from a broad group in vendor-neutral events, documentation, tools, and support for the data query language. The following companies Apollo, AWS, Butterfly Network, Dgraph Labs, Facebook, Gatsby, GraphZen, Hasura, IBM, Intuit, Neo4j, Novvum, Pipefy, Salsify, Solo.io and Thicit are joining as members to advance GraphQL as an industry specification for designing more effective APIs.</p>
<p class="_mt-6 _leading-7 first:_mt-0">GraphQL powers hundreds of billions of API calls a day at Facebook, which developed the technology in 2012 and played an integral role in helping GraphQL <a href="https://www.linuxfoundation.org/press-release/2018/11/intent_to_form_graphql/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">join the Linux Foundation last year</a>. Today, virtually every major programming language offers GraphQL support through a variety of open source software libraries.</p>
<p class="_mt-6 _leading-7 first:_mt-0">GraphQL is the first Linux Foundation project to benefit from the JDF and Linux Foundation collaboration, which provides open source projects with a swift path to standardization for open specifications. Developers will have an open GraphQL specification and open source software implementations available for designing conformant APIs.</p>
<p class="_mt-6 _leading-7 first:_mt-0">“We are excited to formally welcome new members and to work closely with them to build out and support a global GraphQL ecosystem. We’re pleased that the GraphQL specification will continue to evolve through the JDF and Linux Foundation partnership. With an easier and faster way to create and advance standards, developers can concentrate on creating applications that make a bigger impact on communities around the world,” said Lee Byron, co-creator of GraphQL.</p>
<p class="_mt-6 _leading-7 first:_mt-0">GraphQL is important for API development as it allows nested objects in a single API request that traditionally would require multiple API requests. The <a href="https://github.com/facebook/graphql/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphQL specification</a>, <a href="https://github.com/graphql/graphql-js" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphQL.js</a> reference implementation, <a href="https://github.com/facebook/dataloader" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">DataLoader</a> library, and <a href="https://github.com/graphql/graphiql" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphiQL</a> developer tool are technical projects supported by the GraphQL Foundation. As application development shifts toward microservices architectures with an emphasis on flexibility and speed to market, tools like GraphQL are redefining API design and client-server interaction to improve the developer experience, increasing developer productivity and minimizing amounts of data transferred. GraphQL makes cross-platform and mobile development simpler with availability in multiple programming languages that are consistent and feature parity across multiple platforms such as web, iOS, Android, and embedded and IoT applications.</p>
<p class="_mt-6 _leading-7 first:_mt-0"><a href="https://www.linuxfoundation.org/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">The Linux Foundation</a> and the <a href="https://opensource.facebook.com/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Facebook Open Source</a> team leveraged the JDF’s proven framework to create a lightweight governance structure for specifications — allowing communities to quickly spin-up neutral collaborations.</p>
<p class="_mt-6 _leading-7 first:_mt-0">“We’re thrilled to see GraphQL and the Joint Development Foundation join forces and get to work so quickly to advance open standards,” said Jim Zemlin, executive director of the Linux Foundation. “Working with the JDF, the GraphQL community is able to leverage turnkey infrastructure to create and manage open standards more quickly and nimbly than ever before. This allows developers to continue to break barriers and modernize application development.”</p>
<p class="_mt-6 _leading-7 first:_mt-0">“We are very pleased to have worked closely with the Linux Foundation in creating this novel approach to specification-based collaborations,” said Michael Cheng from the Facebook Open Source team. “By offering open source communities a streamlined path to standardization and nurturing open source implementations, this strategic alignment benefits GraphQL developers, corporate contributors and end users who need both outcomes to succeed.”</p>
<p class="_mt-6 _leading-7 first:_mt-0">“We look forward to working closely with the GraphQL Foundation and we expect many other Linux Foundation projects to work with us this year to accelerate specifications and standards development to advance their mission and drive the creation of innovative technology, ” said David Rudin, president of the Joint Development Foundation.</p>
<blockquote class="_mt-6 _border-gray-300 _italic _text-gray-700 dark:_border-gray-700 dark:_text-gray-400 first:_mt-0 ltr:_border-l-2 ltr:_pl-6 rtl:_border-r-2 rtl:_pr-6">
<p class="_mt-6 _leading-7 first:_mt-0">“Given GraphQL’s centrality in the modern app development stack, the foundation we’re launching today is not just necessary, but overdue. As the creators of Apollo, the most widely used implementation of GraphQL, we’re looking forward to working together with the Linux Foundation to define appropriate governance processes and accelerate the adoption of this critical Internet standard.” — Geoff Schmidt, CEO and Co-Founder, Apollo</p>
</blockquote>
<blockquote class="_mt-6 _border-gray-300 _italic _text-gray-700 dark:_border-gray-700 dark:_text-gray-400 first:_mt-0 ltr:_border-l-2 ltr:_pl-6 rtl:_border-r-2 rtl:_pr-6">
<p class="_mt-6 _leading-7 first:_mt-0">“GraphQL is a foundational technology for building APIs that empower frontend developers to deliver the best user experience for their customers. With AWS AppSync and the Amplify Framework, AWS is enabling developers to build and run critical GraphQL workloads at scale, and we are excited to join the Foundation to support and grow the GraphQL community.” — Adrian Cockcroft, Vice President of Cloud Architecture Strategy, AWS</p>
</blockquote>
<blockquote class="_mt-6 _border-gray-300 _italic _text-gray-700 dark:_border-gray-700 dark:_text-gray-400 first:_mt-0 ltr:_border-l-2 ltr:_pl-6 rtl:_border-r-2 rtl:_pr-6">
<p class="_mt-6 _leading-7 first:_mt-0">“GraphQL has been invaluable to Butterfly Network in advancing our mission of democratizing medical imaging. It’s enabled us to build data-efficient APIs to serve healthcare providers in areas with limited broadband internet access, while preserving our ability to quickly develop new API functionality. GraphQL has played a key role in allowing our back end and front end teams to work together with a minimum of friction. We’re excited to support the GraphQL Foundation in its work to further shepherd the standard.” — Jimmy Jia, Principal Scientist, Butterfly Network</p>
</blockquote>
<blockquote class="_mt-6 _border-gray-300 _italic _text-gray-700 dark:_border-gray-700 dark:_text-gray-400 first:_mt-0 ltr:_border-l-2 ltr:_pl-6 rtl:_border-r-2 rtl:_pr-6">
<p class="_mt-6 _leading-7 first:_mt-0">“Dgraph started just a few months after a draft GraphQL spec was released in mid-2015. Unsatisfied with existing graph languages, we decided to bet the future of our distributed graph database on GraphQL. Dgraph is now the only database to natively support a language very close to GraphQL. Considering how easy and intuitive it is for our users, it has been the best decision we made. So, we stand proud with the GraphQL Foundation to help build the next generation of apps on graphs.” – Manish R. Jain, CEO, Dgraph Labs</p>
</blockquote>
<blockquote class="_mt-6 _border-gray-300 _italic _text-gray-700 dark:_border-gray-700 dark:_text-gray-400 first:_mt-0 ltr:_border-l-2 ltr:_pl-6 rtl:_border-r-2 rtl:_pr-6">
<p class="_mt-6 _leading-7 first:_mt-0">“Our goal at Gastby is to provide the best platform for building fast, compelling websites. We use GraphQL to provide a flexible data layer that can be used with different sources. We welcome the establishment of the GraphQL Specification Project and are very excited to be part of it.” — Mikhail Novikov, Software Developer, Gatsby Inc.</p>
</blockquote>
<blockquote class="_mt-6 _border-gray-300 _italic _text-gray-700 dark:_border-gray-700 dark:_text-gray-400 first:_mt-0 ltr:_border-l-2 ltr:_pl-6 rtl:_border-r-2 rtl:_pr-6">
<p class="_mt-6 _leading-7 first:_mt-0">“GraphZen strives to deliver a fantastic developer experience for C# developers building GraphQL APIs and to provide the support and training needed by enterprises to realize the benefits of GraphQL. GraphZen is excited to join the GraphQL Foundation and steward the GraphQL specification in a way that continues to drive innovation and adoption through open standards.” — Craig Smitham, Creator &amp; Founder, GraphZen</p>
</blockquote>
<blockquote class="_mt-6 _border-gray-300 _italic _text-gray-700 dark:_border-gray-700 dark:_text-gray-400 first:_mt-0 ltr:_border-l-2 ltr:_pl-6 rtl:_border-r-2 rtl:_pr-6">
<p class="_mt-6 _leading-7 first:_mt-0">“The GraphQL technology and community is spearheading a much required shift in the API experience for the modern web, especially as applications are becoming more ‘frontend’ heavy. At Hasura, we’re extremely excited about the potential of GraphQL to evolve the way teams organize their codebases, and communicate with each other; especially in relation to the ongoing serverless movement. There could not be a better home for GraphQL projects and events than the GraphQL Foundation, and we are proud to do our bit to help make the technology and community around GraphQL sustainable and open.” — Tanmai Gopal, CEO, Hasura</p>
</blockquote>
<blockquote class="_mt-6 _border-gray-300 _italic _text-gray-700 dark:_border-gray-700 dark:_text-gray-400 first:_mt-0 ltr:_border-l-2 ltr:_pl-6 rtl:_border-r-2 rtl:_pr-6">
<p class="_mt-6 _leading-7 first:_mt-0">“IBM has continued to be an industry leader, helping clients keep pace with the rapidly evolving API technologies landscape. We are pleased to join the new GraphQL Foundation as a founding member to help drive greater open source innovation and adoption of this important data access language and runtime for APIs.” – Juan Carlos Soto, VP Hybrid Cloud Integration and API Economy, IBM</p>
</blockquote>
<blockquote class="_mt-6 _border-gray-300 _italic _text-gray-700 dark:_border-gray-700 dark:_text-gray-400 first:_mt-0 ltr:_border-l-2 ltr:_pl-6 rtl:_border-r-2 rtl:_pr-6">
<p class="_mt-6 _leading-7 first:_mt-0">“Intuit began using GraphQL shortly after it arrived in open source. We have developed a complex schema with over 600 core objects, 1,600 types and thousands of connections between objects. We’ve made major contributions to the open source GraphQL Java library. We look forward to participating in the GraphQL Foundation to advance its capabilities and more directly participate in the thriving community.” — Jeff Brewer, Vice President, Chief Architect, Small Business and Self-Employed Group, Intuit</p>
</blockquote>
<blockquote class="_mt-6 _border-gray-300 _italic _text-gray-700 dark:_border-gray-700 dark:_text-gray-400 first:_mt-0 ltr:_border-l-2 ltr:_pl-6 rtl:_border-r-2 rtl:_pr-6">
<p class="_mt-6 _leading-7 first:_mt-0">“Neo4j is pleased to support GraphQL, due to its unique ability to enable front-end developers, API developers and data architects to all work with the same graph-based data model. Our GraphQL integration and GRANDstack have already helped thousands of developers build graph applications with Neo4j, thanks to the huge developer productivity gain of GraphQL and the graph thinking mindset it brings for both developers and API consumers. The GraphQL Foundation is an important step to cement today’s most relevant standard for building APIs and we’re honored to join as founding members to help steward GraphQL as the ecosystem continues to evolve.” — Emil Eifrem, CEO and Co-Founder, Neo4j</p>
</blockquote>
<blockquote class="_mt-6 _border-gray-300 _italic _text-gray-700 dark:_border-gray-700 dark:_text-gray-400 first:_mt-0 ltr:_border-l-2 ltr:_pl-6 rtl:_border-r-2 rtl:_pr-6">
<p class="_mt-6 _leading-7 first:_mt-0">“We are grateful that Novvum has grown alongside GraphQL and its community over the past four years. We couldn’t be more excited about the future of GraphQL, and look forward to working with the Linux Foundation and GraphQL Foundation to improve the quality and experience of API development for engineers.” — Raj Singh, CEO and Co-Founder, Novvum</p>
</blockquote>
<blockquote class="_mt-6 _border-gray-300 _italic _text-gray-700 dark:_border-gray-700 dark:_text-gray-400 first:_mt-0 ltr:_border-l-2 ltr:_pl-6 rtl:_border-r-2 rtl:_pr-6">
<p class="_mt-6 _leading-7 first:_mt-0">“At Pipefy we are building the lean management platform. Since the beginning, GraphQL has enabled our developers to deliver new features and services more efficiently and with better communication from front-end and back-end teams. After we started using it internally, we decided to build our public API using GraphQL, a choice that enabled us to deliver a better developer experience to the developers who are building on top of our platform. We are excited to contribute to the GraphQL ecosystem and support the GraphQL Foundation.” — Raphael Costa, Head of Platform, Pipefy</p>
</blockquote>
<blockquote class="_mt-6 _border-gray-300 _italic _text-gray-700 dark:_border-gray-700 dark:_text-gray-400 first:_mt-0 ltr:_border-l-2 ltr:_pl-6 rtl:_border-r-2 rtl:_pr-6">
<p class="_mt-6 _leading-7 first:_mt-0">“Salsify provides a data platform that enables the world’s largest brands to deliver compelling product experiences across the retail ecosystem. Our GraphQL powered APIs enable us to support a diverse set of use cases with great developer ergonomics and excellent performance. We look forward to working with the GraphQL Foundation to support the continued evolution of GraphQL.” — Joel Turkel, Chief Software Architect, Salsify</p>
</blockquote>
<blockquote class="_mt-6 _border-gray-300 _italic _text-gray-700 dark:_border-gray-700 dark:_text-gray-400 first:_mt-0 ltr:_border-l-2 ltr:_pl-6 rtl:_border-r-2 rtl:_pr-6">
<p class="_mt-6 _leading-7 first:_mt-0">“<a href="http://solo.io" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Solo.io</a>’s mission is to empower enterprise organizations rapidly adopt innovative technology and extend their existing investments. GraphQL is a powerful way to help “glue” monolith, microservices, and serverless applications with a unified API. Our open-source project, Sqoop, leverages GraphQL and other innovative projects like Envoy to streamline the developer experience, and simply glue together environments without writing a single line of code. We are excited to join the GraphQL Foundation and look forward to working within the GraphQL community” — Idit Levine, CEO &amp; Founder, Solo.io</p>
</blockquote>
<blockquote class="_mt-6 _border-gray-300 _italic _text-gray-700 dark:_border-gray-700 dark:_text-gray-400 first:_mt-0 ltr:_border-l-2 ltr:_pl-6 rtl:_border-r-2 rtl:_pr-6">
<p class="_mt-6 _leading-7 first:_mt-0">“GraphQL, and alongside its tooling, has grown to proof its worth and is here to stay. Time for a power-up supported by many hands and brains through the Joint Development Foundation and Linux Foundation. GraphQL is the glue that keeps your domain data in context, understandable, and always ready to empower the next ideas. Looking forward to new and improved power’s, to evolution.” — Tim Govers, CEO, Thicit</p>
</blockquote>]]></description>
      <link>https://graphql.org/blog/2019-03-12-joint-development-foundation</link>
      <guid>https://graphql.org/blog/2019-03-12-joint-development-foundation</guid>
      <pubDate>Tue, 12 Mar 2019 01:00:00 +0100</pubDate>
    </item>
    <item>
      <title><![CDATA[Channel Futures: GraphQL API Query Language Growing, Gets Own Support Foundation]]></title>
      <description><![CDATA[<p>11/12/2018 by Channel Futures</p><hr /><div><p>The growing popularity and use of the open-source GraphQL API language by software developers has inspired the creation of a <a href="https://www.linuxfoundation.org/press-release/2018/11/intent_to_form_graphql/" target="_blank" rel="nofollow noopener noreferrer">GraphQL Foundation</a> to promote the technology and help it accelerate its development and footprint in future code.</p><p>The new organization, hosted by the non-profit <a href="http://www.linuxfoundation.org/" target="_blank" rel="nofollow noopener noreferrer">Linux Foundation</a>, is made up of a wide range of companies and users that are interested in growing and nurturing the GraphQL API project, which Facebook originally developed internally. After several years of development, Facebook released the code for GraphQL as an opn-source project.</p><p><a href="https://www.channelfutures.com/open-source/graphql-api-query-language-growing-gets-own-support-foundation" target="_blank" rel="nofollow noopener noreferrer">Read more »</a></p></div>]]></description>
      <link>http://graphql.org/blog/2018-11-12-channel-futures-graphql-api-query-language-growing</link>
      <guid>http://graphql.org/blog/2018-11-12-channel-futures-graphql-api-query-language-growing</guid>
      <pubDate>Mon, 12 Nov 2018 01:00:00 +0100</pubDate>
    </item>
    <item>
      <title><![CDATA[Channel Futures: GraphQL API Query Language Growing, Gets Own Support Foundation]]></title>
      <description><![CDATA[<main class="_w-full _min-w-0 _max-w-6xl _px-6 _pt-4 md:_px-12">
<p><time datetime="2018-11-12T00:00:00.000Z">November 12, 2018</time> by Channel Futures</p>
<p><a class="transition-colors py-1 px-2.5 capitalize rounded bg-zinc-200 dark:bg-zinc-700 font-bold hover:!no-underline hover:!bg-primary hover:text-white dark:hover:text-zinc-900" href="https://graphql.org/tags/in-the-news/">in the news</a></p>
<p class="_mt-6 _leading-7 first:_mt-0">The growing popularity and use of the open-source GraphQL API language by software developers has inspired the creation of a <a href="https://www.linuxfoundation.org/press-release/2018/11/intent_to_form_graphql/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">GraphQL Foundation</a> to promote the technology and help it accelerate its development and footprint in future code.</p>
<p class="_mt-6 _leading-7 first:_mt-0">The new organization, hosted by the non-profit <a href="http://www.linuxfoundation.org/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Linux Foundation</a>, is made up of a wide range of companies and users that are interested in growing and nurturing the GraphQL API project, which Facebook originally developed internally. After several years of development, Facebook released the code for GraphQL as an opn-source project.</p>
<p class="_mt-6 _leading-7 first:_mt-0"><a href="https://www.channelfutures.com/open-source/graphql-api-query-language-growing-gets-own-support-foundation" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Read more</a></p>
</main>]]></description>
      <link>https://graphql.org/blog/2018-11-12-channel-futures</link>
      <guid>https://graphql.org/blog/2018-11-12-channel-futures</guid>
      <pubDate>Mon, 12 Nov 2018 01:00:00 +0100</pubDate>
    </item>
    <item>
      <title><![CDATA[The Register: Facebook’s open-source license drama-zone GraphQL gets swanky digs in Linux mansion]]></title>
      <description><![CDATA[<p>11/7/2018 by The Register</p><hr /><div><p>GraphQL, a query language for APIs that was on the verge of being shunned last year over software license concerns, has bounced back and landed in the arms of the Linux Foundation.</p><p><a href="https://www.theregister.co.uk/2018/11/07/graphql_on_linux/" target="_blank" rel="nofollow noopener noreferrer">Read more »</a></p></div>]]></description>
      <link>http://graphql.org/blog/2018-11-07-the-register</link>
      <guid>http://graphql.org/blog/2018-11-07-the-register</guid>
      <pubDate>Wed, 07 Nov 2018 01:00:00 +0100</pubDate>
    </item>
    <item>
      <title><![CDATA[SD Times: The Linux Foundation announces plans to form GraphQL foundation]]></title>
      <description><![CDATA[<p>11/7/2018 by SD Times</p><hr /><div><p>In an effort to grow and sustain the GraphQL ecosystem, The Linux Foundation has announced plans to launch a new open-source foundation for it. GraphQL is an <a href="https://sdtimes.com/tag/apis/" target="_blank" rel="nofollow noopener noreferrer">API</a> technology that was initially developed by Facebook.</p><p>The GraphQL Foundation will be a collaborative effort between industry leaders and users.</p><p><a href="https://sdtimes.com/api/the-linux-foundation-announces-plans-to-form-graphql-foundation/" target="_blank" rel="nofollow noopener noreferrer">Read more »</a></p></div>]]></description>
      <link>http://graphql.org/blog/2018-11-07-sd-times-lf-announces-plans-to-form-graphql-foundation</link>
      <guid>http://graphql.org/blog/2018-11-07-sd-times-lf-announces-plans-to-form-graphql-foundation</guid>
      <pubDate>Wed, 07 Nov 2018 01:00:00 +0100</pubDate>
    </item>
    <item>
      <title><![CDATA[Datanami: Will GraphQL Become a Standard for the New Data Economy?]]></title>
      <description><![CDATA[Don’t look now but a new language called GraphQL is emerging that could radically simplify how developers use APIs to get data into…]]></description>
      <link>http://graphql.org2018-11-07-datanami-will-graphql-become-a-standard-for-the-new-data-economy/</link>
      <guid>http://graphql.org2018-11-07-datanami-will-graphql-become-a-standard-for-the-new-data-economy/</guid>
      <pubDate>Wed, 07 Nov 2018 01:00:00 +0100</pubDate>
    </item>
    <item>
      <title><![CDATA[SD Times: The Linux Foundation announces plans to form GraphQL foundation]]></title>
      <description><![CDATA[<main class="_w-full _min-w-0 _max-w-6xl _px-6 _pt-4 md:_px-12">
<p><time datetime="2018-11-07T00:00:00.000Z">November 7, 2018</time> by SD Times</p>
<p><a class="transition-colors py-1 px-2.5 capitalize rounded bg-zinc-200 dark:bg-zinc-700 font-bold hover:!no-underline hover:!bg-primary hover:text-white dark:hover:text-zinc-900" href="https://graphql.org/tags/in-the-news/">in the news</a></p>
<p class="_mt-6 _leading-7 first:_mt-0">In an effort to grow and sustain the GraphQL ecosystem, The Linux Foundation has announced plans to launch a new open-source foundation for it. GraphQL is an <a href="https://sdtimes.com/tag/apis/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">API</a> technology that was initially developed by Facebook.</p>
<p class="_mt-6 _leading-7 first:_mt-0">The GraphQL Foundation will be a collaborative effort between industry leaders and users.</p>
<p class="_mt-6 _leading-7 first:_mt-0"><a href="https://sdtimes.com/api/the-linux-foundation-announces-plans-to-form-graphql-foundation/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Read more</a></p>
</main>]]></description>
      <link>https://graphql.org/blog/2018-11-07-sd-times</link>
      <guid>https://graphql.org/blog/2018-11-07-sd-times</guid>
      <pubDate>Wed, 07 Nov 2018 01:00:00 +0100</pubDate>
    </item>
    <item>
      <title><![CDATA[Datanami: Will GraphQL Become a Standard for the New Data Economy?]]></title>
      <description><![CDATA[<main class="_w-full _min-w-0 _max-w-6xl _px-6 _pt-4 md:_px-12">
<p><time datetime="2018-11-07T00:00:00.000Z">November 7, 2018</time> by Datanami</p>
<p><a class="transition-colors py-1 px-2.5 capitalize rounded bg-zinc-200 dark:bg-zinc-700 font-bold hover:!no-underline hover:!bg-primary hover:text-white dark:hover:text-zinc-900" href="https://graphql.org/tags/in-the-news/">in the news</a></p>
<p class="_mt-6 _leading-7 first:_mt-0">Don’t look now but a new language called GraphQL is emerging that could radically simplify how developers use APIs to get data into applications, and potentially provide a graph-like alternative to procedural REST. The company behind the open source software, Apollo, today announced the GraphQL Platform to standardize access to the new technology.</p>
<p class="_mt-6 _leading-7 first:_mt-0"><a href="https://www.datanami.com/2018/11/07/will-graphql-become-a-standard-for-the-new-data-economy/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Read more</a></p>
</main>]]></description>
      <link>https://graphql.org/blog/2018-11-07-datanami</link>
      <guid>https://graphql.org/blog/2018-11-07-datanami</guid>
      <pubDate>Wed, 07 Nov 2018 01:00:00 +0100</pubDate>
    </item>
    <item>
      <title><![CDATA[The Register: Facebook’s open-source license drama-zone GraphQL gets swanky digs in Linux mansion]]></title>
      <description><![CDATA[<main class="_w-full _min-w-0 _max-w-6xl _px-6 _pt-4 md:_px-12">
<p><time datetime="2018-11-07T00:00:00.000Z">November 7, 2018</time> by The Register</p>
<p><a class="transition-colors py-1 px-2.5 capitalize rounded bg-zinc-200 dark:bg-zinc-700 font-bold hover:!no-underline hover:!bg-primary hover:text-white dark:hover:text-zinc-900" href="https://graphql.org/tags/in-the-news/">in the news</a></p>
<p class="_mt-6 _leading-7 first:_mt-0">GraphQL, a query language for APIs that was on the verge of being shunned last year over software license concerns, has bounced back and landed in the arms of the Linux Foundation.</p>
<p class="_mt-6 _leading-7 first:_mt-0"><a href="https://www.theregister.co.uk/2018/11/07/graphql_on_linux/" target="_blank" rel="noreferrer" class="_text-primary-600 _underline _decoration-from-font [text-underline-position:from-font]">Read more</a></p>
</main>]]></description>
      <link>https://graphql.org/blog/2018-11-07-the-register</link>
      <guid>https://graphql.org/blog/2018-11-07-the-register</guid>
      <pubDate>Wed, 07 Nov 2018 01:00:00 +0100</pubDate>
    </item>
    <item>
      <title><![CDATA[Datanami: Will GraphQL Become a Standard for the New Data Economy?]]></title>
      <description><![CDATA[<p>11/7/2018 by Datanami</p><p><a href="http://graphql.org/tags/in-the-news">in-the-news</a></p><hr /><div><p>Don’t look now but a new language called GraphQL is emerging that could radically simplify how developers use APIs to get data into applications, and potentially provide a graph-like alternative to procedural REST. The company behind the open source software, Apollo, today announced the GraphQL Platform to standardize access to the new technology.</p><p><a href="https://www.datanami.com/2018/11/07/will-graphql-become-a-standard-for-the-new-data-economy/" target="_blank" rel="nofollow noopener noreferrer">Read more »</a></p></div>]]></description>
      <link>http://graphql.org/blog/2018-11-07-datanami-will-graphql-become-a-standard-for-the-new-data-economy</link>
      <guid>http://graphql.org/blog/2018-11-07-datanami-will-graphql-become-a-standard-for-the-new-data-economy</guid>
      <pubDate>Wed, 07 Nov 2018 01:00:00 +0100</pubDate>
    </item>
    <item>
      <title><![CDATA[InfoWorld: GraphQL gets its own foundation]]></title>
      <description><![CDATA[<main class="w-full min-w-0 max-w-6xl px-6 pt-4 md:px-12"><p><a title="Blog" class="text-neu-700 dark:text-neu-400 min-w-6 last:text-neu-800 dark:last:text-neu-800 leading-none whitespace-pre gql-focus-visible ring-inset hover:text-neu-900 hover:underline underline-offset-2 shrink-0" href="https://graphql.org/blog/">Blog</a></p>
<p><a class="gql-focus-visible -m-1 flex p-1 ring-inset ring-neu-400 transition-opacity duration-75 hover:ring focus:!outline-offset-0 dark:ring-neu-50 [:has(&gt;:hover)&gt;&amp;:not(:hover)]:opacity-70" href="https://graphql.org/tags/in-the-news/">in the news</a></p>
<p>InfoWorld<time datetime="2018-11-06T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">November 6, 2018</time></p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The Linux Foundation plans to host a foundation to support the GraphQL API project, with the intent of growing a neutral ecosystem for the technology.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">GraphQL is a specification for building APIs. It is intended to make cross-platform and mobile development simpler. Providing an alternative to REST, GraphQL lets developers use a strongly typed query language to define requests and responses, letting an application specify what it needs from an API. GraphQL enables access to multiple data sources through a single request.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7"><a rel="noopener noreferrer" target="_blank" href="https://infoworld.com/article/3318255/apis/graphql-gets-its-own-foundation.html" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">Read more</a></p>
<p><a title="GraphiQL 5 Released; Press F1!" class="gql-focus-visible typography-link flex max-w-[50%] items-center gap-2 border border-neu-200 pr-2 text-left text-base no-underline hover:bg-neu-50 hover:ring hover:ring-neu-100 dark:border-neu-100 dark:hover:bg-neu-50/50 dark:hover:ring-neu-50" href="https://graphql.org/blog/2025-07-17-graphiql-5/">GraphiQL 5 Released; Press F1!</a><a title="Seeking GraphQL Subject Matter Experts" class="gql-focus-visible typography-link ml-auto flex max-w-[50%] items-center gap-2 border border-neu-200 pl-2 text-left text-base no-underline hover:bg-neu-50 hover:ring hover:ring-neu-100 dark:border-neu-100 dark:hover:bg-neu-50/50 dark:hover:ring-neu-50" href="https://graphql.org/blog/2025-04-02-seeking-graphql-subject-matter-experts/">Seeking GraphQL Subject Matter Experts</a></p>
</main>]]></description>
      <link>https://graphql.org/blog/2018-11-06-infoworld</link>
      <guid>https://graphql.org/blog/2018-11-06-infoworld</guid>
      <pubDate>Tue, 06 Nov 2018 01:00:00 +0100</pubDate>
    </item>
    <item>
      <title><![CDATA[The Linux Foundation Announces Intent to Form New Foundation to Support GraphQL]]></title>
      <description><![CDATA[<p><a title="Blog" class="text-neu-700 dark:text-neu-400 min-w-6 last:text-neu-800 dark:last:text-neu-800 leading-none whitespace-pre gql-focus-visible ring-inset hover:text-neu-900 hover:underline underline-offset-2 shrink-0" href="https://graphql.org/blog/">Blog</a></p><p><a class="gql-focus-visible -m-1 flex p-1 ring-inset ring-neu-400 transition-opacity duration-75 hover:ring focus:!outline-offset-0 dark:ring-neu-50 [:has(&gt;:hover)&gt;&amp;:not(:hover)]:opacity-70" href="https://graphql.org/tags/announcements/">announcements</a></p>
<p>GraphQL Foundation<time datetime="2018-11-06T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">November 6, 2018</time></p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7"><a rel="noopener noreferrer" target="_blank" href="https://linuxfoundation.org" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">The Linux Foundation</a>, the nonprofit organization enabling mass innovation through open source, announces a broad coalition of industry leaders and users have joined forces to create a new open source foundation for the <a class="gql-focus-visible typography-link text-neu-900 underline-offset-2" href="https://graphql.org/">GraphQL</a> project, which will be dedicated to growing and sustaining a neutral GraphQL ecosystem. Hosted under the Linux Foundation, the <a rel="noopener noreferrer" target="_blank" href="https://gql.foundation" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">GraphQL Foundation</a>’s mission will be to enable widespread adoption and help accelerate development of GraphQL and the surrounding ecosystem.</p>
<blockquote class="[&amp;:not(:first-child)]:_mt-6 _border-gray-300 _italic _text-gray-700 dark:_border-gray-700 dark:_text-gray-400 ltr:_border-l-2 ltr:_pl-6 rtl:_border-r-2 rtl:_pr-6">
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">“As one of GraphQL’s co-creators, I’ve been amazed and proud to see it grow in adoption since its open sourcing. Through the formation of the GraphQL Foundation, I hope to see GraphQL become industry standard by encouraging contributions from a broader group and creating a shared investment in vendor-neutral events, documentation, tools, and support,” said Lee Byron, co-creator of GraphQL.</p>
</blockquote>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">GraphQL is a next­-generation API technology developed internally by Facebook in 2012 before being publicly <a rel="noopener noreferrer" target="_blank" href="https://code.fb.com/core-data/graphql-a-data-query-language/" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">open sourced in 2015</a>. As application development shifts towards microservices architectures with an emphasis on flexibility and speed to market, tools like GraphQL are redefining API design and client-server interaction to improve the developer experience, increasing developer productivity and minimizing amounts of data transferred. GraphQL makes cross-platform and mobile development simpler with availability in multiple programming languages, allowing developers to create seamless user experiences for their customers.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">GraphQL is being used in production by a <a rel="noopener noreferrer" target="_blank" href="https://graphql.org/users/" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">variety of high scale companies</a> such as Airbnb, Atlassian, Audi, CNBC, GitHub, Major League Soccer, Netflix, Shopify, The New York Times, Twitter, Pinterest and Yelp. GraphQL also <a rel="noopener noreferrer" target="_blank" href="https://code.fb.com/core-data/graphql-a-data-query-language/" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">powers hundreds of billions of API calls a day at Facebook</a>.</p>
<blockquote class="[&amp;:not(:first-child)]:_mt-6 _border-gray-300 _italic _text-gray-700 dark:_border-gray-700 dark:_text-gray-400 ltr:_border-l-2 ltr:_pl-6 rtl:_border-r-2 rtl:_pr-6">
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">“We are thrilled to welcome the GraphQL Foundation into the Linux Foundation. This advancement is important because it allows for long-term support and accelerated growth of this essential and groundbreaking technology that is changing the approach to API design for cloud-connected applications in any language,” said Jim Zemlin, Executive Director, the Linux Foundation.</p>
</blockquote>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Unlike REST-­based APIs, which take advantage of HTTP and existing protocols, GraphQL APIs provide developers with the flexibility to query the exact data they need from a diverse set of cloud data sources, with less code, greater performance and security, and a faster development cycle. Not only does this enable developers to rapidly build top­ quality apps, it also helps them achieve consistency and feature parity across multiple platforms such as web, iOS, Android, and embedded and IoT applications.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The GraphQL Foundation will have an open governance model that encourages participation and technical contribution and will provide a framework for long-term stewardship by an ecosystem invested in GraphQL’s success.</p>
<blockquote class="[&amp;:not(:first-child)]:_mt-6 _border-gray-300 _italic _text-gray-700 dark:_border-gray-700 dark:_text-gray-400 ltr:_border-l-2 ltr:_pl-6 rtl:_border-r-2 rtl:_pr-6">
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">“At Facebook, our mission is to give people the power to build community and bring the world closer together. We believe open source projects and the communities built around them help accelerate the pace of innovation and bring many minds to bear to solve large-scale challenges. GraphQL is one such project and community and the GraphQL Foundation will help ensure GraphQL continues to solve the real data fetching challenges that developers will face in building the products of tomorrow,” said Killian Murphy, Director, Facebook Open Source.</p>
</blockquote>
<blockquote class="[&amp;:not(:first-child)]:_mt-6 _border-gray-300 _italic _text-gray-700 dark:_border-gray-700 dark:_text-gray-400 ltr:_border-l-2 ltr:_pl-6 rtl:_border-r-2 rtl:_pr-6">
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">“GraphQL has redefined how developers work with APIs and client-server interactions. We look forward to working with the diverse GraphQL community from end users like Facebook to a diverse ecosystem of vendors to become an independent foundation, draft their governance and continue to foster the growth and adoption of GraphQL,” said Chris Aniszczyk, Vice President of Developer Relations, the Linux Foundation.</p>
</blockquote>
<blockquote class="[&amp;:not(:first-child)]:_mt-6 _border-gray-300 _italic _text-gray-700 dark:_border-gray-700 dark:_text-gray-400 ltr:_border-l-2 ltr:_pl-6 rtl:_border-r-2 rtl:_pr-6">
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">“Airbnb is making a massive investment in GraphQL, putting it at the center of our API strategy across both our product and internal tools. We are excited to see the Foundation play a key role in cultivating the community around GraphQL and continue to evolve GraphQL as a technology, paving the way for continued innovation of Airbnb’s API.” — Adam Neary, Tech Lead, Airbnb</p>
</blockquote>
<blockquote class="[&amp;:not(:first-child)]:_mt-6 _border-gray-300 _italic _text-gray-700 dark:_border-gray-700 dark:_text-gray-400 ltr:_border-l-2 ltr:_pl-6 rtl:_border-r-2 rtl:_pr-6">
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">“Given GraphQL’s centrality in the modern app development stack, the foundation we’re announcing today is not just necessary, but overdue. As the creators of Apollo, the most widely used implementation of GraphQL, we’re looking forward to working together with the Linux Foundation to define appropriate governance processes for this critical Internet standard.” – Geoff Schmidt, co­-founder and CEO of Apollo GraphQL</p>
</blockquote>
<blockquote class="[&amp;:not(:first-child)]:_mt-6 _border-gray-300 _italic _text-gray-700 dark:_border-gray-700 dark:_text-gray-400 ltr:_border-l-2 ltr:_pl-6 rtl:_border-r-2 rtl:_pr-6">
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">“GraphQL, and the strong ecosystem behind it, is leading to a fundamental change in how we build products, and it helps bring together teams and organizations of every size. At Coursera, GraphQL assists us in understanding the massive breadth of our APIs and helps us create transformative educational experiences for everyone, everywhere. We’re excited to see the impact of the GraphQL Foundation in making both the technology and the community stronger.” – Jon Wong, Staff Software Engineer, Coursera</p>
</blockquote>
<blockquote class="[&amp;:not(:first-child)]:_mt-6 _border-gray-300 _italic _text-gray-700 dark:_border-gray-700 dark:_text-gray-400 ltr:_border-l-2 ltr:_pl-6 rtl:_border-r-2 rtl:_pr-6">
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">“GraphQL has come a long way since its creation in 2012. It’s been an honor seeing the technology grow from a prototype, to powering Facebook’s core applications, to an open source technology on the way to becoming a ubiquitous standard across the entire industry. The GraphQL Foundation is an exciting step forward. This new governance model is a major milestone in that maturation process that will ensure a neutral venue and structure for the entire community to drive the technology forward.” – Nick Schrock, Founder, Elementl, GraphQL Co-Creator</p>
</blockquote>
<blockquote class="[&amp;:not(:first-child)]:_mt-6 _border-gray-300 _italic _text-gray-700 dark:_border-gray-700 dark:_text-gray-400 ltr:_border-l-2 ltr:_pl-6 rtl:_border-r-2 rtl:_pr-6">
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">“We created GraphQL at Facebook six years ago to help us build high-performance mobile experiences, so to see it grow and gain broad industry adoption has been amazing. Since Facebook open-sourced GraphQL in 2015, the community has grown to include developers around the world, newly-founded startups, and well-established companies. The creation of the GraphQL Foundation is a new chapter that will create a governance structure we believe will empower the community and provide GraphQL long-term technical success. I’m excited to see its continued growth under the Foundation’s guidance.” – Dan Schafer, Facebook Software Engineer, GraphQL Co-Creator</p>
</blockquote>
<blockquote class="[&amp;:not(:first-child)]:_mt-6 _border-gray-300 _italic _text-gray-700 dark:_border-gray-700 dark:_text-gray-400 ltr:_border-l-2 ltr:_pl-6 rtl:_border-r-2 rtl:_pr-6">
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">“GraphQL has proven to be a valuable, extensible tool for GitHub, our customers, and our integrators over the past two years. The GraphQL Foundation embodies openness, transparency, and community — all of which we believe in at GitHub.” – Kyle Daigle, Director, Ecosystem Engineering, GitHub</p>
</blockquote>
<blockquote class="[&amp;:not(:first-child)]:_mt-6 _border-gray-300 _italic _text-gray-700 dark:_border-gray-700 dark:_text-gray-400 ltr:_border-l-2 ltr:_pl-6 rtl:_border-r-2 rtl:_pr-6">
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">“This is a very welcome announcement, and we believe that this is a necessary step. The GraphQL community has grown rapidly over the last few years, and has reached the point where transparent, neutral governance policies are necessary for future growth. At Hasura, we look forward to helping the Foundation in its work.” – Tanmai Gopal, CEO, Hasura</p>
</blockquote>
<blockquote class="[&amp;:not(:first-child)]:_mt-6 _border-gray-300 _italic _text-gray-700 dark:_border-gray-700 dark:_text-gray-400 ltr:_border-l-2 ltr:_pl-6 rtl:_border-r-2 rtl:_pr-6">
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">“GraphQL has become one of the most important technologies in the modern application development stack and sees rapid adoption by developers and companies across all industries. At Prisma, we’re very excited to support the GraphQL Foundation to enable a healthy community and sustain the continuous development of GraphQL.” – Johannes Schickling, Founder and CEO, Prisma</p>
</blockquote>
<blockquote class="[&amp;:not(:first-child)]:_mt-6 _border-gray-300 _italic _text-gray-700 dark:_border-gray-700 dark:_text-gray-400 ltr:_border-l-2 ltr:_pl-6 rtl:_border-r-2 rtl:_pr-6">
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">“At Shopify, GraphQL powers our core APIs and all our mobile and web clients. We strongly believe in open development and look to the Foundation to help expand the community and nurture its evolution.” – Jean-Michel Lemieux, SVP Engineering, Shopify</p>
</blockquote>
<blockquote class="[&amp;:not(:first-child)]:_mt-6 _border-gray-300 _italic _text-gray-700 dark:_border-gray-700 dark:_text-gray-400 ltr:_border-l-2 ltr:_pl-6 rtl:_border-r-2 rtl:_pr-6">
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">“GraphQL is gaining tremendous adoption as one of the best protocols for remote retrieval of large object graphs. At Twitter, we are looking forward to what’s to come in the GraphQL ecosystem and are very excited to support the GraphQL Foundation.” – Anna Sulkina Sr. Engineering Manager, Core Services Group, Twitter</p>
</blockquote>
<p><a title="GraphiQL 5 Released; Press F1!" class="gql-focus-visible typography-link flex max-w-[50%] items-center gap-2 border border-neu-200 pr-2 text-left text-base no-underline hover:bg-neu-50 hover:ring hover:ring-neu-100 dark:border-neu-100 dark:hover:bg-neu-50/50 dark:hover:ring-neu-50" href="https://graphql.org/blog/2025-07-17-graphiql-5/">GraphiQL 5 Released; Press F1!</a><a title="Seeking GraphQL Subject Matter Experts" class="gql-focus-visible typography-link ml-auto flex max-w-[50%] items-center gap-2 border border-neu-200 pl-2 text-left text-base no-underline hover:bg-neu-50 hover:ring hover:ring-neu-100 dark:border-neu-100 dark:hover:bg-neu-50/50 dark:hover:ring-neu-50" href="https://graphql.org/blog/2025-04-02-seeking-graphql-subject-matter-experts/">Seeking GraphQL Subject Matter Experts</a></p>]]></description>
      <link>https://graphql.org/blog/2018-11-06-linux-foundation-graphql</link>
      <guid>https://graphql.org/blog/2018-11-06-linux-foundation-graphql</guid>
      <pubDate>Tue, 06 Nov 2018 01:00:00 +0100</pubDate>
    </item>
    <item>
      <title><![CDATA[eWeek: GraphQL API Specification Moving Forward with Independent Foundation]]></title>
      <description><![CDATA[<main class="w-full min-w-0 max-w-6xl px-6 pt-4 md:px-12"><p><a title="Blog" class="text-neu-700 dark:text-neu-400 min-w-6 last:text-neu-800 dark:last:text-neu-800 leading-none whitespace-pre gql-focus-visible ring-inset hover:text-neu-900 hover:underline underline-offset-2 shrink-0" href="https://graphql.org/blog/">Blog</a></p>
<p><a class="gql-focus-visible -m-1 flex p-1 ring-inset ring-neu-400 transition-opacity duration-75 hover:ring focus:!outline-offset-0 dark:ring-neu-50 [:has(&gt;:hover)&gt;&amp;:not(:hover)]:opacity-70" href="https://graphql.org/tags/in-the-news/">in the news</a></p>
<p>eweek<time datetime="2018-11-06T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">November 6, 2018</time></p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The Linux Foundation announced on Nov. 6 that it is forming a new foundation to support the open source GraphQL specification, which enables a new generation of APIs. For nearly two decades, REST (Representational State Transfer) has been one of the primary approaches for enabling APIs that help to connect and extend applications and web services. REST however has multiple limitations, which is where GraphQL steps into the picture, finding wide adoption by large web properties. GraphQL was created in 2012 by Facebook and became open source in 2015. The move to create a new vendor-neutral independent foundation under the Linux Foundation will serve to help further advance the development of GraphQL.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7"><a rel="noopener noreferrer" target="_blank" href="https://eweek.com/development/graphql-api-specification-moving-forward-with-independent-foundation" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">Read more</a></p>
<p><a title="GraphiQL 5 Released; Press F1!" class="gql-focus-visible typography-link flex max-w-[50%] items-center gap-2 border border-neu-200 pr-2 text-left text-base no-underline hover:bg-neu-50 hover:ring hover:ring-neu-100 dark:border-neu-100 dark:hover:bg-neu-50/50 dark:hover:ring-neu-50" href="https://graphql.org/blog/2025-07-17-graphiql-5/">GraphiQL 5 Released; Press F1!</a><a title="Seeking GraphQL Subject Matter Experts" class="gql-focus-visible typography-link ml-auto flex max-w-[50%] items-center gap-2 border border-neu-200 pl-2 text-left text-base no-underline hover:bg-neu-50 hover:ring hover:ring-neu-100 dark:border-neu-100 dark:hover:bg-neu-50/50 dark:hover:ring-neu-50" href="https://graphql.org/blog/2025-04-02-seeking-graphql-subject-matter-experts/">Seeking GraphQL Subject Matter Experts</a></p>
</main>]]></description>
      <link>https://graphql.org/blog/2018-11-06-eweek</link>
      <guid>https://graphql.org/blog/2018-11-06-eweek</guid>
      <pubDate>Tue, 06 Nov 2018 01:00:00 +0100</pubDate>
    </item>
    <item>
      <title><![CDATA[ProgrammableWeb: GraphQL Moving to Neutral, Open-Source Foundation]]></title>
      <description><![CDATA[<main class="w-full min-w-0 max-w-6xl px-6 pt-4 md:px-12"><p><a title="Blog" class="text-neu-700 dark:text-neu-400 min-w-6 last:text-neu-800 dark:last:text-neu-800 leading-none whitespace-pre gql-focus-visible ring-inset hover:text-neu-900 hover:underline underline-offset-2 shrink-0" href="https://graphql.org/blog/">Blog</a></p>
<p><a class="gql-focus-visible -m-1 flex p-1 ring-inset ring-neu-400 transition-opacity duration-75 hover:ring focus:!outline-offset-0 dark:ring-neu-50 [:has(&gt;:hover)&gt;&amp;:not(:hover)]:opacity-70" href="https://graphql.org/tags/in-the-news/">in the news</a></p>
<p>ProgrammableWeb<time datetime="2017-11-08T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">November 8, 2017</time></p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">GraphQL will now have its own foundation: the <a class="gql-focus-visible typography-link text-neu-900 underline-offset-2" href="https://graphql.org/foundation/">GraphQL Foundation</a>. Although GraphQL was initially incubated by Facebook, GraphQL is now utilized heavily by a diverse set of companies including major tech giants (e.g. Twitter, Airbnb, Shopify, etc.). Accordingly, it makes sense that the data query language move to a neutral, open source home. Like many open source projects, the GraphQL Foundation will be hosted by the Linux Foundation. Linux will implement an open governance model similar to many collaborations overseen by Linux. The exact details of the model, and future plans continue to be a work in progress. The current founding members include Airbnb, Apollo, Coursera, Elementl, Facebook, GitHub, Hasura, Prisma, Shopify and Twitter.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7"><a rel="noopener noreferrer" target="_blank" href="https://programmableweb.com/news/graphql-moving-to-neutral-open-source-foundation/brief/2018/11/08" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">Read More</a></p>
<p><a title="GraphiQL 5 Released; Press F1!" class="gql-focus-visible typography-link flex max-w-[50%] items-center gap-2 border border-neu-200 pr-2 text-left text-base no-underline hover:bg-neu-50 hover:ring hover:ring-neu-100 dark:border-neu-100 dark:hover:bg-neu-50/50 dark:hover:ring-neu-50" href="https://graphql.org/blog/2025-07-17-graphiql-5/">GraphiQL 5 Released; Press F1!</a><a title="Seeking GraphQL Subject Matter Experts" class="gql-focus-visible typography-link ml-auto flex max-w-[50%] items-center gap-2 border border-neu-200 pl-2 text-left text-base no-underline hover:bg-neu-50 hover:ring hover:ring-neu-100 dark:border-neu-100 dark:hover:bg-neu-50/50 dark:hover:ring-neu-50" href="https://graphql.org/blog/2025-04-02-seeking-graphql-subject-matter-experts/">Seeking GraphQL Subject Matter Experts</a></p>
</main>]]></description>
      <link>https://graphql.org/blog/2017-11-08-programmable-web</link>
      <guid>https://graphql.org/blog/2017-11-08-programmable-web</guid>
      <pubDate>Wed, 08 Nov 2017 01:00:00 +0100</pubDate>
    </item>
    <item>
      <title><![CDATA[Leaving technical preview]]></title>
      <description><![CDATA[<p><a title="Blog" class="text-neu-700 dark:text-neu-400 min-w-6 last:text-neu-800 dark:last:text-neu-800 leading-none whitespace-pre gql-focus-visible ring-inset hover:text-neu-900 hover:underline underline-offset-2 shrink-0" href="https://graphql.org/blog/">Blog</a></p><p><a class="gql-focus-visible -m-1 flex p-1 ring-inset ring-neu-400 transition-opacity duration-75 hover:ring focus:!outline-offset-0 dark:ring-neu-50 [:has(&gt;:hover)&gt;&amp;:not(:hover)]:opacity-70" href="https://graphql.org/tags/blog/">blog</a></p>
<p>Lee Byron<time datetime="2016-09-14T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">September 14, 2016</time></p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">After over a year of being open sourced we’re bringing GraphQL out of “technical preview” and relaunching <a class="gql-focus-visible typography-link text-neu-900 underline-offset-2" href="https://graphql.org/">graphql.org</a>.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">For us at Facebook, GraphQL isn’t a new technology. GraphQL has been delivering data to mobile News Feed since 2012. Since then it’s expanded to support the majority of the Facebook mobile product and evolved in the process.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Early last year when we first <a rel="noopener noreferrer" target="_blank" href="https://youtube.com/watch?v=9sc8Pyc51uU" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">spoke publicly about GraphQL</a> we received overwhelming demand to share more about this technology. That sparked an internal project to revisit GraphQL, make improvements, draft a specification, produce a reference implementation you could use to try it out, and build new versions of some of our favorite tools, like <a rel="noopener noreferrer" target="_blank" href="https://github.com/graphql/graphiql" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">GraphiQL</a>. We moved quickly, and released parts that were ready along the way.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Part of Facebook’s open source philosophy is that we want to only open source what is ready for production. While it’s true that we had been using GraphQL in production at Facebook for years, we knew that these newly released pieces had yet to be proven. We expected feedback. So we carefully released GraphQL as a “technical preview.”</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Exactly one year ago, we published graphql.org, with a <a class="gql-focus-visible typography-link text-neu-900 underline-offset-2" href="https://graphql.org/blog/graphql-a-query-language/">formal announcement</a> that GraphQL was open source and ready to be “technically previewed”. Since then, we’ve seen GraphQL implemented <a class="gql-focus-visible typography-link text-neu-900 underline-offset-2" href="https://graphql.org/code/">in many languages</a>, and successfully adopted by other companies. That includes today’s exciting announcement of the <a rel="noopener noreferrer" target="_blank" href="http://githubengineering.com/the-github-graphql-api" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">GitHub GraphQL API</a>, the first major public API to use GraphQL.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">In recognition of the fact that GraphQL is now being used in production by many companies, we’re excited to remove the “technical preview” moniker. GraphQL is production ready.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">We’ve also revamped this website, <a class="gql-focus-visible typography-link text-neu-900 underline-offset-2" href="https://graphql.org/">graphql.org</a>, with clearer and more relevant content in response to some the most common questions we’ve received over the last year.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">We think GraphQL can greatly simplify data needs for both client product developers and server-side engineers, regardless of what languages you’re using in either environment, and we’re excited to continue to improve GraphQL, support the already growing community, and see what we can build together.</p>
<p><a title="GraphiQL 5 Released; Press F1!" class="gql-focus-visible typography-link flex max-w-[50%] items-center gap-2 border border-neu-200 pr-2 text-left text-base no-underline hover:bg-neu-50 hover:ring hover:ring-neu-100 dark:border-neu-100 dark:hover:bg-neu-50/50 dark:hover:ring-neu-50" href="https://graphql.org/blog/2025-07-17-graphiql-5/">GraphiQL 5 Released; Press F1!</a><a title="Seeking GraphQL Subject Matter Experts" class="gql-focus-visible typography-link ml-auto flex max-w-[50%] items-center gap-2 border border-neu-200 pl-2 text-left text-base no-underline hover:bg-neu-50 hover:ring hover:ring-neu-100 dark:border-neu-100 dark:hover:bg-neu-50/50 dark:hover:ring-neu-50" href="https://graphql.org/blog/2025-04-02-seeking-graphql-subject-matter-experts/">Seeking GraphQL Subject Matter Experts</a></p>]]></description>
      <link>https://graphql.org/blog/2016-09-14-production-ready</link>
      <guid>https://graphql.org/blog/2016-09-14-production-ready</guid>
      <pubDate>Wed, 14 Sep 2016 02:00:00 +0200</pubDate>
    </item>
    <item>
      <title><![CDATA[Wrapping a REST API in GraphQL]]></title>
      <description><![CDATA[<p><a title="Blog" class="text-neu-700 dark:text-neu-400 min-w-6 last:text-neu-800 dark:last:text-neu-800 leading-none whitespace-pre gql-focus-visible ring-inset hover:text-neu-900 hover:underline underline-offset-2 shrink-0" href="https://graphql.org/blog/">Blog</a></p><p><a class="gql-focus-visible -m-1 flex p-1 ring-inset ring-neu-400 transition-opacity duration-75 hover:ring focus:!outline-offset-0 dark:ring-neu-50 [:has(&gt;:hover)&gt;&amp;:not(:hover)]:opacity-70" href="https://graphql.org/tags/blog/">blog</a></p>
<p>Steven Luscher<time datetime="2016-05-05T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">May 5, 2016</time></p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Time and time again I hear the same aspiration from front-end web and mobile developers: they’re eager to reap the developer efficiency gains offered by new technologies like Relay and GraphQL, but they have years of momentum behind their existing REST API. Without data that clearly demonstrates the benefits of switching, they find it hard to justify an additional investment in GraphQL infrastructure.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">In this post I will outline a rapid, low-investment method that you can use to stand up a GraphQL endpoint atop an existing REST API, using JavaScript alone. No backend developers will be harmed during the making of this blog post.</p>
<h2 id="a-client-side-rest-wrapper" class="typography-h3 mt-10 text-neu-900">A client-side REST wrapper</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">We’re going to create a <em>GraphQL schema</em> – a type system that describes your universe of data – that wraps calls to your existing REST API. This schema will receive and resolve GraphQL queries all on the client side. This architecture features some inherent performance flaws, but is fast to implement and requires no server changes.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Imagine a REST API that exposes a  endpoint through which you can browse  models and their associated friends.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7"><img alt="A REST API that exposes an index of people" width="1280" height="800" data-nimg="1" class="c3" srcset="/_next/image/?url=%2F_next%2Fstatic%2Fmedia%2Frest-api-people.c2b56e20.png&amp;w=1920&amp;q=75 1x, /_next/image/?url=%2F_next%2Fstatic%2Fmedia%2Frest-api-people.c2b56e20.png&amp;w=3840&amp;q=75 2x" src="https://graphql.org/_next/image/?url=%2F_next%2Fstatic%2Fmedia%2Frest-api-people.c2b56e20.png&amp;w=3840&amp;q=75" /></p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">We will build a GraphQL schema that models people and their attributes (like  and ) as well as their association to other people through friendships.</p>
<h3 id="installation" class="typography-body-lg mt-8 text-neu-900">Installation</h3>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">First we’ll need a set of schema building tools.</p>
<h3 id="building-the-graphql-schema" class="typography-body-lg mt-8 text-neu-900">Building the GraphQL Schema</h3>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Ultimately we will want to export a  that we can use to resolve queries.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">At the root of all GraphQL schemas is a type called  whose definition we provide, and have specified here as . Let’s build  now – a type on which we will define all the possible things one might want to fetch.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">To replicate all of the functionality of our REST API, let’s expose two fields on :</p>
<ul class="[:is(ol,ul)_&amp;]:_my-3 [&amp;:not(:first-child)]:_mt-6 _list-disc ltr:_ml-6 rtl:_mr-6"><li class="_my-2">an  field – analogous to </li>
<li class="_my-2">a  field – analogous to </li>
</ul><p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Each field will consist of a return type, optional argument definitions, and a JavaScript method that resolves the data being queried for.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Let’s leave the resolvers as a sketch for now, and move on to defining .</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Note two things about the definition of . Firstly, we have not supplied a resolver for , , or . The default resolver simply accesses the property of the  object that has the same name as the field. This works everywhere except where the property names do not match the field name (eg. the field  does not match the  property of the response object from the REST API) or where accessing the property would not yield the object that we want (eg. we want a list of person objects for the  field, not a list of URLs).</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Now, let’s write resolvers that fetch people from the REST API. Because we need to load from the network, we won’t be able to return a value right away. Luckily for us,  can return either a value or a  for a value. We’re going to take advantage of this to fire off an HTTP request to the REST API that eventually resolves to a JavaScript object that conforms to .</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">And here we have it – a complete first-pass at the schema:</p>
<h3 id="using-a-client-side-schema-with-relay" class="typography-body-lg mt-8 text-neu-900">Using a client-side schema with Relay</h3>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Normally, Relay will send its GraphQL queries to a server over HTTP. We can inject <a rel="noopener noreferrer" target="_blank" href="https://github.com/taion/" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">@taion</a>’s custom  network layer to resolve queries using the schema we just built. Put this code wherever it’s guaranteed to be executed before you mount your Relay app.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">And that’s that. Relay will send all of its queries to your custom client-resident schema, which will in turn resolve them by making calls to your existing REST API.</p>
<h2 id="a-server-side-rest-wrapper" class="typography-h3 mt-10 text-neu-900">A server-side REST wrapper</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The client-side REST API wrapper demonstrated above should help you get up and running quickly so that you can try out a Relay version of your app (or part of your app).</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">However, as we mentioned before, this architecture features some inherent performance flaws because of how GraphQL is still calling your underlying REST API which can be very network intensive. A good next step is to move the schema from the client side to the server side to minimize latency on the network and to give you more power to cache responses.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Take the next 10 minutes to watch me build a server side version of the GraphQL wrapper above using Node and Express.</p>
<iframe class="aspect-video w-full" src="https://youtube.com/embed/UBGzsb2UkeY?autoplay=0&amp;origin=http://graphql.org&amp;start=900">[embedded content]</iframe>
<h2 id="bonus-round-a-truly-relay-compliant-schema" class="typography-h3 mt-10 text-neu-900">Bonus round: A truly Relay compliant schema</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The schema we developed above will work for Relay up until a certain point – the point at which you ask Relay to refetch data for records you’ve already downloaded. Relay’s refetching subsystem relies on your GraphQL schema exposing a special field that can fetch any entity in your data universe by GUID. We call this the <em>node interface</em>.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">To expose a node interface requires that you do two things: offer a  field at the root of the query, and switch all of your ids over to GUIDs (globally-unique ids).</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The  package contains some helper functions to make this easy to do.</p>
<h4 id="global-ids" class="typography-body-md font-semibold mt-8 text-neu-900">Global ids</h4>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">First, let’s change the  field of  into a GUID. To do this, we’ll use the  helper from .</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Behind the scenes  returns a field definition that resolves  to a  by hashing together the typename  and the id returned by the REST API. We can later use  to convert the result of this field back into  and the REST API’s id.</p>
<h4 id="the-node-field" class="typography-body-md font-semibold mt-8 text-neu-900">The node field</h4>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Another set of helpers from  will give us a hand developing the node field. Your job is to supply the helper two functions:</p>
<ul class="[:is(ol,ul)_&amp;]:_my-3 [&amp;:not(:first-child)]:_mt-6 _list-disc ltr:_ml-6 rtl:_mr-6"><li class="_my-2">One function that can resolve an object given a GUID.</li>
<li class="_my-2">One function that can resolve a typename given an object.</li>
</ul>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The object-to-typename resolver above is no marvel of engineering, but you get the idea.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Next, we simply need to add the  and the  to our schema. A complete example follows:</p>
<h2 id="taming-pathological-queries" class="typography-h3 mt-10 text-neu-900">Taming pathological queries</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Consider the following friends-of-friends-of-friends query:</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The schema we created above will generate multiple round trips to the REST API for the same data.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7"><img alt="Duplicate queries to the REST API" width="1280" height="796" data-nimg="1" class="c5" srcset="/_next/image/?url=%2F_next%2Fstatic%2Fmedia%2Fpathological-query.2de43465.png&amp;w=1920&amp;q=75 1x, /_next/image/?url=%2F_next%2Fstatic%2Fmedia%2Fpathological-query.2de43465.png&amp;w=3840&amp;q=75 2x" src="https://graphql.org/_next/image/?url=%2F_next%2Fstatic%2Fmedia%2Fpathological-query.2de43465.png&amp;w=3840&amp;q=75" /></p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">This is obviously something we would like to avoid! At the very least, we need a way to cache the result of these requests.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">We created a library called DataLoader to help tame these sorts of queries.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">As a special note, make sure that your runtime offers native or polyfilled versions of  and . Read more <a rel="noopener noreferrer" target="_blank" href="https://github.com/facebook/dataloader#getting-started" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">at the DataLoader site</a>.</p>
<h4 id="creating-a-data-loader" class="typography-body-md font-semibold mt-8 text-neu-900">Creating a data loader</h4>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">To create a  you supply a method that can resolve a list of objects given a list of keys. In our example, the keys are URLs at which we access our REST API.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">If this data loader sees a key more than once in its lifetime, it will return a memoized (cached) version of the response.</p>
<h4 id="loading-data" class="typography-body-md font-semibold mt-8 text-neu-900">Loading data</h4>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">We can make use of the  and  methods on  to load URLs without fear of hitting the REST API more than once per URL. A complete example follows:</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Now, our pathological query produces the following nicely de-duped set of requests to the REST API:</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7"><img alt="De-duped queries to the REST API" width="1280" height="780" data-nimg="1" class="c6" srcset="/_next/image/?url=%2F_next%2Fstatic%2Fmedia%2Fdataloader-query.9c90539e.png&amp;w=1920&amp;q=75 1x, /_next/image/?url=%2F_next%2Fstatic%2Fmedia%2Fdataloader-query.9c90539e.png&amp;w=3840&amp;q=75 2x" src="https://graphql.org/_next/image/?url=%2F_next%2Fstatic%2Fmedia%2Fdataloader-query.9c90539e.png&amp;w=3840&amp;q=75" /></p>
<h3 id="query-planning-and-beyond" class="typography-body-lg mt-8 text-neu-900">Query planning and beyond</h3>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Consider that your REST API might already offer configuration offers that let you eagerly load associations. Maybe to load a person and all of their direct friends you might hit the URL . To take advantage of this in your GraphQL schema you will need the ability to develop a resolution plan based on the structure of the query itself (eg. whether the  field is part of the query or not).</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">For those interested in the current thinking around advanced resolution strategies, keep an eye on <a rel="noopener noreferrer" target="_blank" href="https://github.com/graphql/graphql-js/pull/304" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">pull request #304</a>.</p>
<h2 id="thanks-for-reading" class="typography-h3 mt-10 text-neu-900">Thanks for reading</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">I hope that this demonstration has torn down some of the barriers between you and a functional GraphQL endpoint, and has inspired you to experiment with GraphQL and Relay on an existing project.</p>
<p><a title="GraphiQL 5 Released; Press F1!" class="gql-focus-visible typography-link flex max-w-[50%] items-center gap-2 border border-neu-200 pr-2 text-left text-base no-underline hover:bg-neu-50 hover:ring hover:ring-neu-100 dark:border-neu-100 dark:hover:bg-neu-50/50 dark:hover:ring-neu-50" href="https://graphql.org/blog/2025-07-17-graphiql-5/">GraphiQL 5 Released; Press F1!</a><a title="Seeking GraphQL Subject Matter Experts" class="gql-focus-visible typography-link ml-auto flex max-w-[50%] items-center gap-2 border border-neu-200 pl-2 text-left text-base no-underline hover:bg-neu-50 hover:ring hover:ring-neu-100 dark:border-neu-100 dark:hover:bg-neu-50/50 dark:hover:ring-neu-50" href="https://graphql.org/blog/2025-04-02-seeking-graphql-subject-matter-experts/">Seeking GraphQL Subject Matter Experts</a></p>]]></description>
      <link>https://graphql.org/blog/2016-05-02-rest-api-graphql-wrapper</link>
      <guid>https://graphql.org/blog/2016-05-02-rest-api-graphql-wrapper</guid>
      <pubDate>Thu, 05 May 2016 02:00:00 +0200</pubDate>
    </item>
    <item>
      <title><![CDATA[Mocking your server is easy with GraphQL]]></title>
      <description><![CDATA[<p><a title="Blog" class="text-neu-700 dark:text-neu-400 min-w-6 last:text-neu-800 dark:last:text-neu-800 leading-none whitespace-pre gql-focus-visible ring-inset hover:text-neu-900 hover:underline underline-offset-2 shrink-0" href="https://graphql.org/blog/">Blog</a></p><p><a class="gql-focus-visible -m-1 flex p-1 ring-inset ring-neu-400 transition-opacity duration-75 hover:ring focus:!outline-offset-0 dark:ring-neu-50 [:has(&gt;:hover)&gt;&amp;:not(:hover)]:opacity-70" href="https://graphql.org/tags/blog/">blog</a><a class="gql-focus-visible -m-1 flex p-1 ring-inset ring-neu-400 transition-opacity duration-75 hover:ring focus:!outline-offset-0 dark:ring-neu-50 [:has(&gt;:hover)&gt;&amp;:not(:hover)]:opacity-70" href="https://graphql.org/tags/frontend/">frontend</a></p>
<p>Jonas Helfer<time datetime="2016-04-19T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">April 19, 2016</time></p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Do you think mocking your backend is always a tedious task? If you do, reading this post might change your mind…</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Mocking is the practice of creating a fake version of a component, so that you can develop and test other parts of your application independently. Mocking your backend is a great way to quickly build a prototype of your frontend, and it lets you test your frontend without starting up any servers. API mocking is so useful that a <a rel="noopener noreferrer" target="_blank" href="https://www.google.com/?ion=1&amp;espv=2#q=mock+rest+api" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">quick Google search</a> will turn up dozens of expensive products and services that promise to help you.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Sadly, I think none of the solutions out there make it as easy as it should be. As it turns out, that’s because they’ve been trying to do it with the wrong technology!</p>
<blockquote class="[&amp;:not(:first-child)]:_mt-6 _border-gray-300 _italic _text-gray-700 dark:_border-gray-700 dark:_text-gray-400 ltr:_border-l-2 ltr:_pl-6 rtl:_border-r-2 rtl:_pr-6">
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Editor’s note : The concepts in this post are accurate, but some the code samples don’t demonstrate new usage patterns. After reading, consult the <a rel="noopener noreferrer" target="_blank" href="http://dev.apollodata.com/tools/graphql-tools/mocking.html" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">graphql-tools docs</a> to see how to use mocking today.</p>
</blockquote>
<h2 id="why-mock" class="typography-h3 mt-10 text-neu-900">Why mock?</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Mocking the data a backend would return is very useful for two main reasons:</p>
<ol class="[:is(ol,ul)_&amp;]:_my-3 [&amp;:not(:first-child)]:_mt-6 _list-decimal ltr:_ml-6 rtl:_mr-6"><li class="_my-2">It lets you start developing a frontend feature when you don’t have a working backend for it yet. This is critical for projects where the frontend and backend components are often developed in parallel.</li>
<li class="_my-2">It lets you run tests locally without connecting to a real backend, which is much faster and safer. As your codebase grows and your app becomes more complex, starting up all of the server infrastructure just to run some tests isn’t feasible.</li>
</ol><p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">If mocking your backend API has such clear benefits, why doesn’t everyone do it? I think it’s because mocking often seems like too much trouble to be worth it.</p>
<h2 id="why-is-mocking-backends-hard" class="typography-h3 mt-10 text-neu-900">Why is mocking backends hard?</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Let’s say your backend is some REST API that is called over HTTP from the browser. You have someone working on the backend, and someone else working on the frontend. The backend code actually determines the shape of the data returned for each REST endpoint, but mocking has to be done in the frontend code. That means the mocking code will break every time the backend changes, unless both are changed at the same time. What’s worse, if you’re doing your frontend testing against a mock backend that is not up to date with your backend, your tests may pass, but your actual frontend won’t work.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Rather than having to keep more dependencies up to date, the easy option is to just not mock the REST API, or have the backend be in charge of mocking itself, just so it’s all in one place. That may be easier, but it will also slow you down.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The other reason I often hear for why people don’t mock the backend in their project is because it takes time to set up: first you have to include extra logic in your data fetching layer that lets you turn mocking on and off, and second you have to actually describe what that mock data should look like. For any non-trivial API that requires a lot of tedious work.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Both of these reasons for why mocking backends is hard are actually due to the same underlying reason: there is no standard REST API description in machine-consumable format and contains all the information necessary for mocking and can be used by both the backend and the frontend. There are some API description standards, like Swagger, but they don’t contain all of the information you need, and can be cumbersome to write and maintain. Unless you want to pay for a service or a product — and maybe even then — mocking is a lot of work.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Actually, I should say mocking used to be a lot of work, because a new technology is changing the way we think of APIs: GraphQL.</p>
<h2 id="mocking-is-easy-with-a-type-system" class="typography-h3 mt-10 text-neu-900">Mocking is easy with a type system!</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">GraphQL makes mocking easy, because every GraphQL backend comes with a static type system. The types can be shared between your backend and your frontend, and they contain all of the information necessary to make mocking incredibly fast and convenient. With GraphQL, there is no excuse to not mock your backend for development or testing.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Here’s how easy it is to create a mocked backend that will accept any valid GraphQL query with the GraphQL mocking tool we are building as part of our new <a rel="noopener noreferrer" target="_blank" href="https://github.com/apollostack/graphql-tools" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">GraphQL server toolkit</a>:</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Every GraphQL server needs a schema, so it’s not extra code you need to write just for mocking. And the query is the one your component already uses for fetching data, so that’s also not code you write just for mocking. Not counting the import statement, it only took us one line of code to mock the entire backend!</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Put that in contrast to most REST APIs out there, where mocking means parsing a URL and returning data in a custom shape for each endpoint. It takes dozens of lines to mock a single endpoint that returns some realistic-looking data. With GraphQL, the shape is encoded in the query, and together with the schema we have enough information to mock the server with a single line of code.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Did I mention that this one line is all you need to return mock data for any valid GraphQL query you could send? Not just some valid query, any valid query! Pretty cool, right?</p>
<h2 id="customizing-mock-data" class="typography-h3 mt-10 text-neu-900">Customizing mock data</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">In the example above, the mock server will return completely random IDs and strings every time you query it. When you’ve just started building your app and only want to see what your UI code looks like in different states, that’s probably good enough, but as you start to fine-tune your layout, or want to use the mock server to test your component’s logic, you’ll probably need more realistic data.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Luckily, this takes only a little more effort: customization of mock data is really where the Apollo mocking tool shines, because it lets you customize virtually everything about the mock data that it returns.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">It lets you do all of the following and more:</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">For each type and each field you can provide a function that will be called on to generate mock data. Mock functions on fields have precedence over mock functions on types, but they work together really nicely: The field mock functions only need to describe the properties of the objects that matter to them, type mock functions will fill in the rest.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The mock functions are actually just GraphQL resolve functions in disguise. What that means is that your mocking can do anything that you could do inside a GraphQL resolve function. If you wanted, you could write your entire backend with it. I’m not saying you should, but you could.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">I think the real power of this tool is that while it allows almost arbitrarily complex customization, you can get started really quickly and increase the sophistication of your mocks in tiny steps whenever you need it. Each step is so simple that it will feel like a breeze.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">But enough talking, here’s a complete example:</p>
<h2 id="live-demo--try-it-yourself" class="typography-h3 mt-10 text-neu-900">Live demo + try it yourself</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">To see the example in action and see what output it generates, head over to the <a rel="noopener noreferrer" target="_blank" href="https://launchpad.graphql.com/98lq7vz8r" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">live demo</a> try running some queries!</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">If you want to fiddle around with the example, just click the “Download” button in the Launchpad UI. If you’re curious about how it works or want to see what other tools we’re building for GraphQL, then head over to <a rel="noopener noreferrer" target="_blank" href="https://github.com/apollostack/graphql-tools" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">apollostack/graphql-tools</a>.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Pretty cool, right? All of that becomes possible by using a type system. And that’s only just the beginning — we‘re working on bridging the gap between mocking and the real thing so that your mock server can gradually turn into your real server as you add more functionality to it.</p>
<hr class="_my-8 _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400" /><p class="[&amp;:not(:first-child)]:_mt-6 _leading-7"><em>This post was originally published on <a rel="noopener noreferrer" target="_blank" href="https://medium.com/apollo-stack" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">the Apollo Blog</a>. We publish one or two posts every week, about the stuff we’re working on and thinking about.</em></p>
<p><a title="GraphiQL 5 Released; Press F1!" class="gql-focus-visible typography-link flex max-w-[50%] items-center gap-2 border border-neu-200 pr-2 text-left text-base no-underline hover:bg-neu-50 hover:ring hover:ring-neu-100 dark:border-neu-100 dark:hover:bg-neu-50/50 dark:hover:ring-neu-50" href="https://graphql.org/blog/2025-07-17-graphiql-5/">GraphiQL 5 Released; Press F1!</a><a title="Seeking GraphQL Subject Matter Experts" class="gql-focus-visible typography-link ml-auto flex max-w-[50%] items-center gap-2 border border-neu-200 pl-2 text-left text-base no-underline hover:bg-neu-50 hover:ring hover:ring-neu-100 dark:border-neu-100 dark:hover:bg-neu-50/50 dark:hover:ring-neu-50" href="https://graphql.org/blog/2025-04-02-seeking-graphql-subject-matter-experts/">Seeking GraphQL Subject Matter Experts</a></p>]]></description>
      <link>https://graphql.org/blog/2016-04-19-mocking</link>
      <guid>https://graphql.org/blog/2016-04-19-mocking</guid>
      <pubDate>Tue, 19 Apr 2016 02:00:00 +0200</pubDate>
    </item>
    <item>
      <title><![CDATA[Subscriptions in GraphQL and Relay]]></title>
      <description><![CDATA[<p><a title="Blog" class="text-neu-700 dark:text-neu-400 min-w-6 last:text-neu-800 dark:last:text-neu-800 leading-none whitespace-pre gql-focus-visible ring-inset hover:text-neu-900 hover:underline underline-offset-2 shrink-0" href="https://graphql.org/blog/">Blog</a></p><p><a class="gql-focus-visible -m-1 flex p-1 ring-inset ring-neu-400 transition-opacity duration-75 hover:ring focus:!outline-offset-0 dark:ring-neu-50 [:has(&gt;:hover)&gt;&amp;:not(:hover)]:opacity-70" href="https://graphql.org/tags/blog/">blog</a><a class="gql-focus-visible -m-1 flex p-1 ring-inset ring-neu-400 transition-opacity duration-75 hover:ring focus:!outline-offset-0 dark:ring-neu-50 [:has(&gt;:hover)&gt;&amp;:not(:hover)]:opacity-70" href="https://graphql.org/tags/spec/">spec</a><a class="gql-focus-visible -m-1 flex p-1 ring-inset ring-neu-400 transition-opacity duration-75 hover:ring focus:!outline-offset-0 dark:ring-neu-50 [:has(&gt;:hover)&gt;&amp;:not(:hover)]:opacity-70" href="https://graphql.org/tags/frontend/">frontend</a></p>
<p>Dan Schafer and Laney Kuenzel<time datetime="2015-10-16T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">October 16, 2015</time></p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">When we announced and open-sourced GraphQL and Relay this year, we described how they can be used to perform reads with queries, and to perform writes with mutations. However, oftentimes clients want to get pushed updates from the server when data they care about changes. To support that, we’ve introduced a third operation into the GraphQL specification: subscription.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The approach that we’ve taken to subscriptions parallels that of mutations; just as the list of mutations that the server supports describes all of the actions that a client can take, the list of subscriptions that the server supports describes all of the events that it can subscribe to. Just as a client can tell the server what data to refetch after it performs a mutation with a GraphQL selection, the client can tell the server what data it wants to be pushed with the subscription with a GraphQL selection.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">For example, in the Facebook schema, we have a mutation field named , that clients can use to like a post. The client might want to refetch the like count, as well as the like sentence (“Dan and 3 others like this”. We do this translation on the server because of the complexity of that translation in various languages). To do so, they would issue the following mutation:</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">But when you’re looking at a post, you also want to get pushed an update whenever someone else likes the post! That’s where subscriptions come in; the Facebook schema has a subscription field named  that allows the client to get pushed data anytime someone likes or unlikes that story! The client would create a subscription like this:</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">The client would then send this subscription to the server, along with the value for the  variable, which would contain information like the story ID to which we are subscribing:</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">At Facebook, we send this query to the server at build time to generate a unique ID for it, then subscribe to a special MQTT topic with the subscription ID in it, but many different subscription mechanisms could be used here.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">On the server, we then trigger this subscription every time someone likes a post. If all of our clients were using GraphQL, we could put this hook in the GraphQL mutation; since we have non-GraphQL clients as well, we put the hook in a layer below the GraphQL mutation to ensure it always fires.</p>
<h2 id="why-not-live-queries" class="typography-h3 mt-10 text-neu-900">Why not Live Queries?</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Notably, this approach requires the client to subscribe to events that it cares about. Another approach is to have the client subscribe to a query, and ask for updates every time the result of that query changes. Why didn’t we take that approach?</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Let’s look back at the data we wanted to refetch for the story:</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">What events could trigger that a change to the data fetched in that fragment?</p>
<ul class="[:is(ol,ul)_&amp;]:_my-3 [&amp;:not(:first-child)]:_mt-6 _list-disc ltr:_ml-6 rtl:_mr-6"><li class="_my-2">Someone likes the post.</li>
<li class="_my-2">Someone unlikes the post.</li>
<li class="_my-2">Someone who had liked the post deactivates their account (changes the like count down one, changes the like sentence to decrement the translated count).</li>
<li class="_my-2">Someone who had liked the post reactivates their account (changes the like count up one, changes the like sentence to increment the translated count).</li>
<li class="_my-2">Someone who had liked the post blocks you (cannot show them in the like sentence).</li>
<li class="_my-2">Someone who had liked the post changes their name (need to update the text of the like sentence).</li>
<li class="_my-2">Our internal ranking model for the ordering of names in the like sentence updates, and we should be listing a different person first (want to update the text of the like sentence).</li>
</ul><p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">And that’s just the tip of the iceberg in terms of events; each of those events also becomes tricky when there are thousands of people subscribed, and millions of people who liked the post. Implementing live queries for this set of data proved to be immensely complicated.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">When building event-based subscriptions, the problem of determining what should trigger an event is easy, since the event defines that explicitly. It also proved fairly straight-forward to implement atop existing message queue systems. For live queries, though, this appeared much harder. The value of our fields is determined by the result of their resolve function, and figuring out all of the things that could alter the result of that function was difficult. We could in theory have polled on the server to implement this, but that had efficiency and timeliness issues. Based on this, we decided to invest in the event-based subscription approach.</p>
<h2 id="whats-next" class="typography-h3 mt-10 text-neu-900">What’s next?</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">We’re actively building out the event-based subscription approach described above. We’ve built out live liking and commenting features on our iOS and Android apps using that approach, and are continuing to flesh out its functionality and API. While its current implementation at Facebook is coupled to Facebook’s infrastructure, we’re certainly looking forward to open sourcing our progress here as soon as we can.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Because our backend and schema don’t offer easy support for live queries, we don’t have any plans to develop them at Facebook. At the same time, it’s clear that there are backends and schemas for which live queries are feasible, and that they offer a lot of value in those situations. The discussion in the community on this topic has been fantastic, and we’re excited to see what kind of live query proposals emerge from it!</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Subscriptions create a ton of possibilities for creating truly dynamic applications. We’re excited to continue developing GraphQL and Relay with the help of the community to enable these possibilities.</p>
<p><a title="GraphiQL 5 Released; Press F1!" class="gql-focus-visible typography-link flex max-w-[50%] items-center gap-2 border border-neu-200 pr-2 text-left text-base no-underline hover:bg-neu-50 hover:ring hover:ring-neu-100 dark:border-neu-100 dark:hover:bg-neu-50/50 dark:hover:ring-neu-50" href="https://graphql.org/blog/2025-07-17-graphiql-5/">GraphiQL 5 Released; Press F1!</a><a title="Seeking GraphQL Subject Matter Experts" class="gql-focus-visible typography-link ml-auto flex max-w-[50%] items-center gap-2 border border-neu-200 pl-2 text-left text-base no-underline hover:bg-neu-50 hover:ring hover:ring-neu-100 dark:border-neu-100 dark:hover:bg-neu-50/50 dark:hover:ring-neu-50" href="https://graphql.org/blog/2025-04-02-seeking-graphql-subject-matter-experts/">Seeking GraphQL Subject Matter Experts</a></p>]]></description>
      <link>https://graphql.org/blog/2015-10-16-subscriptions</link>
      <guid>https://graphql.org/blog/2015-10-16-subscriptions</guid>
      <pubDate>Fri, 16 Oct 2015 02:00:00 +0200</pubDate>
    </item>
    <item>
      <title><![CDATA[GraphQL: A data query language]]></title>
      <description><![CDATA[<p><a title="Blog" class="text-neu-700 dark:text-neu-400 min-w-6 last:text-neu-800 dark:last:text-neu-800 leading-none whitespace-pre gql-focus-visible ring-inset hover:text-neu-900 hover:underline underline-offset-2 shrink-0" href="https://graphql.org/blog/">Blog</a></p><p><a class="gql-focus-visible -m-1 flex p-1 ring-inset ring-neu-400 transition-opacity duration-75 hover:ring focus:!outline-offset-0 dark:ring-neu-50 [:has(&gt;:hover)&gt;&amp;:not(:hover)]:opacity-70" href="https://graphql.org/tags/blog/">blog</a><a class="gql-focus-visible -m-1 flex p-1 ring-inset ring-neu-400 transition-opacity duration-75 hover:ring focus:!outline-offset-0 dark:ring-neu-50 [:has(&gt;:hover)&gt;&amp;:not(:hover)]:opacity-70" href="https://graphql.org/tags/spec/">spec</a><a class="gql-focus-visible -m-1 flex p-1 ring-inset ring-neu-400 transition-opacity duration-75 hover:ring focus:!outline-offset-0 dark:ring-neu-50 [:has(&gt;:hover)&gt;&amp;:not(:hover)]:opacity-70" href="https://graphql.org/tags/frontend/">frontend</a><a class="gql-focus-visible -m-1 flex p-1 ring-inset ring-neu-400 transition-opacity duration-75 hover:ring focus:!outline-offset-0 dark:ring-neu-50 [:has(&gt;:hover)&gt;&amp;:not(:hover)]:opacity-70" href="https://graphql.org/tags/backend/">backend</a></p>
<p>Lee Byron<time datetime="2015-09-14T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">September 14, 2015</time></p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">When we built Facebook’s mobile applications, we needed a data-fetching API powerful enough to describe all of Facebook, yet simple and easy to learn so product developers can focus on building things quickly. We developed GraphQL three years ago to fill this need. Today it powers hundreds of billions of API calls a day. This year we’ve begun the process of open-sourcing GraphQL by drafting a specification, releasing a reference implementation, and forming a community around it here at <a class="gql-focus-visible typography-link text-neu-900 underline-offset-2" href="https://graphql.org/">graphql.org</a>.</p>
<h2 id="why-graphql" class="typography-h3 mt-10 text-neu-900">Why GraphQL?</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Back in 2012, we began an effort to rebuild Facebook’s native mobile applications.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">At the time, our iOS and Android apps were thin wrappers around views of our mobile website. While this brought us close to a platonic ideal of the “write one, run anywhere” mobile application, in practice it pushed our mobile-webview apps beyond their limits. As Facebook’s mobile apps became more complex, they suffered poor performance and frequently crashed.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">As we transitioned to natively implemented models and views, we found ourselves for the first time needing an API data version of News Feed — which up until that point had only been delivered as HTML. We evaluated our options for delivering News Feed data to our mobile apps, including RESTful server resources and FQL tables (Facebook’s SQL-like API). We were frustrated with the differences between the data we wanted to use in our apps and the server queries they required. We don’t think of data in terms of resource URLs, secondary keys, or join tables; we think about it in terms of a graph of objects and the models we ultimately use in our apps like NSObjects or JSON.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">There was also a considerable amount of code to write on both the server to prepare the data and on the client to parse it. This frustration inspired a few of us to start the project that ultimately became GraphQL. GraphQL was our opportunity to rethink mobile app data-fetching from the perspective of product designers and developers. It moved the focus of development to the client apps, where designers and developers spend their time and attention.</p>
<h2 id="what-is-graphql" class="typography-h3 mt-10 text-neu-900">What is GraphQL?</h2>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">A GraphQL query is a string that is sent to a server to be interpreted and fulfilled, which then returns JSON back to the client.</p>
<div class="[&amp;:not(:first-child)]:_mt-6 grid grid-cols-2 border border-neu-200 text-sm dark:border-neu-50"><p>Operation</p><p>Response</p></div>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7"><strong>Defines a data shape:</strong> The first thing you’ll notice is that GraphQL queries mirror their response. This makes it easy to predict the shape of the data returned from a query, as well as to write a query if you know the data your app needs. More important, this makes GraphQL really easy to learn and use. GraphQL is unapologetically driven by the data requirements of products and of the designers and developers who build them.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7"><strong>Hierarchical:</strong> Another important aspect of GraphQL is its hierarchical nature. GraphQL naturally follows relationships between objects, where a RESTful service may require multiple round-trips (resource-intensive on mobile networks) or a complex join statement in SQL. This data hierarchy pairs well with graph-structured data stores and ultimately with the hierarchical user interfaces it’s used within.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7"><strong>Strongly typed:</strong> Each level of a GraphQL query corresponds to a particular type, and each type describes a set of available fields. Similar to SQL, this allows GraphQL to provide descriptive error messages before executing a query. It also plays well with the strongly typed native environments of Obj-C and Java.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7"><strong>Protocol, not storage:</strong> Each GraphQL field on the server is backed by a function - code linking to your application layer. While we were building GraphQL to support News Feed, we already had a sophisticated feed ranking and storage model, along with existing databases and business logic. GraphQL had to leverage all this existing work to be useful, and so does not dictate or provide any backing storage. Instead, GraphQL takes advantage of your existing code by exposing your application layer, not your storage layer.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7"><strong>Introspective:</strong> A GraphQL server can be queried for the types it supports. This creates a powerful platform for tools and client software to build atop this information like code generation in statically typed languages, our application framework, Relay, or IDEs like GraphiQL (pictured below). GraphiQL helps developers learn and explore an API quickly without grepping the codebase or wrangling with cURL.</p>
<div class="[&amp;:not(:first-child)]:_mt-6 grid grid-cols-2 border border-neu-200 text-sm dark:border-neu-50"><p>Operation</p><p>Response</p></div>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7"><strong>Version free:</strong> The shape of the returned data is determined entirely by the client’s query, so servers become simpler and easy to generalize. When you’re adding new product features, additional fields can be added to the server, leaving existing clients unaffected. When you’re sunsetting older features, the corresponding server fields can be deprecated but continue to function. This gradual, backward-compatible process removes the need for an incrementing version number. We still support three years of released Facebook applications on a single version of our GraphQL API.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">With GraphQL, we were able to build full-featured native News Feed on iOS in 2012, and on Android shortly after. Since then, GraphQL has become the primary way we build our mobile apps and the servers that power them. More than three years later, GraphQL powers almost all data-fetching in our mobile applications, serving millions of requests per second from nearly 1,000 shipped application versions.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">When we built GraphQL in 2012 we had no idea how important it would become to how we build things at Facebook and didn’t anticipate its value beyond Facebook. However, earlier this year we announced Relay, our application framework for the web and React Native built atop GraphQL. The community excitement for Relay inspired us to revisit GraphQL to evaluate every detail, make improvements, fix inconsistencies, and write a specification describing GraphQL and how it works.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">Two months ago, we <a rel="noopener noreferrer" target="_blank" href="https://youtube.com/watch?v=WQLzZf34FJ8" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">made our progress public</a> and released a working draft of the <a rel="noopener noreferrer" target="_blank" href="https://spec.graphql.org" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">GraphQL spec</a> and a reference implementation: <a rel="noopener noreferrer" target="_blank" href="https://github.com/graphql/graphql-js" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">GraphQL.js</a>. Since then, a community has started to form around GraphQL, and versions of the GraphQL runtime are being <a rel="noopener noreferrer" target="_blank" href="https://github.com/chentsulin/awesome-graphql" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">built in many languages</a>, including Go, Ruby, Scala, Java, .Net, and Python. We’ve also begun to share some of the tools we use internally, like <a rel="noopener noreferrer" target="_blank" href="https://github.com/graphql/graphiql" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">GraphiQL</a>, an in-browser IDE, documentation browser, and query runner. GraphQL has also seen production usage outside Facebook, in a project for the <a rel="noopener noreferrer" target="_blank" href="https://youtube.com/watch?v=S0s935RKKB4" class="gql-focus-visible typography-link text-neu-900 underline-offset-2"><em>Financial Times</em></a> by consultancy <a rel="noopener noreferrer" target="_blank" href="http://red-badger.com" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">Red Badger</a>.</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">“GraphQL makes orchestrating data fetching so much simpler, and it pretty much functions as a perfect isolation point between the front end and the back end” — Viktor Charypar, software engineer at Red Badger</p>
<p class="[&amp;:not(:first-child)]:_mt-6 _leading-7">While GraphQL is an established part of building products at Facebook, its use beyond Facebook is just beginning. Try out <a rel="noopener noreferrer" target="_blank" href="http://graphql-swapi.parseapp.com/graphiql" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">GraphiQL</a> and help provide feedback on our <a rel="noopener noreferrer" target="_blank" href="https://github.com/facebook/graphql" class="gql-focus-visible typography-link text-neu-900 underline-offset-2">specification</a>. We think GraphQL can greatly simplify data needs for both client product developers and server-side engineers, regardless of what languages you’re using in either environment, and we’re excited to continue to improve GraphQL, help a community grow around it, and see what we can build together.</p>
<p><a title="GraphiQL 5 Released; Press F1!" class="gql-focus-visible typography-link flex max-w-[50%] items-center gap-2 border border-neu-200 pr-2 text-left text-base no-underline hover:bg-neu-50 hover:ring hover:ring-neu-100 dark:border-neu-100 dark:hover:bg-neu-50/50 dark:hover:ring-neu-50" href="https://graphql.org/blog/2025-07-17-graphiql-5/">GraphiQL 5 Released; Press F1!</a><a title="Seeking GraphQL Subject Matter Experts" class="gql-focus-visible typography-link ml-auto flex max-w-[50%] items-center gap-2 border border-neu-200 pl-2 text-left text-base no-underline hover:bg-neu-50 hover:ring hover:ring-neu-100 dark:border-neu-100 dark:hover:bg-neu-50/50 dark:hover:ring-neu-50" href="https://graphql.org/blog/2025-04-02-seeking-graphql-subject-matter-experts/">Seeking GraphQL Subject Matter Experts</a></p>]]></description>
      <link>https://graphql.org/blog/2015-09-14-graphql</link>
      <guid>https://graphql.org/blog/2015-09-14-graphql</guid>
      <pubDate>Mon, 14 Sep 2015 02:00:00 +0200</pubDate>
    </item>
  </channel>
</rss>
