1<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="theme-color" content="#111" media="(prefers-color-scheme: dark)"/><meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover"/><style>:root{--nextra-primary-hue:319deg;--nextra-primary-saturation:100%;--nextra-primary-lightness:44.1%;--nextra-navbar-height:64px;--nextra-menu-height:3.75rem;--nextra-banner-height:2.5rem;--nextra-bg:251,251,249;}.dark{--nextra-primary-hue:319deg;--nextra-primary-saturation:100%;--nextra-primary-lightness:90%;--nextra-bg:15,15,12;}</style><title>Blog | GraphQL</title><meta property="og:title" content="Blog | GraphQL"/><meta property="twitter:site" content="@graphql"/><meta property="og:image" content="https://graphql-github-pqxveqjg9-the-graph-ql-foundation.vercel.app/img/og-logo.png"/><meta name="twitter:card" content="summary"/><meta name="next-head-count" content="8"/><link rel="preload" href="/_next/static/media/70434a467ac4a08b-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/_next/static/media/b8a2dcd8ba053f45-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/_next/static/media/d2c053a71c898a63-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/_next/static/css/e1b7d310fd9cbfcf.css" as="style"/><link rel="stylesheet" href="/_next/static/css/e1b7d310fd9cbfcf.css" data-n-g=""/><noscript data-n-css=""></noscript>
1<script defer="" nomodule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script>
1<script src="/_next/static/chunks/webpack-05cc7f187e27992e.js" defer=""></script>
1<script src="/_next/static/chunks/framework-6931941517b9fcc9.js" defer=""></script>
1<script src="/_next/static/chunks/main-5fce7f8beea29fcc.js" defer=""></script>
1<script src="/_next/static/chunks/pages/_app-c50a4bf565c6a028.js" defer=""></script>
1<script src="/_next/static/chunks/3556-9677e3864c8db3fa.js" defer=""></script>
1<script src="/_next/static/chunks/5043-7e22719f9dad3403.js" defer=""></script>
1<script src="/_next/static/chunks/pages/blog-dc619973a73ad0c1.js" defer=""></script>
1<script src="/_next/static/7hVvEeerbm7jBIjLpXBD0/_buildManifest.js" defer=""></script>
1<script src="/_next/static/7hVvEeerbm7jBIjLpXBD0/_ssgManifest.js" defer=""></script>
1</head><body><div id="__next"><style> 2html { 3 --font-sans: '__hostGrotesk_4b1926', '__hostGrotesk_Fallback_4b1926'; 4 --font-mono: '__commitMono_9d2e4e', '__commitMono_Fallback_9d2e4e'; 5}</style>
5<script>((e,t,r,n,o,i,a,l)=>{let s=document.documentElement,u=["light","dark"];function c(t){(Array.isArray(e)?e:[e]).forEach(e=>{let r="class"===e,n=r&&i?o.map(e=>i[e]||e):o;r?(s.classList.remove(...n),s.classList.add(i&&i[t]?i[t]:t)):s.setAttribute(e,t)}),l&&u.includes(t)&&(s.style.colorScheme=t)}if(n)c(n);else try{let e=localStorage.getItem(t)||r,n=a&&"system"===e?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":e;c(n)}catch(e){}})("class","theme","system",null,["light","dark"],null,true,true)</script>
5<div dir="ltr">
5<script>document.documentElement.setAttribute('dir','ltr')</script>
5<div class="nextra-nav-container sticky top-0 z-20 w-full bg-transparent print:hidden"><div class="pointer-events-none absolute inset-0 -z-10 h-[200%] backdrop-blur-[6.4px]" style="mask-image:linear-gradient(to bottom, #000 0% 50%, transparent 50% 100%);-webkit-mask-image:linear-gradient(to bottom, #000 0% 50%, transparent 50% 100%);background:linear-gradient(to bottom,rgb(var(--nextra-bg),.97) 0%, rgb(var(--nextra-bg),.5) 50% 100%)"></div><div class="pointer-events-none absolute inset-0 h-full translate-y-full bg-white/10" style="backdrop-filter:blur(8px) brightness(120%) saturate(113%);mask-image:linear-gradient(to bottom, black 0, black 1px, transparent 1px);-webkit-mask-image:linear-gradient(to bottom, black 0, black 1px, transparent 1px)"></div><nav class="mx-auto flex h-[var(--nextra-navbar-height)] max-w-[120rem] items-center justify-end pl-[max(env(safe-area-inset-left),1.5rem)] pr-[max(env(safe-area-inset-right),1.5rem)]"><a class="nextra-focus flex items-center hover:opacity-75" href="/"><svg xmlns="http://www.w3.org/2000/svg" style="fill:color(display-p3 .8824 0 .5961)" viewBox="0 0 367 100" class="nextra-logo h-6" title="GraphQL"><path fill-rule="evenodd" d="m50 6.468 37.7 21.766v43.532L50 93.532 12.3 71.766V28.234zM16.53 30.676v31.976l27.692-47.964zM50 13.14 18.078 68.43h63.844zm27.692 59.52H22.308L50 88.648zm5.778-10.008L55.778 14.688 83.47 30.676z" clip-rule="evenodd"></path><circle cx="14.41" cy="29.45" r="8.91"></circle><circle cx="14.41" cy="70.545" r="8.91"></circle><circle cx="50" cy="91.09" r="8.91"></circle><circle cx="85.585" cy="70.545" r="8.91"></circle><circle cx="85.585" cy="29.455" r="8.91"></circle><circle cx="50" cy="8.91" r="8.91"></circle><path d="M138.875 71.625q-7.812 0-12.125-4.5t-4.562-12.062q-.063-1.876-.063-5.938t.063-5.937q.25-7.563 4.562-12.063t12.125-4.5q5.313 0 8.938 2 3.624 2 5.375 4.75 1.812 2.688 1.937 4.813v.124q0 .501-.375.813-.375.313-.938.313h-1.374q-.562 0-.813-.25t-.5-1q-1.062-3.313-4.125-5.563-3-2.25-8.125-2.25-5.812 0-9.187 3.188-3.313 3.187-3.563 9.937-.062 1.875-.062 5.625t.062 5.625q.25 6.75 3.563 9.938 3.375 3.186 9.187 3.187 5.813 0 9.375-3.312 3.562-3.314 3.562-9.813v-3.187h-10.874q-.625 0-1-.376a1.58 1.58 0 0 1-.375-1.062v-.875q0-.625.375-1 .375-.437 1-.437h13.374q.688 0 1.063.374.375.376.375 1.063v5.5q0 4.999-2 8.813-2 3.811-5.812 5.937-3.813 2.125-9.063 2.125M165.941 71q-.625 0-1-.375t-.375-1V39.938q0-.625.375-1 .375-.438 1-.438h1q.625 0 1 .438.438.375.438 1v2.874q2.25-4.312 8.5-4.312h2.312q.625 0 1 .375t.375 1v.875q0 .625-.375 1t-1 .375h-2.687q-3.75 0-5.938 2.188-2.187 2.187-2.187 5.937v19.375q0 .625-.438 1-.375.375-1 .375zM194.557 71.625q-3 0-5.563-1.25T184.869 67q-1.5-2.126-1.5-4.687 0-4.125 3.313-6.75 3.374-2.625 9.062-3.376l9.875-1.374v-2.188q0-3.438-2.125-5.25-2.063-1.875-6.375-1.875-3.188 0-5.25 1.25-2 1.25-2.562 3-.25.75-.625 1.063-.313.25-.875.25h-.875q-.563 0-1-.376a1.5 1.5 0 0 1-.375-1q0-1.374 1.25-3.187 1.25-1.875 3.875-3.25t6.437-1.375q6.687 0 9.5 3.188 2.813 3.187 2.813 7.75v20.812q0 .625-.375 1-.376.375-1 .375h-1.063q-.625 0-1-.375t-.375-1v-2.937q-1.375 2.061-4.062 3.5-2.626 1.437-7 1.437m.625-3.625q4.561 0 7.5-3 2.937-3 2.937-8.625V54.25l-8.062 1.125q-5.125.687-7.75 2.375T187.182 62q0 2.875 2.375 4.438Q191.994 68 195.182 68M220.752 82.875q-.624 0-1-.375-.375-.375-.375-1V39.875q0-.625.375-1 .376-.375 1-.375h1.063q.625 0 1 .375t.375 1v2.938q3.626-4.938 10.5-4.938 6.75 0 9.937 4.313 3.25 4.25 3.438 10.5.063.624.062 2.062 0 1.437-.062 2.063-.187 6.25-3.438 10.562-3.187 4.25-9.937 4.25-6.813 0-10.5-4.937V81.5q0 .625-.375 1t-1 .375zM233.315 68q5.062 0 7.375-3.187 2.375-3.25 2.562-8.313.063-.625.063-1.75 0-5.813-2.25-9.5-2.25-3.75-7.75-3.75-4.938 0-7.438 3.313-2.5 3.25-2.687 7.687l-.063 2.438.063 2.437a12.8 12.8 0 0 0 1.187 5.125q1.125 2.375 3.375 3.938Q230.002 68 233.315 68M257.068 71q-.625 0-1-.375t-.375-1V28q0-.625.375-1t1-.375h1.063q.625 0 1 .375t.375 1v14.813q1.875-2.439 4.25-3.688 2.437-1.25 6.25-1.25 6.125 0 9.437 3.938 3.313 3.874 3.313 10.062v17.75q0 .625-.375 1t-1 .375h-1.063q-.625 0-1-.375t-.375-1V52.188q0-5.063-2.5-7.876-2.437-2.812-7.062-2.812-4.5 0-7.188 2.875-2.687 2.813-2.687 7.813v17.437q0 .625-.375 1t-1 .375zM321.682 75.063q-.938 0-2-1.438l-2.75-3.812q-3.75 1.812-8.75 1.812-16.062 0-16.5-17.25-.062-1.875-.062-5.25t.062-5.25q.25-8.5 4.625-12.875t11.875-4.375T320.057 31t4.625 12.875q.125 3.75.125 5.25t-.125 5.25q-.312 8.937-4.562 13.125l4 5.625q.187.376.187.688a1.2 1.2 0 0 1-.375.874 1.2
51.2 0 0 1-.875.376zm-13.5-7.188q5.625 0 8.938-3.375 3.375-3.437 3.625-10.437.125-3.75.125-4.938t-.125-4.937q-.25-7-3.625-10.376-3.375-3.437-8.938-3.437-5.562 0-8.937 3.438-3.375 3.375-3.625 10.374-.063 1.875-.063 4.938t.063 4.938q.25 6.999 3.562 10.437 3.375 3.375 9 3.375M336.126 71q-.625 0-1-.375t-.375-1v-41q0-.625.375-1t1-.375h1.188q.625 0 1 .375t.375 1V67.25h21.562q.688 0 1.063.375t.375 1.063v.937q0 .625-.438 1-.375.375-1 .375z"></path></svg></a><div class="flex-1"></div><nav class="-mx-2 flex overflow-x-auto px-2 py-1.5 xl:absolute xl:left-1/2 xl:-translate-x-1/2"><ul aria-orientation="horizontal" class="flex w-full items-center gap-2"><li class="max-md:hidden"><a class="typography-menu flex items-center text-neu-900 px-3 py-1 nextra-focus [text-box:trim-both_cap_alphabetic] leading-none hover:underline underline-offset-2 md:py-5 whitespace-nowrap max-md:hidden" aria-current="false" href="/learn/">Learn</a></li><li class="max-md:hidden"><button type="button" aria-disabled="false" tabindex="0" aria-expanded="false" data-base-ui-navigation-menu-trigger="" class="typography-menu flex items-center text-neu-900 px-3 py-1 nextra-focus [text-box:trim-both_cap_alphabetic] leading-none hover:underline underline-offset-2 md:py-5 focus-visible:nextra-focusable flex items-center gap-1.5 whitespace-nowrap data-[popup-open]:underline max-md:hidden">Resource Hub</button></li><li class="max-md:hidden"><button type="button" aria-disabled="false" tabindex="0" aria-expanded="false" data-base-ui-navigation-menu-trigger="" class="typography-menu flex items-center text-neu-900 px-3 py-1 nextra-focus [text-box:trim-both_cap_alphabetic] leading-none hover:underline underline-offset-2 md:py-5 focus-visible:nextra-focusable flex items-center gap-1.5 whitespace-nowrap data-[popup-open]:underline max-md:hidden">Community</button></li><li class="max-md:hidden"><a class="typography-menu flex items-center text-neu-900 px-3 py-1 nextra-focus [text-box:trim-both_cap_alphabetic] leading-none hover:underline underline-offset-2 md:py-5 whitespace-nowrap max-md:hidden underline" aria-current="true" href="/blog/">Blog</a></li><li class="max-md:hidden"><a class="typography-menu flex items-center text-neu-900 px-3 py-1 nextra-focus [text-box:trim-both_cap_alphabetic] leading-none hover:underline underline-offset-2 md:py-5 whitespace-nowrap max-md:hidden" aria-current="false" href="/ai/"><span class="relative block rounded-full bg-pri-base/15 px-2 py-0.5 text-[0.7rem] font-bold uppercase tracking-wide text-pri-dark dark:bg-pri-light/20 dark:text-pri-light [a:has(>&)]:no-underline">AI</span></a></li><li class="max-md:hidden"><a class="typography-menu flex items-center text-neu-900 px-3 py-1 nextra-focus [text-box:trim-both_cap_alphabetic] leading-none hover:underline underline-offset-2 md:py-5 whitespace-nowrap max-md:hidden" aria-current="false" href="/conf/2026/"><span class="relative block before:absolute before:-inset-x-3 before:-inset-y-1 before:border before:border-current [a:has(>&)]:text-pri-base dark:[a:has(>&)]:text-pri-light [a:hover:has(>&)]:no-underline [a:hover_&]:before:border-transparent">GraphQLConf<span class="max-xl:hidden"> 2026</span></span></a></li><li class="max-md:hidden"><a class="typography-menu flex items-center text-neu-900 px-3 py-1 nextra-focus [text-box:trim-both_cap_alphabetic] leading-none hover:underline underline-offset-2 md:py-5 whitespace-nowrap max-md:hidden" aria-current="false" href="/day/"><span class="relative block before:absolute before:-inset-x-3 before:-inset-y-1 before:border before:border-current [a:has(>&)]:text-emerald-600 dark:[a:has(>&)]:text-emerald-400 [a:hover:has(>&)]:no-underline [a:hover_&]:before:border-transparent">GraphQL Days</span></a></li><li class="max-md:hidden"><a class="typography-menu flex items-center text-neu-900 px-3 py-1 nextra-focus [text-box:trim-both_cap_alphabetic] leading-none hover:underline underline-offset-2 md:py-5 whitespace-nowrap max-md:hidden" aria-current="false" href="/graphql-js/">GraphQL.JS Tutorial</a></li></ul></nav><div class="not-prose relative flex items-center text-neu-900 block select-none text-sm max-md:hidden [&>input::placeholder]:text-neu-700 [&>input]:bg-neu-0/[.55] [&>input]:text-neu-900"><input spellcheck="false" class="px-3 py-2 transition-colors w-full md:w-64 text-base leading-tight md:text-sm bg-black/[.05] dark:bg-neu-100/10 placeholder:text-neu-500 contrast-more:border
5contrast-more:border-current [&::-webkit-search-cancel-button]:_appearance-none" autoComplete="off" placeholder="Search..." id="headlessui-combobox-input-:R5n556:" role="combobox" type="search" aria-expanded="false" aria-autocomplete="list" data-headlessui-state="" value=""/></div><button type="button" tabindex="0" role="combobox" aria-expanded="false" aria-haspopup="listbox" aria-label="Change theme" title="Change theme" class="gql-focus-visible relative cursor-pointer text-neu-800 transition-colors before:absolute before:-inset-2 hover:bg-neu-100 hover:text-neu-900 focus-visible:outline-offset-4 dark:text-neu-700 dark:hover:bg-neu-50/50 max-lg:hidden [&_span]:hidden"><div class="flex items-center gap-2 border border-transparent p-[5px] [[aria-expanded=true]>&]:border-neu-300 [[aria-expanded=true]>&]:bg-neu-0 [[aria-expanded=true]>&]:dark:border-neu-100"><svg fill="currentColor" viewBox="0 0 14 14" height="16"><path fill-rule="evenodd" d="M7.583 0H6.417v2.333h1.166zM0 6.417v1.166h2.333V6.417zm11.667 0H14v1.166h-2.333zM7.583 14H6.417v-2.333h1.166zM4.667 3.5h4.666v1.167H4.667zm0 5.833H3.5V4.667h1.167zm0 0V10.5h4.666V9.333H10.5V4.667H9.333v4.666zm7-8.166h1.166v1.166h-1.166zm0 1.166V3.5H10.5V2.333zm1.166 10.5h-1.166v-1.166h1.166zm-1.166-1.166H10.5V10.5h1.167zm-9.334-10.5H1.167v1.166h1.166V3.5H3.5V2.333H2.333zM1.167 12.833h1.166v-1.166H3.5V10.5H2.333v1.167H1.167z" clip-rule="evenodd"></path></svg><span class="text-sm capitalize leading-none sr-only">light</span></div></button><input style="clip:rect(0 0 0 0);overflow:hidden;white-space:nowrap;position:fixed;top:0;left:0;border:0;padding:0;width:1px;height:1px;margin:-1px" tabindex="-1" aria-hidden="true" value="light"/><button class="_transition nextra-hamburger p-2 text-pri-base md:hidden" aria-label="Menu" type="button" data-headlessui-state=""><svg fill="currentColor" viewBox="0 0 24 24" class="size-5"><path d="M4 6h16v2H4zm0 5h16v2H4zm16 5H4v2h16z"></path></svg></button></nav></div><div class="mx-auto flex pb-8 xl:pb-12"><div class="[transition:background-color_1.5s_ease] bg-transparent"></div><aside class="nextra-sidebar-container flex flex-col motion-reduce:transform-none motion-reduce:transition-none md:top-16 md:shrink-0 [.resizing_&]:transition-none transition-gpu duration-300 ease-in-out print:hidden md:w-64 md:hidden max-md:[transform:translate3d(0,-100%,0)]"><div class="px-4 pt-4 md:hidden"><div class="not-prose relative flex items-center text-neu-900 block select-none text-sm text-neu-500"><input spellcheck="false" class="px-3 py-2 transition-colors w-full md:w-64 text-base leading-tight md:text-sm bg-black/[.05] dark:bg-neu-100/10 placeholder:text-neu-500 contrast-more:border contrast-more:border-current [&::-webkit-search-cancel-button]:_appearance-none" autoComplete="off" placeholder="Search..." id="headlessui-combobox-input-:Rmrjd6:" role="combobox" type="search" aria-expanded="false" aria-autocomplete="list" data-headlessui-state="" value=""/></div></div><div class="overflow-y-auto grow p-4 md:h-[calc(100vh-var(--nextra-navbar-height)-var(--nextra-menu-height))] xl:pl-0 nextra-scrollbar"></div><div class="nextra-sidebar-footer sticky bottom-0 mx-3 flex items-center gap-2 px-1 py-4 xl:ml-0.5 xl:mr-0 xl:px-0"><div class="flex grow flex-col"><button type="button" tabindex="0" role="combobox" aria-expanded="false" aria-haspopup="listbox" aria-label="Change theme" title="Change theme" class="gql-focus-visible relative cursor-pointer text-neu-800 transition-colors before:absolute before:-inset-2 hover:bg-neu-100 hover:text-neu-900 focus-visible:outline-offset-4 dark:text-neu-700 dark:hover:bg-neu-50/50"><div class="flex items-center gap-2 border border-transparent p-[5px] [[aria-expanded=true]>&]:border-neu-300 [[aria-expanded=true]>&]:bg-neu-0 [[aria-expanded=true]>&]:dark:border-neu-100"><svg fill="currentColor" viewBox="0 0 14 14" height="16"><path fill-rule="evenodd" d="M7.583 0H6.417v2.333h1.166zM0 6.417v1.166h2.333V6.417zm11.667 0H14v1.166h-2.333zM7.583 14H6.417v-2.333h1.166zM4.667 3.5h4.666v1.167H4.667zm0 5.833H3.5V4.667h1.167zm0 0V10.5h4.666V9.333H10.5V4.667H9.333v4.666zm7-8.166h1.166v1.166h-1.166zm0 1.166V3.5H10.5V2.333zm1.166 10.5h-1.166v-1.166h1.166zm-1.166-1.166H10.5V10.5h1.167zm-9.334-10.5H1.167v1.166h1.166V3.5H3.5V2.333H2.333zM1.167 12.833h1.166v-1.166H3.5V10.5H2.333v1.167H1.167z" clip-rule="evenodd"></path></svg><span class="text-sm capitalize leading-none text-neu-800">light</span></div></button><input style="clip:rect(0 0 0 0);overflow:hidden;white-space:nowrap;position:fixed;top:0;left:0;border:0;padding:0;width:1px;height:1px;margin:-1px" tabindex="-1" aria-hidden="true" value="light"/></div><button class="_transition p-2 text-neu-800 hover:bg-neu-100 hover:text-neu-900 dark:hover:bg-neu-500/5 max-md:hidden" title="Hide sidebar" type="button" data-headlessui-state=""><svg width="32" height="32" fill="currentColor" viewBox="0 0 32 32" class="size-5"><path d="M8 26.667H5.333V5.333H8zm10.667-4H16V20h2.667zm-2.667-8h10.667v2.666H16V20h-2.667v-2.667h-2.666v-2.666h2.666V12H16zM18.667 12H16V9.333h2.667z"></path></svg></button></div></aside><div id="reach-skip-nav"></div><div class="w-full break-words"><main class="gql-all-anchors-focusable bg-neu-0"><div class="relative top-[calc(var(--nextra-navbar-height)*-1)] bg-gradient-to-b from-sec-base to-neu-0 pt-[var(--nextra-navbar-height)] dark:from-sec-darker"><div role="presentation" class="pointer-events-none absolute inset-0 max-sm:[mask-position:left_top]" style="mask-image:url(/_next/static/media/blur-bean.1cb38553.webp);-webkit-mask-image:url(/_next/static/media/blur-bean.1cb38553.webp);mask-position:center;-webkit-mask-position:center;mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat"><div class="absolute inset-0 bg-[linear-gradient(0deg,_hsl(var(--color-sec-dark))_0%,_hsl(var(--color-sec-light))_100%)] dark:bg-[linear-gradient(0deg,_hsl(var(--color-sec-dark))_0%,_hsl(var(--color-sec-darker))_100%)]" style="--stripe-width:12px;--angle:90deg;mask-image:repeating-linear-gradient(var(--angle), transparent, transparent var(--stripe-width), black var(--stripe-width), black calc(var(--stripe-width) * 2));-webkit-mask-image:repeating-linear-gradient(var(--angle), transparent, transparent var(--stripe-width), black var(--stripe-width), black calc(var(--stripe-width) * 2))"></div><div class="absolute inset-0 bg-[linear-gradient(0deg,_hsl(var(--color-sec-lighter))_0%,_hsl(79_81%_40%/0)_100%)] dark:bg-[linear-gradient(0deg,_hsl(var(--color-sec-darker))_0%,_rgba(133,185,19,0.00)_100%)]" style="--stripe-width:12px;--angle:90deg;mask-image:repeating-linear-gradient(var(--angle), black, black var(--stripe-width), transparent var(--stripe-width), transparent calc(var(--stripe-width) * 2));-webkit-mask-image:repeating-linear-gradient(var(--angle), black, black var(--stripe-width), transparent var(--stripe-width), transparent calc(var(--stripe-width) * 2))"></div></div><header class="gql-container gql-section max-sm:pb-0 lg:pt-24"><h1 class="typography-h1 text-center">The GraphQL Blog</h1><p class="typography-body-sm mt-4 text-center lg:mt-8">Insights, updates and best practices from across the GraphQL community. Stay connected with the ideas and innovations shaping the GraphQL ecosystem.</p><section class="mt-4 max-sm:pb-0 lg:mt-24 border border-neu-0 bg-neu-0/30 p-4 backdrop-blur-xl dark:bg-neu-0/20 lg:p-12"><a class="-m-4 flex p-4 ring-neu-0 hover:bg-neu-0/20 hover:ring-1 dark:ring-neu-100 sm:min-h-[300px] lg:gap-12 [&:not(:hover)]:transition" href="/blog/2026-09-08-one-year-of-the-ambassador-program/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[2.23] w-2/5 shrink-0 max-lg:invisible max-lg:absolute"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex flex-col"><span class="flex gap-2">
5<span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%]" style="border-color:#F80"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#F80"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">announcements</span></span></span><div class="typography-h2 mt-6">One Year of the GraphQL Ambassador Program</div><footer class="mt-2 flex items-end justify-between sm:mt-4 lg:mt-auto"><span class="typography-menu flex flex-col justify-center gap-2"><span>Jem Gillam</span><time dateTime="2026-09-08T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">September 8, 2026</time></span><div class="border border-neu-300 p-4 dark:border-neu-100"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a><div class="mt-4 grid grid-cols-3 flex-col gap-4 max-md:flex sm:mt-8 lg:mt-16 lg:gap-6"><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/announcements/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#F80"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#F80"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">announcements</span></span></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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/blog/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#298cc5"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#298cc5"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">blog</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="index" href="/blog/2026-07-14-graphqlconf-2026-wrapup/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">GraphQLConf 2026 wrap-up: 'the language of AI'</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>Jeff Auriemma</span><time dateTime="2026-07-14T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">July 14, 2026</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/blog/">
5<span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#298cc5"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#298cc5"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">blog</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="index" href="/blog/2026-06-24-better-together-design-systems-graphql-part-1/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">Better Together: Cross-Functional Collaboration at the Intersection of Design Systems and GraphQL APIs - Part 1 of 2</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>Amanda Olsen, Sam Combs</span><time dateTime="2026-06-24T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">June 24, 2026</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/announcements/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#F80"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#F80"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">announcements</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2026-06-15-introducing-graphql-js-v17" href="/blog/2026-06-15-introducing-graphql-js-v17/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">Introducing GraphQL.js v17</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>Yaacov Rydzinski</span><time dateTime="2026-06-15T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">June 15, 2026</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div></div></section></header></div><div class="gql-container"><div class="gql-section max-sm:px-2 max-sm:pt-0"><section class="flex justify-between gap-2 max-sm:flex-col sm:items-end"><h2 class="typography-h2 capitalize">All Posts</h2><section><h3 class="typography-menu">Categories</h3><ul class="mt-4 flex gap-2 pb-2 max-sm:overflow-auto sm:flex-wrap"><a tabindex="0" 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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/announcements/">
5<span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%]" style="border-color:#F80"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#F80"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis flex">announcements<!-- --> (<!-- -->44<!-- -->)</span></span></a><a tabindex="-1" 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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/blog/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%]" style="border-color:#298cc5"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#298cc5"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis flex">blog<!-- --> (<!-- -->24<!-- -->)</span></span></a><a tabindex="-1" 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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/grants/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%]" style="border-color:#84BD01"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#84BD01"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis flex">grants<!-- --> (<!-- -->8<!-- -->)</span></span></a><a tabindex="-1" 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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/foundation/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%]" style="border-color:#5800FF"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#5800FF"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis flex">foundation<!-- --> (<!-- -->8<!-- -->)</span></span></a><a tabindex="-1" 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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/newsletter/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%]" style="border-color:#FFCCEF"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#FFCCEF"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis flex">newsletter<!-- --> (<!-- -->7<!-- -->)</span></span></a><a tabindex="-1" 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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/in-the-news/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%]" style="border-color:#3F3A3D"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#3F3A3D"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis flex">in the news<!-- --> (<!-- -->7<!-- -->)</span></span></a><a tabindex="-1" 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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/spec/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%]" style="border-color:#00C6AC"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#00C6AC"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis flex">spec<!-- --> (<!-- -->4<!-- -->)</span></span></a></ul></section></section><section class="mt-2 grid grid-cols-[repeat(auto-fit,minmax(368px,1fr))] gap-4 sm:mt-4 md:mt-8 lg:mt-16 lg:gap-6"><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/announcements/">
5<span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#F80"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#F80"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">announcements</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="index" href="/blog/2026-09-08-one-year-of-the-ambassador-program/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">One Year of the GraphQL Ambassador Program</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>Jem Gillam</span><time dateTime="2026-09-08T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">September 8, 2026</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/blog/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#298cc5"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#298cc5"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">blog</span></span></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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/ai/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#FF5FA2"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#FF5FA2"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">ai</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="index" href="/blog/2026-07-17-graphql-embedding-model-for-agents/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">A GraphQL-Native Embedding Model for AI Agents</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>Thore Koritzius</span><time dateTime="2026-07-17T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">July 17, 2026</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/announcements/">
5<span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#F80"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#F80"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">announcements</span></span></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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/blog/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#298cc5"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#298cc5"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">blog</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="index" href="/blog/2026-07-14-graphqlconf-2026-wrapup/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">GraphQLConf 2026 wrap-up: 'the language of AI'</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>Jeff Auriemma</span><time dateTime="2026-07-14T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">July 14, 2026</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/blog/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#298cc5"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#298cc5"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">blog</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="index" href="/blog/2026-06-25-better-together-design-systems-graphql-part-2/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">Better Together: Cross-Functional Collaboration at the Intersection of Design Systems and GraphQL APIs - Part 2 of 2</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>Amanda Olsen, Sam Combs</span><time dateTime="2026-06-25T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">June 25, 2026</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/blog/">
5<span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#298cc5"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#298cc5"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">blog</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="index" href="/blog/2026-06-24-better-together-design-systems-graphql-part-1/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">Better Together: Cross-Functional Collaboration at the Intersection of Design Systems and GraphQL APIs - Part 1 of 2</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>Amanda Olsen, Sam Combs</span><time dateTime="2026-06-24T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">June 24, 2026</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/announcements/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#F80"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#F80"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">announcements</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="index" href="/blog/2026-06-18-meet-the-ambassadors-cohort-2/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">Meet the latest 2026 Ambassador Cohort</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>Jem Gillam</span><time dateTime="2026-06-18T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">June 18, 2026</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/grants/">
5<span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#84BD01"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#84BD01"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">grants</span></span></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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/announcements/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#F80"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#F80"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">announcements</span></span></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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/community/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#7BAE3D"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#7BAE3D"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">community</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2026-06-16-announcing-h1-2026-graphql-community-grants" href="/blog/2026-06-16-announcing-h1-2026-graphql-community-grants/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">Announcing the H1 2026 Grants</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>GraphQL TSC</span><time dateTime="2026-06-16T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">June 16, 2026</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/announcements/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#F80"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#F80"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">announcements</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2026-06-15-introducing-graphql-js-v17" href="/blog/2026-06-15-introducing-graphql-js-v17/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">Introducing GraphQL.js v17</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>Yaacov Rydzinski</span><time dateTime="2026-06-15T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">June 15, 2026</time></span>
5<div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/community/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#7BAE3D"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#7BAE3D"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">community</span></span></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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/events/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#E63946"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#E63946"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">events</span></span></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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/ambassador-stories/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#D4A017"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#D4A017"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">ambassador stories</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="index" href="/blog/2026-06-02-learning-graphql-to-representing-it-at-api-days-singapore/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">From Learning GraphQL to Representing it at API Days Singapore</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>Akshat Sharma</span><time dateTime="2026-06-02T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">June 2, 2026</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/announcements/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#F80"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#F80"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">announcements</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2026-06-01-announcing-gaps" href="/blog/2026-06-01-announcing-gaps/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.7
55]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">Introducing GAPs: GraphQL Auxiliary Proposals</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>Mark Larah</span><time dateTime="2026-06-01T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">June 1, 2026</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/announcements/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#F80"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#F80"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">announcements</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2026-04-16-meet-the-spring-ambassador-cohort" href="/blog/2026-04-16-meet-the-spring-ambassador-cohort/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">Meet the latest 2026 Ambassador Cohort</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>Jem Gillam</span><time dateTime="2026-04-16T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">April 16, 2026</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/announcements/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#F80"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#F80"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">announcements</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2026-04-13-call-for-projects" href="/blog/2026-04-13-call-for-projects/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">2026 Call For Projects</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>Help the GraphQL ecosystem grow</span><time dateTime="2026-04-13T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">April 13, 2026</time></span>
5<div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/foundation/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#5800FF"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#5800FF"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">foundation</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2026-04-09-graphql-foundation-budget-2026" href="/blog/2026-04-09-graphql-foundation-budget-2026/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">GraphQL Foundation Budget Report, 2025-2026</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>GraphQL Foundation</span><time dateTime="2026-04-09T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">April 9, 2026</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/announcements/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#F80"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#F80"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">announcements</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2026-04-02-graphql-day-2026" href="/blog/2026-04-02-graphql-day-2026/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">Announcing GraphQL Days 2026</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>Meet the GraphQL community worldwide</span><time dateTime="2026-04-02T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">April 2, 2026</time></span>
5<div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/announcements/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#F80"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#F80"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">announcements</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2026-04-01-a-new-era-for-graphql-observability" href="/blog/2026-04-01-a-new-era-for-graphql-observability/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">A new era for GraphQL observability</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>Martin Bonnin and Mark Larah</span><time dateTime="2026-04-01T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">April 1, 2026</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/announcements/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#F80"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#F80"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">announcements</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2026-03-17-graphqlconf-date-change" href="/blog/2026-03-17-graphqlconf-date-change/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">GraphQLConf is now 19-20 May 2026</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>GraphQL Foundation</span><time dateTime="2026-03-17T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">March 17, 2026</time></span>
5<div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/announcements/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#F80"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#F80"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">announcements</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2026-01-29-graphqlconf-2026-announcement" href="/blog/2026-01-29-graphqlconf-2026-announcement/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">Announcing GraphQLConf 2026</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>GraphQL Foundation</span><time dateTime="2026-01-29T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">January 29, 2026</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/blog/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#298cc5"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#298cc5"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">blog</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2026-01-22-recap-jan-2026-ai-wg" href="/blog/2026-01-22-recap-jan-2026-ai-wg/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">GraphQL AI Working Group Recap: January 2026</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>Kewei Qu</span><time dateTime="2026-01-22T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">January 22, 2026</time></span>
5<div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/blog/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#298cc5"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#298cc5"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">blog</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2026-01-20-recap-nov-2025-ai-wg" href="/blog/2026-01-20-recap-nov-2025-ai-wg/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">GraphQL AI Working Group Recap: November 2025</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>Kewei Qu</span><time dateTime="2026-01-20T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">January 20, 2026</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/blog/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#298cc5"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#298cc5"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">blog</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="index" href="/blog/2026-01-16-seeking-graphql-subject-matter-experts/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">Seeking SMEs for GraphQL Conf 2026</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>Jem Gillam</span><time dateTime="2026-01-16T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">January 16, 2026</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/announcements/">
5<span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#F80"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#F80"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">announcements</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="index" href="/blog/2025-12-19-meet-the-december-ambassador-cohort/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">Meet the December Ambassador Cohort</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>Jem Gillam</span><time dateTime="2025-12-19T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">December 19, 2025</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/blog/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#298cc5"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#298cc5"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">blog</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2025-11-13-recap-oct-ai-wg" href="/blog/2025-11-13-recap-oct-ai-wg/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">Recap First GraphQL AI Working Group Meeting</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>Kewei Qu</span><time dateTime="2025-11-13T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">November 13, 2025</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/blog/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#298cc5"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#298cc5"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">blog</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="index" href="/blog/2025-10-20-graphql-conf-2025-article-1/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.7
55]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">ð What Launched at GraphQLConf 2025</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>Jeff Auriemma and An Ngo</span><time dateTime="2025-10-20T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">October 20, 2025</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/announcements/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#F80"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#F80"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">announcements</span></span></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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/foundation/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#5800FF"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#5800FF"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">foundation</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2025-10-16-graphql-local-initiative-update" href="/blog/2025-10-16-graphql-local-initiative-update/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">GraphQL Locals 2025: Increasing Support</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>Benjie Gillam</span><time dateTime="2025-10-16T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">October 16, 2025</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/announcements/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#F80"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#F80"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">announcements</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2025-10-14-announcing-ai-wg" href="/blog/2025-10-14-announcing-ai-wg/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.7
55]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">Announcing the GraphQL AI Working Group</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>Jeff Auriemma and Kewei Qu</span><time dateTime="2025-10-14T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">October 14, 2025</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/announcements/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#F80"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#F80"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">announcements</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="index" href="/blog/2025-09-08-announcing-gra
5phql-ambassadors/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">Announcing Our GraphQL Ambassadors</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>Jem Gillam and Jory Burson</span><time dateTime="2025-09-08T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">September 8, 2025</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/announcements/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#F80"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#F80"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">announcements</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2025-09-08-announcing-gra
5phqldotorg" href="/blog/2025-09-08-announcing-graphqldotorg/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">Introducing the New GraphQL.org: A Decade of Evolution, Redesigned</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>Saihajpreet Singh & Piotr Monwid-Olechnowicz</span><time dateTime="2025-09-08T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">September 8, 2025</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/spec/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#00C6AC"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#00C6AC"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">spec</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2025-09-08-september-edition" href="/blog/2025-09-08-september-edition/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">Announcing the September 2025 Edition of the GraphQL Specification</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>Lee Byron</span><time dateTime="2025-09-08T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">September 8, 2025</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/announcements/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#F80"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#F80"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">announcements</span></span></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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/spec/">
5<span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#00C6AC"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#00C6AC"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">spec</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="index" href="/blog/2025-09-04-multioption-inputs-with-oneof/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">Safer Multi-option Inputs with `@oneOf`</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>Benjie Gillam</span><time dateTime="2025-09-04T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">September 4, 2025</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/announcements/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#F80"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#F80"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">announcements</span></span></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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/grants/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#84BD01"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#84BD01"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">grants</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="index" href="/blog/2025-07-17-graphiql-5/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">GraphiQL 5 Released; Press F1!</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>Dimitri Postolov</span><time dateTime="2025-07-17T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">July 17, 2025</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/blog/">
5<span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#298cc5"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#298cc5"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">blog</span></span></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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/ai/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#FF5FA2"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#FF5FA2"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">ai</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2025-07-03-graphql-supercharging-ai" href="/blog/2025-07-03-graphql-supercharging-ai/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">GraphQL: Supercharging AI</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>Stephen Spalding</span><time dateTime="2025-07-03T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">July 3, 2025</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/foundation/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#5800FF"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#5800FF"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">foundation</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2025-06-27-governing-board-recap" href="/blog/2025-06-27-governing-board-recap/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">ð£ May 2025 GraphQL Foundation Board Meeting Recap</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>GraphQL Governing Board</span><time dateTime="2025-06-27T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">June 27, 2025</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/announcements/">
5<span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#F80"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#F80"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">announcements</span></span></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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/grants/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#84BD01"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#84BD01"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">grants</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2025-06-26-docs-updates" href="/blog/2025-06-26-docs-updates/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">GraphQL.js Docs Updates, April - May 2025</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>Sarah Sanders</span><time dateTime="2025-06-26T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">June 26, 2025</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/announcements/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#F80"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#F80"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">announcements</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2025-06-20-graphql-js-org" href="/blog/2025-06-20-graphql-js-org/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">Announcing graphql-js.org!</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>GraphQL-js Maintainers</span><time dateTime="2025-06-20T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">June 20, 2025</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/announcements/">
5<span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#F80"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#F80"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">announcements</span></span></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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/grants/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#84BD01"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#84BD01"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">grants</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="index" href="/blog/2025-05-31-graphiql-4/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">GraphiQL 4.1 is Released</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>Dimitri Postolov</span><time dateTime="2025-05-31T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">May 31, 2025</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/foundation/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#5800FF"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#5800FF"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">foundation</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2025-05-15-governing-board-recap" href="/blog/2025-05-15-governing-board-recap/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">ð£ April 2025 GraphQL Foundation Board Meeting Recap</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>GraphQL Governing Board</span><time dateTime="2025-05-15T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">May 15, 2025</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/blog/">
5<span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#298cc5"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#298cc5"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">blog</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="graphql-stream-team" href="/blog/graphql-stream-team/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">Join the GraphQL Stream Team at GraphQLConf 2025!</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>GraphQLConf Programming Committee</span><time dateTime="2025-04-29T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">April 29, 2025</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/foundation/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#5800FF"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#5800FF"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">foundation</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2025-04-18-governing-board-recap" href="/blog/2025-04-18-governing-board-recap/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">March 2025 GraphQL Foundation Board Meeting Recap</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>GraphQL Governing Board</span><time dateTime="2025-04-18T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">April 18, 2025</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/blog/">
5<span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#298cc5"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#298cc5"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">blog</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="index" href="/blog/2025-04-02-seeking-graphql-subject-matter-experts/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">Seeking GraphQL Subject Matter Experts</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>Jem Gillam</span><time dateTime="2025-04-02T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">April 2, 2025</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/blog/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#298cc5"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#298cc5"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">blog</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2025-02-11-how-to-write-a-successful-conference-proposal" href="/blog/2025-02-11-how-to-write-a-successful-conference-proposal/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">How to write a successful conference proposal</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>Donna Zhou</span><time dateTime="2025-02-11T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">February 11, 2025</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/foundation/">
5<span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#5800FF"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#5800FF"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">foundation</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2025-02-05-welcome-tsc-members-2025" href="/blog/2025-02-05-welcome-tsc-members-2025/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">Welcoming New TSC Members</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>Lee Byron</span><time dateTime="2025-02-05T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">February 5, 2025</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/announcements/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#F80"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#F80"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">announcements</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="announcing-gra
5phqlconf-2025-amsterdam-awaits" href="/blog/announcing-graphqlconf-2025-amsterdam-awaits/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">Announcing GraphQLConf 2025: Amsterdam Awaits! ðâ¨</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>GraphQL Foundation</span><time dateTime="2024-12-18T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">December 18, 2024</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/grants/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#84BD01"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#84BD01"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">grants</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2024-12-12-learn-docs-update" href="/blog/2024-12-12-learn-docs-update/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">Learn Documentation Update, October - November 2024</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>Mandi Wise</span><time dateTime="2024-12-12T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">December 12, 2024</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/blog/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#298cc5"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#298cc5"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">blog</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2024-11-04-fosdem-2025" href="/blog/2024-11-04-fosdem-2025/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.7
55]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">Call for Participation for FOSDEM API & Friends devroom</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>Jem Gillam</span><time dateTime="2024-11-04T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">November 4, 2024</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/announcements/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#F80"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#F80"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">announcements</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2024-10-14-welcome-yaacov" href="/blog/2024-10-14-welcome-yaacov/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">Welcoming Yaacov Rydzinski to the GraphQL.js Maintainer Team</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>Jory Burson and Benjie Gillam</span><time dateTime="2024-10-14T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">October 14, 2024</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/blog/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#298cc5"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#298cc5"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">blog</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="index" href="/blog/2024-10-08-graphql-conf-2024-wrap/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">ð¬ Thatâs A Wrap! Celebrating GraphQL Conf 2024</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>GraphQL Events Committee</span><time dateTime="2024-10-08T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">October 8, 2024</time></span>
5<div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/blog/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#298cc5"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#298cc5"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">blog</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2024-09-19-codegen" href="/blog/2024-09-19-codegen/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">Generating type safe clients using code generation</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>Martin Bonnin</span><time dateTime="2024-09-19T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">September 19, 2024</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/announcements/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#F80"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#F80"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">announcements</span></span></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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/foundation/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#5800FF"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#5800FF"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">foundation</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2024-08-15-graphql-local-initiative" href="/blog/2024-08-15-graphql-local-initiative/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">Launching the GraphQL Local Initiative</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>Benjie Gillam and Jory Burson</span><time dateTime="2024-08-15T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">August 15, 2024</time></span>
5<div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/announcements/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#F80"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#F80"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">announcements</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2024-07-22-jovi-de-croock-graphqljs" href="/blog/2024-07-22-jovi-de-croock-graphqljs/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">Welcoming Jovi De Croock to the GraphQL.js Maintainer Team</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>Jory Burson & Benjie Gillam</span><time dateTime="2024-07-22T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">July 22, 2024</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/announcements/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#F80"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#F80"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">announcements</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="index" href="/blog/2024-06-11-announcing-new-graphql-website/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">Announcing New GraphQL Website</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>Dimitri Postolov & Uri Goldshtein</span><time dateTime="2024-06-11T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">June 11, 2024</time></span>
5<div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/announcements/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#F80"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#F80"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">announcements</span></span></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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/federation/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#5C7CFA"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#5C7CFA"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">federation</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2024-05-16-composite-schemas-announcement" href="/blog/2024-05-16-composite-schemas-announcement/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">Announcing the Composite Schemas Working Group</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>Jeff Auriemma, Benjie Gillam, Michael Staib, Kamil Kisiela, Praveen Durairaju</span><time dateTime="2024-05-16T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">May 16, 2024</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/announcements/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#F80"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#F80"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">announcements</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2024-03-28-announcing-gra
5phqlconf-2024" href="/blog/2024-03-28-announcing-graphqlconf-2024/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">Announcing GraphQLConf 2024</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>GraphQL Conference & Event Committee</span><time dateTime="2024-03-28T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">March 28, 2024</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/foundation/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#5800FF"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#5800FF"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">foundation</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2024-03-12-welcome-copilot" href="/blog/2024-03-12-welcome-copilot/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">Copilot Travel Joins the GraphQL Foundation</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>Jory Burson</span><time dateTime="2024-03-12T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">March 12, 2024</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/grants/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#84BD01"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#84BD01"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">grants</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2024-03-07-graphql-community-grant-refresh" href="/blog/2024-03-07-graphql-community-grant-refresh/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.7
55]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">Supporting Contributors: The GraphQL Community Grant Program Refresh</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>Jory Burson and Benjie Gillam</span><time dateTime="2024-03-07T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">March 7, 2024</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/announcements/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#F80"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#F80"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">announcements</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2024-01-23-graphql-tsc-election-results" href="/blog/2024-01-23-graphql-tsc-election-results/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">GraphQL TSC Election Results</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>Jory Burson and Benjie Gillam</span><time dateTime="2024-01-23T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">January 23, 2024</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/grants/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#84BD01"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#84BD01"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">grants</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2024-01-17-announcing-grant-awardees" href="/blog/2024-01-17-announcing-grant-awardees/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.7
55]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">Announcing the GraphQL Foundation's Grant Awardees: Benefitting a GraphQL Ecosystem for All</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>Jory Burson and Benjie Gillam</span><time dateTime="2024-01-17T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">January 17, 2024</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/announcements/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#F80"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#F80"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">announcements</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2023-08-24-announcing-the-schedule-for-graphqlconf" href="/blog/2023-08-24-announcing-the-schedule-for-graphqlconf/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">Announcing the Schedule for GraphQLConf</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>Jory Burson</span><time dateTime="2023-08-24T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">August 24, 2023</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/blog/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#298cc5"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#298cc5"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">blog</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2023-08-01-key-insights-from-the-graphql-eu-gathering" href="/blog/2023-08-01-key-insights-from-the-graphql-eu-gathering/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.7
55]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">Key Insights from the GraphQL EU Gathering</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>Jamie Barton</span><time dateTime="2023-08-01T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">August 1, 2023</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/blog/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#298cc5"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#298cc5"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">blog</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2023-07-19-hasura-qna-recap" href="/blog/2023-07-19-hasura-qna-recap/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">Recapping our latest Q&A Session - Scaling UI Development with Relay GraphQL</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>Jory Burson</span><time dateTime="2023-07-19T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">July 19, 2023</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/announcements/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#F80"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#F80"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">announcements</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2023-07-06-youtube-updated" href="/blog/2023-07-06-youtube-updated/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">Technical Working Group videos now available on YouTube</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>Jory Burson</span><time dateTime="2023-07-06T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">July 6, 2023</time></span>
5<div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/blog/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#298cc5"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#298cc5"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">blog</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2023-06-20-the-guild-qna-recap" href="/blog/2023-06-20-the-guild-qna-recap/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">Insights from The Guild's Q&A Session</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>Jory Burson</span><time dateTime="2023-06-20T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">June 20, 2023</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/grants/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#84BD01"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#84BD01"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">grants</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2023-02-03-community-gardening" href="/blog/2023-02-03-community-gardening/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">Community Gardening, May - July 2022</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>Benjie Gillam</span><time dateTime="2023-02-03T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">February 3, 2023</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/announcements/">
5<span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#F80"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#F80"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">announcements</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2023-01-14-graphql-scalars" href="/blog/2023-01-14-graphql-scalars/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">GraphQL Custom Scalar specifications</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>Andreas Marek, Donna Zhou</span><time dateTime="2023-01-14T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">January 14, 2023</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/announcements/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#F80"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#F80"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">announcements</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2022-11-07-graphql-http" href="/blog/2022-11-07-graphql-http/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">GraphQL Foundation adopts graphql-http</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>GraphQL Foundation</span><time dateTime="2022-11-07T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">November 7, 2022</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/newsletter/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#FFCCEF"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#FFCCEF"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">newsletter</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2021-06-30-newsletter-june-2021" href="/blog/2021-06-30-newsletter-june-2021/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.7
55]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">GraphQL Foundation Monthly Newsletter June 2021</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>GraphQL Foundation</span><time dateTime="2021-06-30T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">June 30, 2021</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/newsletter/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#FFCCEF"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#FFCCEF"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">newsletter</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2021-04-30-newsletter-april-2021" href="/blog/2021-04-30-newsletter-april-2021/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">GraphQL Foundation Monthly Newsletter April 2021</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>GraphQL Foundation</span><time dateTime="2021-04-30T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">April 30, 2021</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/newsletter/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#FFCCEF"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#FFCCEF"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">newsletter</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2021-03-31-newsletter-march-2021" href="/blog/2021-03-31-newsletter-march-2021
5/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">GraphQL Foundation Monthly Newsletter March 2021</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>GraphQL Foundation</span><time dateTime="2021-03-31T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">March 31, 2021</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/newsletter/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#FFCCEF"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#FFCCEF"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">newsletter</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2021-02-15-newsletter-february-2021" href="/blog/2021-02-15-newsletter-february-2021/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">GraphQL Foundation Monthly Newsletter February 2021</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>GraphQL Foundation</span><time dateTime="2021-02-15T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">February 15, 2021</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/announcements/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#F80"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#F80"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">announcements</span></span></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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/frontend/">
5<span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:violet"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:violet"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">frontend</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2020-12-08-defer-stream" href="/blog/2020-12-08-defer-stream/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">Improving Latency with @defer and @stream Directives</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>Rob Richard, Liliana Matos</span><time dateTime="2020-12-08T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">December 8, 2020</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/newsletter/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#FFCCEF"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#FFCCEF"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">newsletter</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2020-11-12-newsletter-october-2020" href="/blog/2020-11-12-newsletter-october-2020/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">GraphQL Foundation Monthly Newsletter October 2020</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>GraphQL Foundation</span><time dateTime="2020-11-12T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">November 12, 2020</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/newsletter/">
5<span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#FFCCEF"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#FFCCEF"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">newsletter</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2020-10-15-newsletter-september-2020" href="/blog/2020-10-15-newsletter-september-2020/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">GraphQL Foundation Monthly Newsletter September 2020</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>GraphQL Foundation</span><time dateTime="2020-10-15T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">October 15, 2020</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/announcements/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#F80"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#F80"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">announcements</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2020-09-21-gsod-2020-carolyn" href="/blog/2020-09-21-gsod-2020-carolyn/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">Google Season of Docs 2020 Participant: Carolyn Stransky</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>Carolyn Stransky</span><time dateTime="2020-09-21T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">September 21, 2020</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/newsletter/">
5<span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#FFCCEF"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#FFCCEF"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">newsletter</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2020-09-11-newsletter-august-2020" href="/blog/2020-09-11-newsletter-august-2020/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">GraphQL Foundation Monthly Newsletter August 2020</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>GraphQL Foundation</span><time dateTime="2020-09-11T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">September 11, 2020</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/announcements/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#F80"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#F80"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">announcements</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2020-06-30-gsoc-2020-naman" href="/blog/2020-06-30-gsoc-2020-naman/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">Google Summer of Code 2020 Participant: Naman</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>Naman Kumar</span><time dateTime="2020-06-30T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">June 30, 2020</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/announcements/">
5<span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#F80"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#F80"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">announcements</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2020-06-13-season-of-docs" href="/blog/2020-06-13-season-of-docs/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">GraphQL joins Google Season of Docs</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>Obinna Ekwuno</span><time dateTime="2020-06-13T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">June 13, 2020</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/announcements/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#F80"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#F80"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">announcements</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2020-04-03-graphiql-graphql-playground" href="/blog/2020-04-03-graphiql-graphql-playground/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">Web-based GraphQL IDEs for the win: How & Why Playground & GraphiQL are joining forces</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>Rikki Schulte, Jason Kuhrt</span><time dateTime="2020-04-03T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">April 3, 2020</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/announcements/">
5<span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#F80"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#F80"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">announcements</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2020-04-02-graphql-annual-report-2019" href="/blog/2020-04-02-graphql-annual-report-2019/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">Announcing the 1st GraphQL Foundation Annual Report</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>GraphQL Foundation</span><time dateTime="2020-04-02T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">April 2, 2020</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/announcements/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#F80"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#F80"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">announcements</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2019-10-31-linux-foundation-training" href="/blog/2019-10-31-linux-foundation-training/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">Linux Foundation Training Announces a Free Online Course-Exploring GraphQL: A Query Language for APIs</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>GraphQL Foundation</span><time dateTime="2019-10-31T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">October 31, 2019</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/announcements/">
5<span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#F80"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#F80"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">announcements</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2019-10-28-interactive-landscape" href="/blog/2019-10-28-interactive-landscape/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">GraphQL Foundation Launches Interactive Landscape and Welcomes New Members from Open Source Summit Europe</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>GraphQL Foundation</span><time dateTime="2019-10-28T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">October 28, 2019</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/announcements/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#F80"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#F80"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">announcements</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2019-03-12-joint-development-foundation" href="/blog/2019-03-12-joint-development-foundation/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">The GraphQL Foundation Announces Collaboration with the Joint Development Foundation to Drive Open Source and Open Standards</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>GraphQL Foundation</span><time dateTime="2019-03-12T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">March 12, 2019</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/in-the-news/">
5<span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#3F3A3D"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#3F3A3D"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">in the news</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2018-11-12-channel-futures" href="/blog/2018-11-12-channel-futures/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">Channel Futures: GraphQL API Query Language Growing, Gets Own Support Foundation</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>Channel Futures</span><time dateTime="2018-11-12T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">November 12, 2018</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/in-the-news/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#3F3A3D"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#3F3A3D"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">in the news</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2018-11-07-datanami" href="/blog/2018-11-07-datanami/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">Datanami: Will GraphQL Become a Standard for the New Data Economy?</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>Datanami</span><time dateTime="2018-11-07T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">November 7, 2018</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/in-the-news/">
5<span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#3F3A3D"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#3F3A3D"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">in the news</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2018-11-07-sd-times" href="/blog/2018-11-07-sd-times/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">SD Times: The Linux Foundation announces plans to form GraphQL foundation</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>SD Times</span><time dateTime="2018-11-07T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">November 7, 2018</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/in-the-news/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#3F3A3D"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#3F3A3D"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">in the news</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2018-11-07-the-register" href="/blog/2018-11-07-the-register/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">The Register: Facebookâs open-source license drama-zone GraphQL gets swanky digs in Linux mansion</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>The Register</span><time dateTime="2018-11-07T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">November 7, 2018</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/in-the-news/">
5<span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#3F3A3D"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#3F3A3D"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">in the news</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2018-11-06-eweek" href="/blog/2018-11-06-eweek/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">eWeek: GraphQL API Specification Moving Forward with Independent Foundation</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>eweek</span><time dateTime="2018-11-06T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">November 6, 2018</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/in-the-news/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#3F3A3D"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#3F3A3D"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">in the news</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2018-11-06-infoworld" href="/blog/2018-11-06-infoworld/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">InfoWorld: GraphQL gets its own foundation</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>InfoWorld</span><time dateTime="2018-11-06T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">November 6, 2018</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/announcements/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#F80"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#F80"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">announcements</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2018-11-06-linux-foundation-graphql" href="/blog/2018-11-06-linux-foundation-graphql/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.7
55]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">The Linux Foundation Announces Intent to Form New Foundation to Support GraphQL</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>GraphQL Foundation</span><time dateTime="2018-11-06T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">November 6, 2018</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/in-the-news/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#3F3A3D"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#3F3A3D"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">in the news</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2017-11-08-programmable-web" href="/blog/2017-11-08-programmable-web/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">ProgrammableWeb: GraphQL Moving to Neutral, Open-Source Foundation</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>ProgrammableWeb</span><time dateTime="2017-11-08T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">November 8, 2017</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/blog/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#298cc5"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#298cc5"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">blog</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2016-09-14-production-ready" href="/blog/2016-09-14-production-ready/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.7
55]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">Leaving technical preview</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>Lee Byron</span><time dateTime="2016-09-14T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">September 14, 2016</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/blog/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#298cc5"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#298cc5"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">blog</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2016-05-02-rest-api-graphql-wrapper" href="/blog/2016-05-02-rest-api-graphql-wrapper/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">Wrapping a REST API in GraphQL</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>Steven Luscher</span><time dateTime="2016-05-05T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">May 5, 2016</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/blog/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#298cc5"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#298cc5"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">blog</span></span></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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/frontend/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:violet"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:violet"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">frontend</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2016-04-19-mocking" href="/blog/2016-04-19-mocking/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.7
55]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">Mocking your server is easy with GraphQL</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>Jonas Helfer</span><time dateTime="2016-04-19T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">April 19, 2016</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/blog/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#298cc5"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#298cc5"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">blog</span></span></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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/spec/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#00C6AC"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#00C6AC"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">spec</span></span></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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/frontend/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:violet"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:violet"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">frontend</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2015-10-16-subscriptions" href="/blog/2015-10-16-subscriptions/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">Subscriptions in GraphQL and Relay</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>Dan Schafer and Laney Kuenzel</span><time dateTime="2015-10-16T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">October 16, 2015</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div><div class="relative isolate"><span class="flex gap-2 absolute left-4 top-4 z-[1]"><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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/blog/">
5<span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#298cc5"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#298cc5"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">blog</span></span></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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/spec/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#00C6AC"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#00C6AC"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">spec</span></span></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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/frontend/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:violet"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:violet"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">frontend</span></span></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(>:hover)>&:not(:hover)]:opacity-70" href="/tags/backend/"><span class="relative max-w-full self-start whitespace-nowrap border px-2 py-1 font-mono text-xs/none uppercase dark:opacity-[96.5%] bg-neu-0" style="border-color:#36C1A0"><span class="Tag--bg absolute inset-0 opacity-20" style="background-color:#36C1A0"></span><span class="relative max-w-full items-center gap-2 overflow-hidden text-ellipsis block">backend</span></span></a></span><a data-vertical="3" class="relative flex h-full flex-col bg-neu-0 ring-neu-300 ring-offset-[3px] ring-offset-neu-0 hover:ring-1 dark:ring-neu-100" name="2015-09-14-graphql" href="/blog/2015-09-14-graphql/"><div class="relative isolate overflow-hidden bg-neu-50 dark:opacity-90 aspect-[4.75]"><canvas aria-hidden="true" class="pointer-events-none absolute inset-0 !size-full data-[visible]:animate-fade-in"></canvas></div><div class="flex grow flex-col border border-neu-200 dark:border-neu-50"><div class="typography-body-lg grow text-pretty p-4">GraphQL: A data query language</div><footer class="mt-auto flex items-end justify-between"><span class="typography-menu flex flex-col justify-center gap-2 min-h-[73px] p-4"><span>Lee Byron</span><time dateTime="2015-09-14T00:00:00.000Z" class="text-neu-700 dark:text-neu-400">September 14, 2015</time></span><div class="translate-x-px translate-y-px border-l border-t border-neu-200 p-4 dark:border-neu-50"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="-rotate-90"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></footer></div></a></div></section></div><section class="gql-container gql-section"><div class="mx-auto grid max-w-[1504px] gap-0 bg-pri-dark text-white dark:bg-pri-darker lg:grid-cols-[752px_1fr]"><div class="flex flex-col justify-between gap-6 border-pri-light p-6 xs:gap-8 xs:p-8 lg:border-r lg:p-16"><h2 class="typography-h2 text-balance">Looking for more?</h2><p class="typography-body-lg max-w-[624px]">Explore learning guides and best practices â or browse for tools, libraries and other resources.</p></div><div class="flex flex-col"><a class="flex items-center justify-between border-y border-pri-light px-6 py-10 hover:bg-white/10 xs:px-8 xs:py-16 lg:border-t-0" href="/learn/"><span class="typography-body-lg">Learn</span><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="size-10 shrink-0 -rotate-90 text-pri-light"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></a><a class="flex items-center justify-between px-6 py-10 hover:bg-white/10 xs:px-8 xs:py-16" href="/resources/"><span class="typography-body-lg">Resources</span><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="size-10 shrink-0 -rotate-90 text-pri-light"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></a></div></div></section></div></main></div></div><footer class="relative isolate !bg-neu-100 text-neu-900 dark:!bg-neu-0 max-md:px-0 max-md:pt-0"><div role="presentation" class="pointer-events-none absolute inset-0 z-[1] [--start-1:rgba(255,204,239,.05)] [--end-1:hsl(var(--color-pri-base)/.8)] dark:[--start-1:hsl(var(--color-pri-darker))] dark:[--end-1:hsl(var(--color-pri-base)/.9)] [--start-2:transparent] [--end-2:hsl(var(--color-pri-base)/.6)] dark:[--start-2:rgba(255,204,239,.1)] dark:[--end-2:hsl(var(--color-pri-base)/.8)] mix-blend-darken dark:mix-blend-lighten max-sm:![mask-size:300vw_200px] max-sm:![mask-position:center_calc(100%-100px)] sm:max-lg:![mask-origin:bottom] sm:max-lg:![mask-size:250%_300px] sm:max-lg:![mask-position:center_calc(100%-30px)] max-lg:rotate-180 " style="mask-image:url(/_next/static/media/blur-bean.d5aa6d13.webp);-webkit-mask-image:url(/_next/static/media/blur-bean.d5aa6d13.webp);mask-position:center 260px;-webkit-mask-position:center 260px;mask-size:200% 100%;-webkit-mask-size:200% 100%;mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat;mask-origin:top"><div class="absolute inset-0 bg-[linear-gradient(180deg,var(--start-1)_0%,var(--end-1)_200%)]" style="--stripe-width:12px;--angle:90deg;mask-image:repeating-linear-gradient(var(--angle), transparent, transparent var(--stripe-width), black var(--stripe-width), black calc(var(--stripe-width) * 2));-webkit-mask-image:repeating-linear-gradient(var(--angle), transparent, transparent var(--stripe-width), black var(--stripe-width), black calc(var(--stripe-width) * 2))"></div><div class="absolute inset-0 bg-[linear-gradient(180deg,var(--start-2)_0%,var(--end-2)_200%)]" style="--stripe-width:12px;--angle:90deg;mask-image:repeating-linear-gradient(var(--angle), black, black var(--stripe-width), transparent var(--stripe-width), transparent calc(var(--stripe-width) * 2));-webkit-mask-image:repeating-linear-gradient(var(--angle), black, black var(--stripe-width), transparent var(--stripe-width), transparent calc(var(--stripe-width) * 2))"></div></div><div class="mx-auto max-w-[120rem] border-neu-400 dark:border-neu-100 xl:border-t 3xl:border-x"><div class="flex flex-wrap justify-between gap-4 p-4 max-md:w-full md:p-6 2xl:px-10"><a class="nextra-logo flex items-center" href="/"><svg xmlns="http://www.w3.org/2000/svg" style="fill:color(display-p3 .8824 0 .5961)" viewBox="0 0 367 100" class="h-6" title="GraphQL"><path fill-rule="evenodd" d="m50 6.468 37.7 21.766v43.532L50 93.532 12.3 71.766V28.234zM16.53 30.676v31.976l27.692-47.964zM50 13.14 18.078 68.43h63.844zm27.692 59.52H22.308L50 88.648zm5.778-10.008L55.778 14.688 83.47 30.676z" clip-rule="evenodd"></path><circle cx="14.41" cy="29.45" r="8.91"></circle><circle cx="14.41" cy="70.545" r="8.91"></circle><circle cx="50" cy="91.09" r="8.91"></circle><circle cx="85.585" cy="70.545" r="8.91"></circle><circle cx="85.585" cy="29.455" r="8.91"></circle><circle cx="50" cy="8.91" r="8.91"></circle><path d="M138.875 71.625q-7.812 0-12.125-4.5t-4.562-12.062q-.063-1.876-.063-5.938t.063-5.937q.25-7.563 4.562-12.063t12.125-4.5q5.313 0 8.938 2 3.624 2 5.375 4.75 1.812 2.688 1.937 4.813v.124q0 .501-.375.813-.375.313-.938.313h-1.374q-.562 0-.813-.25t-.5-1q-1.062-3.313-4.125-5.563-3-2.25-8.125-2.25-5.812 0-9.187 3.188-3.313 3.187-3.563 9.937-.062 1.875-.062 5.625t.062 5.625q.25 6.75 3.563 9.938 3.375 3.186 9.187 3.187 5.813 0 9.375-3.312 3.562-3.314 3.562-9.813v-3.187h-10.874q-.625 0-1-.376a1.58 1.58 0 0 1-.375-1.062v-.875q0-.625.375-1 .375-.437 1-.437h13.374q.688 0 1.063.374.375.376.375 1.063v5.5q0 4.999-2 8.813-2 3.811-5.812 5.937-3.813 2.125-9.063 2.125M165.941 71q-.625 0-1-.375t-.375-1V39.938q0-.
5625.375-1 .375-.438 1-.438h1q.625 0 1 .438.438.375.438 1v2.874q2.25-4.312 8.5-4.312h2.312q.625 0 1 .375t.375 1v.875q0 .625-.375 1t-1 .375h-2.687q-3.75 0-5.938 2.188-2.187 2.187-2.187 5.937v19.375q0 .625-.438 1-.375.375-1 .375zM194.557 71.625q-3 0-5.563-1.25T184.869 67q-1.5-2.126-1.5-4.687 0-4.125 3.313-6.75 3.374-2.625 9.062-3.376l9.875-1.374v-2.188q0-3.438-2.125-5.25-2.063-1.875-6.375-1.875-3.188 0-5.25 1.25-2 1.25-2.562 3-.25.75-.625 1.063-.313.25-.875.25h-.875q-.563 0-1-.376a1.5 1.5 0 0 1-.375-1q0-1.374 1.25-3.187 1.25-1.875 3.875-3.25t6.437-1.375q6.687 0 9.5 3.188 2.813 3.187 2.813 7.75v20.812q0 .625-.375 1-.376.375-1 .375h-1.063q-.625 0-1-.375t-.375-1v-2.937q-1.375 2.061-4.062 3.5-2.626 1.437-7 1.437m.625-3.625q4.561 0 7.5-3 2.937-3 2.937-8.625V54.25l-8.062 1.125q-5.125.687-7.75 2.375T187.182 62q0 2.875 2.375 4.438Q191.994 68 195.182 68M220.752 82.875q-.624 0-1-.375-.375-.375-.375-1V39.875q0-.625.375-1 .376-.375 1-.375h1.063q.625 0 1 .375t.375 1v2.938q3.626-4.938 10.5-4.938 6.75 0 9.937 4.313 3.25 4.25 3.438 10.5.063.624.062 2.062 0 1.437-.062 2.063-.187 6.25-3.438 10.562-3.187 4.25-9.937 4.25-6.813 0-10.5-4.937V81.5q0 .625-.375 1t-1 .375zM233.315 68q5.062 0 7.375-3.187 2.375-3.25 2.562-8.313.063-.625.063-1.75 0-5.813-2.25-9.5-2.25-3.75-7.75-3.75-4.938 0-7.438 3.313-2.5 3.25-2.687 7.687l-.063 2.438.063 2.437a12.8 12.8 0 0 0 1.187 5.125q1.125 2.375 3.375 3.938Q230.002 68 233.315 68M257.068 71q-.625 0-1-.375t-.375-1V28q0-.625.375-1t1-.375h1.063q.625 0 1 .375t.375 1v14.813q1.875-2.439 4.25-3.688 2.437-1.25 6.25-1.25 6.125 0 9.437 3.938 3.313 3.874 3.313 10.062v17.75q0 .625-.375 1t-1 .375h-1.063q-.625 0-1-.375t-.375-1V52.188q0-5.063-2.5-7.876-2.437-2.812-7.062-2.812-4.5 0-7.188 2.875-2.687 2.813-2.687 7.813v17.437q0 .625-.375 1t-1 .375zM321.682 75.063q-.938 0-2-1.438l-2.75-3.812q-3.75 1.812-8.75 1.812-16.062 0-16.5-17.25-.062-1.875-.062-5.25t.062-5.25q.25-8.5 4.625-12.875t11.875-4.375T320.057 31t4.625 12.875q.125 3.75.125 5.25t-.125 5.25q-.312 8.937-4.562 13.125l4 5.625q.187.376.187.688a1.2 1.2 0 0 1-.375.874 1.2 1.2 0 0 1-.875.376zm-13.5-7.188q5.625 0 8.938-3.375 3.375-3.437 3.625-10.437.125-3.75.125-4.938t-.125-4.937q-.25-7-3.625-10.376-3.375-3.437-8.938-3.437-5.562 0-8.937 3.438-3.375 3.375-3.625 10.374-.063 1.875-.063 4.938t.063 4.938q.25 6.999 3.562 10.437 3.375 3.375 9 3.375M336.126 71q-.625 0-1-.375t-.375-1v-41q0-.625.375-1t1-.375h1.188q.625 0 1 .375t.375 1V67.25h21.562q.688 0 1.063.375t.375 1.063v.937q0 .625-.438 1-.375.375-1 .375z"></path></svg></a><div class="typography-menu flex items-center *:rounded-none dark:*:text-neu-900 md:hidden"><button type="button" tabindex="0" role="combobox" aria-expanded="false" aria-haspopup="listbox" aria-label="Change theme" title="Change theme" class="gql-focus-visible relative cursor-pointer text-neu-800 transition-colors before:absolute before:-inset-2 hover:bg-neu-100 hover:text-neu-900 focus-visible:outline-offset-4 dark:text-neu-700 dark:hover:bg-neu-50/50"><div class="flex items-center gap-2 border border-transparent p-[5px] [[aria-expanded=true]>&]:border-neu-300 [[aria-expanded=true]>&]:bg-neu-0 [[aria-expanded=true]>&]:dark:border-neu-100"><svg fill="currentColor" viewBox="0 0 14 14" height="16"><path fill-rule="evenodd" d="M7.583 0H6.417v2.333h1.166zM0 6.417v1.166h2.333V6.417zm11.667 0H14v1.166h-2.333zM7.583 14H6.417v-2.333h1.166zM4.667 3.5h4.666v1.167H4.667zm0 5.833H3.5V4.667h1.167zm0 0V10.5h4.666V9.333H10.5V4.667H9.333v4.666zm7-8.166h1.166v1.166h-1.166zm0 1.166V3.5H10.5V2.333zm1.166 10.5h-1.166v-1.166h1.166zm-1.166-1.166H10.5V10.5h1.167zm-9.334-10.5H1.167v1.166h1.166V3.5H3.5V2.333H2.333zM1.167 12.833h1.166v-1.166H3.5V10.5H2.333v1.167H1.167z" clip-rule="evenodd"></path></svg><span class="text-sm capitalize leading-none text-neu-800">light</span></div></button><input style="clip:rect(0 0 0 0);overflow:hidden;white-space:nowrap;position:fixed;top:0;left:0;border:0;padding:0;width:1px;height:1px;margin:-1px" tabindex="-1" aria-hidden="true" value="light"/></div></div><div class="grid grid-cols-2 gap-px bg-neu-400 py-px dark:bg-neu-100 lg:grid-cols-5"><div class="typography-menu relative bg-neu-100 py-4 dark:bg-neu-0 lg:py-6 3xl:py-10"><h3 class="font-bold lg:mb-4 3xl:mb-10"><a class="gql-focus-visible block p-4 underline-offset-4 hover:underline focus-visible:!-outline-offset-4 md:px-6 2xl:px-10" href="/learn/">Learn</a></h3><a class="gql-focus-visible block p-4 underline-offset-4 hover:underline focus-visible:!-outline-offset-4 md:px-6 2xl:px-10" href="/learn/">Introduction</a><a class="gql-focus-visible block p-4 underline-offset-4 hover:underline focus-visible:!-outline-offset-4 md:px-6 2xl:px-10" href="/learn/best-practices/">Best Practices</a><a class="gql-focus-visible block p-4 underline-offset-4 hover:underline focus-visible:!-outline-offset-4 md:px-6 2xl:px-10" href="/faq/"><span><span class="max-md:hidden">Frequently Asked Questions</span><span class="md:hidden">FAQ</span></span></a><a class="gql-focus-visible block p-4 underline-offset-4 hover:underline focus-visible:!-outline-offset-4 md:px-6 2xl:px-10" href="/community/resources/training-courses/">Training Courses</a></div><div class="typography-menu relative bg-neu-100 py-4 dark:bg-neu-0 lg:py-6 3xl:py-10"><h3 class="font-bold lg:mb-4 3xl:mb-10"><span class="block p-4 md:px-6 2xl:px-10">Code</span></h3><a rel="noopener noreferrer" target="_blank" href="https://github.com/graphql" class="gql-focus-visible block p-4 underline-offset-4 hover:underline focus-visible:!-outline-offset-4 md:px-6 2xl:px-10">GitHub</a><a rel="noopener noreferrer" target="_blank" href="https://spec.graphql.org" class="gql-focus-visible block p-4 underline-offset-4 hover:underline focus-visible:!-outline-offset-4 md:px-6 2xl:px-10">Specification</a><a class="gql-focus-visible block p-4 underline-offset-4 hover:underline focus-visible:!-outline-offset-4 md:px-6 2xl:px-10" href="/code/">Libraries & Tools</a><a class="gql-focus-visible block p-4 underline-offset-4 hover:underline focus-visible:!-outline-offset-4 md:px-6 2xl:px-10" href="/code/?tags=services">Services & Vendors</a></div><div class="typography-menu relative bg-neu-100 py-4 dark:bg-neu-0 lg:py-6 3xl:py-10"><h3 class="font-bold lg:mb-4 3xl:mb-10"><span class="block p-4 md:px-6 2xl:px-10">Community</span></h3><a class="gql-focus-visible block p-4 underline-offset-4 hover:underline focus-visible:!-outline-offset-4 md:px-6 2xl:px-10" href="/community/resources/official-channels/">Resources</a><a class="gql-focus-visible block p-4 underline-offset-4 hover:underline focus-visible:!-outline-offset-4 md:px-6 2xl:px-10" href="/community/events/">Events</a><a class="gql-focus-visible block p-4 underline-offset-4 hover:underline focus-visible:!-outline-offset-4 md:px-6 2xl:px-10" href="/community/contribute/essential-links/"><span>Contribute<span class="max-md:hidden"> to GraphQL</span></span></a><a rel="noopener noreferrer" target="_blank" href="https://landscape.graphql.org" class="gql-focus-visible block p-4 underline-offset-4 hover:underline focus-visible:!-outline-offset-4 md:px-6 2xl:px-10">Landscape</a><a rel="noopener noreferrer" target="_blank" href="https://store.graphql.org/" class="gql-focus-visible block p-4 underline-offset-4 hover:underline focus-visible:!-outline-offset-4 md:px-6 2xl:px-10">Shop</a></div><div class="typography-menu relative bg-neu-100 py-4 dark:bg-neu-0 lg:py-6 3xl:py-10"><h3 class="font-bold lg:mb-4 3xl:mb-10"><span class="block p-4 md:px-6 2xl:px-10">& More</span></h3><a class="gql-focus-visible block p-4 underline-offset-4 hover:underline focus-visible:!-outline-offset-4 md:px-6 2xl:px-10" href="/blog/">Blog</a><a class="gql-focus-visible block p-4 underline-offset-4 hover:underline focus-visible:!-outline-offset-4 md:px-6 2xl:px-10" href="/foundation/">GraphQL Foundation</a><a class="gql-focus-visible block p-4 underline-offset-4 hover:underline focus-visible:!-outline-offset-4 md:px-6 2xl:px-10" href="/foundation/community-grant/">Community Grant</a><a class="gql-focus-visible block p-4 underline-offset-4 hover:underline focus-visible:!-outline-offset-4 md:px-6 2xl:px-10" href="/brand/">Brand Guidelines</a><a class="gql-focus-visible block p-4 underline-offset-4 hover:underline focus-visible:!-outline-offset-4 md:px-6 2xl:px-10" href="/codeofconduct/">Code of Conduct</a></div><div class="flex flex-col max-lg:contents"><a class="dark gql-focus-visible group relative inline-flex flex-col bg-pri-base text-neu-900 after:absolute after:inset-0 hover:after:bg-white/[.025] dark:bg-pri-dark z-[2] col-span-full flex-1 max-lg:row-start-1" href="/conf/2026/"><div class="flex flex-1 flex-col gap-4 border-b border-pri-lighter p-4 dark:border-pri-light/50"><h2 class="font-mono text-2xl uppercase leading-none md:text-3xl"><span class="max-xs:hidden">Join</span> GraphQLConf 2026</h2></div><div class="typography-body-sm flex font-sans"><div class="flex-1 justify-center border-r border-pri-lighter p-4 dark:border-pri-light/50">May <span class="whitespace-nowrap">19â20</span><br/>Fremont, California</div><div class="flex w-[min(calc(25%-.5px),73.5px)] items-center justify-center"><svg width="40" height="40" fill="currentColor" viewBox="0 0 40 40" class="size-10 -rotate-90 text-pri-lighter transition group-hover:translate-x-0.5 group-hover:text-neu-900"><path fill-rule="evenodd" d="M18.333 6.667h3.334v20H25V30h-3.333v3.333h-3.334V30H15v-3.334h3.333zm-6.666 16.666v3.334H15v-3.334zm0 0V20H8.333v3.333zm16.666 0v3.334H25v-3.334zm0 0V20h3.334v3.333z" clip-rule="evenodd"></path></svg></div></div></a><div class="flex items-center gap-1 *:p-2 *:outline-none *:transition-colors hover:*:text-primary focus:*:text-primary focus:*:ring focus:*:ring-primary [&_svg]:h-5 gql-all-anchors-focusable col-span-full gap-px text-pri-base *:flex *:flex-1 *:items-center *:justify-center *:bg-neu-100 *:dark:bg-neu-0 max-sm:*:aspect-square lg:*:aspect-square [&>a:focus]:text-current [&>a:focus]:!-outline-offset-[6px] [&>a:focus]:ring-transparent [&>a:hover]:bg-neu-0/90 [&>a:hover]:text-current [&_svg]:!h-8"><a href="https://github.com/graphql" aria-label="GitHub" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 30 30"><path fill-rule="evenodd" d="M15.1.413a14.81 14.81 0 0 0-4.684 28.862c.742.138 1.012-.32
51.012-.712 0-.35-.013-1.283-.02-2.518-4.12.893-4.99-1.987-4.99-1.987-.675-1.71-1.643-2.165-1.643-2.165-1.345-.918.1-.9.1-.9 1.488.105 2.27 1.525 2.27 1.525 1.32 2.265 3.466 1.61 4.31 1.23.133-.955.515-1.608.94-1.978-3.29-.375-6.747-1.645-6.747-7.32 0-1.615.577-2.937 1.525-3.975-.15-.372-.66-1.88.145-3.917 0 0 1.242-.4 4.075 1.517a14.3 14.3 0 0 1 3.705-.5 14.2 14.2 0 0 1 3.707.5c2.826-1.915 4.068-1.517 4.068-1.517.807 2.037.3 3.545.15 3.92.95 1.035 1.52 2.357 1.52 3.975 0 5.687-3.462 6.94-6.76 7.305.53.457 1.005 1.36 1.005 2.742 0 1.98-.02 3.575-.02 4.063 0 .395.267.857 1.02.712A14.816 14.816 0 0 0 15.101.413" clip-rule="evenodd"></path></svg></a><a href="https://discord.graphql.org" aria-label="Discord" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="#5865f2" viewBox="0 0 20 20" class="fill-current"><path d="M16.956 3.693a16.5 16.5 0 0 0-4.134-1.274 10 10 0 0 0-.526 1.072 15.8 15.8 0 0 0-4.58 0 13 13 0 0 0-.525-1.072c-1.429.239-2.82.667-4.135 1.274C.44 7.553-.269 11.323.085 15.043a16.8 16.8 0 0 0 5.065 2.536q.614-.828 1.08-1.747a10.6 10.6 0 0 1-1.708-.82 6 6 0 0 0 .415-.323c3.295 1.507 6.864 1.507 10.119 0 .141.111.272.223.414.324-.546.323-1.112.596-1.709.818a12.3 12.3 0 0 0 1.083 1.75 16.8 16.8 0 0 0 5.064-2.538c.434-4.305-.689-8.045-2.952-11.35m-10.27 9.056c-.99 0-1.8-.9-1.8-2.002s.79-2.001 1.8-2.001c1 0 1.82.9 1.798 2.002 0 1.101-.798 2-1.798 2m6.641 0c-.99 0-1.8-.9-1.8-2.002s.79-2.001 1.8-2.001c1 0 1.82.9 1.8 2.002 0 1.101-.79 2-1.8 2"></path></svg></a><a href="https://twitter.com/graphql" aria-label="Twitter" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 20 20"><path d="m11.396 9.473 5.461-6.216h-1.293L10.82 8.654 7.034 3.257H2.666l5.726 8.161-5.726 6.518H3.96l5.006-5.7 4 5.7h4.367M4.427 4.212h1.987l9.149 12.816h-1.988"></path></svg></a><a href="https://linkedin.com/company/graphql-foundation" aria-label="LinkedIn" target="_blank" rel="noreferrer"><svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="0" viewBox="0 0 24 24"><path stroke="none" d="M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6M2 9h4v12H2z"></path><circle cx="4" cy="4" r="2" stroke="none"></circle></svg></a></div></div></div><div class="relative flex items-center justify-between gap-4 p-4 max-md:justify-center md:px-6 2xl:px-10"><div class="typography-menu flex items-center *:rounded-none dark:*:text-neu-900 max-md:hidden"><button type="button" tabindex="0" role="combobox" aria-expanded="false" aria-haspopup="listbox" aria-label="Change theme" title="Change theme" class="gql-focus-visible relative cursor-pointer text-neu-800 transition-colors before:absolute before:-inset-2 hover:bg-neu-100 hover:text-neu-900 focus-visible:outline-offset-4 dark:text-neu-700 dark:hover:bg-neu-50/50"><div class="flex items-center gap-2 border border-transparent p-[5px] [[aria-expanded=true]>&]:border-neu-300 [[aria-expanded=true]>&]:bg-neu-0 [[aria-expanded=true]>&]:dark:border-neu-100"><svg fill="currentColor" viewBox="0 0 14 14" height="16"><path fill-rule="evenodd" d="M7.583 0H6.417v2.333h1.166zM0 6.417v1.166h2.333V6.417zm11.667 0H14v1.166h-2.333zM7.583 14H6.417v-2.333h1.166zM4.667 3.5h4.666v1.167H4.667zm0 5.833H3.5V4.667h1.167zm0 0V10.5h4.666V9.333H10.5V4.667H9.333v4.666zm7-8.166h1.166v1.166h-1.166zm0 1.166V3.5H10.5V2.333zm1.166 10.5h-1.166v-1.166h1.166zm-1.166-1.166H10.5V10.5h1.167zm-9.334-10.5H1.167v1.166h1.166V3.5H3.5V2.333H2.333zM1.167 12.833h1.166v-1.166H3.5V10.5H2.333v1.167H1.167z" clip-rule="evenodd"></path></svg><span class="text-sm capitalize leading-none text-neu-800">light</span></div></button><input style="clip:rect(0 0 0 0);overflow:hidden;white-space:nowrap;position:fixed;top:0;left:0;border:0;padding:0;width:1px;height:1px;margin:-1px" tabindex="-1" aria-hidden="true" value="light"/></div><p class="typography-body-xs flex flex-col text-pretty max-md:gap-5">Copyright © <!-- -->2026<!-- --> The GraphQL Foundation. All rights reserved.</p></div></div></footer></div></div>
5<script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/blog","query":{},"buildId":"7hVvEeerbm7jBIjLpXBD0","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script>
5<script>if (window.navigator.platform.includes("Mac")) document.documentElement.classList.add("mac")</script>
5</body></html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.