CINXE.COM
Blog (The Guild)
<!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:212deg;--nextra-primary-saturation:100%;--nextra-navbar-height:4rem;--nextra-menu-height:3.75rem;--nextra-banner-height:2.5rem;--nextra-bg:250,250,250;}.dark{--nextra-primary-hue:204deg;--nextra-primary-saturation:100%;--nextra-bg:15,17,20;}</style><title>Blog (The Guild)</title><meta property="og:title" content="Blog (The Guild)"/><meta name="description" content="Announcements about our Open-Source projects"/><meta property="og:description" content="Announcements about our Open-Source projects"/><link rel="canonical" href="https://the-guild.dev/blog"/><meta name="og:image" content="https://og-image.the-guild.dev/?product=GUILD&title=Blog"/><meta property="og:site_name" content="The Guild"/><meta name="next-head-count" content="11"/><style></style><meta charSet="utf-8"/><link rel="alternate" type="application/rss+xml" title="RSS Feed for the-guild.dev" href="/feed.xml"/><link rel="preload" href="/_next/static/media/791334aa8b2b679f-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/_next/static/media/f9946f06d70a1b5b-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/_next/static/media/afba6ba6bf9157e8-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/_next/static/media/08404bcfb1dae67a-s.p.woff2" as="font" type="font/woff2" crossorigin="anonymous" data-next-font="size-adjust"/><link rel="preload" href="/_next/static/css/51f53da57c7cfc60.css" as="style"/><link rel="stylesheet" href="/_next/static/css/51f53da57c7cfc60.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/_next/static/chunks/webpack-b1e10a1cd77ddf98.js" defer=""></script><script src="/_next/static/chunks/framework-2b1977804b06557d.js" defer=""></script><script src="/_next/static/chunks/main-1836adafa8010c0a.js" defer=""></script><script src="/_next/static/chunks/pages/_app-7a0ea1132c415a9b.js" defer=""></script><script src="/_next/static/chunks/770-7451e6a304b21d00.js" defer=""></script><script src="/_next/static/chunks/pages/blog-822dab41261a36d7.js" defer=""></script><script src="/_next/static/S1V_nyr3diPgZU5ww-uIH/_buildManifest.js" defer=""></script><script src="/_next/static/S1V_nyr3diPgZU5ww-uIH/_ssgManifest.js" defer=""></script><style id="__jsx-2539480681">:root{--colors-text:white;--colors-dim:#777;--colors-accent:#1cc8ee;--colors-primary:white;--hover-opacity:0.75}html,body,#__next{margin:0;width:100%;height:100%}html{font-family:'__IBM_Plex_Sans_fd4d47', '__IBM_Plex_Sans_Fallback_fd4d47'} body{z-index:-1}a{cursor:pointer;text-decoration:none;-webkit-transition:all.2s ease 0s;-moz-transition:all.2s ease 0s;-o-transition:all.2s ease 0s;transition:all.2s ease 0s}input:-webkit-autofill{-webkit-transition:color 9999s ease-out,background-color 9999s ease-out;-webkit-transition-delay:9999s}</style><meta name="msapplication-config" content="none" /><link rel="manifest" href="/site.webmanifest" /><link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" /><link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" /><link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png" /><link rel="shorcut icon" type="image/x-icon" href="/favicon.ico"><script> window.$crisp = []; window.CRISP_WEBSITE_ID = 'af9adec5-ddfa-4db9-a4a3-25769daf2fc2'; (function () { d = document; s = d.createElement('script'); s.src = 'https://client.crisp.chat/l.js'; s.async = 1; d.getElementsByTagName('head')[0].appendChild(s); })(); window.$crisp.push([ 'set', 'session:segments', [["guild-website"]], ]); </script><script>!function(t){if(window.ko)return;window.ko=[],["identify","track","removeListeners","open","on","off","qualify","ready"].forEach(function(t){ko[t]=function(){var n=[].slice.call(arguments);return n.unshift(t),ko.push(n),ko}});var n=document.createElement("script");n.async=!0,n.setAttribute("src","https://cdn.getkoala.com/v1/pk_fab338b8afd93b93f49fafebf9651287060e/sdk.js"),(document.body || document.head).appendChild(n)}();</script> <script async src="https://www.googletagmanager.com/gtag/js?id=G-VN2KZS6FK4"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){window.dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-VN2KZS6FK4'); </script></head><body><div id="__next"><div style="position:fixed;z-index:9999;top:16px;left:16px;right:16px;bottom:16px;pointer-events:none"></div><script>!function(){try{var d=document.documentElement,c=d.classList;c.remove('light','dark');var e=localStorage.getItem('theme');if('system'===e||(!e&&true)){var t='(prefers-color-scheme: dark)',m=window.matchMedia(t);if(m.media!==t||m.matches){d.style.colorScheme = 'dark';c.add('dark')}else{d.style.colorScheme = 'light';c.add('light')}}else if(e){c.add(e|| '')}if(e==='light'||e==='dark')d.style.colorScheme=e}catch(e){}}()</script><div dir="ltr"><script>document.documentElement.setAttribute('dir','ltr')</script><div class="nextra-nav-container _sticky _top-0 _z-20 _w-full _bg-transparent print:_hidden"><div class="nextra-nav-container-blur"></div><nav class="_mx-auto _flex _h-[var(--nextra-navbar-height)] _max-w-[90rem] _items-center _justify-end _gap-4 _pl-[max(env(safe-area-inset-left),1.5rem)] _pr-[max(env(safe-area-inset-right),1.5rem)]"><div class="_flex _items-center ltr:_mr-auto rtl:_ml-auto"><a title="View our website" class="flex items-center gap-x-1.5 transition-opacity hover:opacity-75 outline-none focus-visible:ring transition" href="https://the-guild.dev"><svg width="51" height="54" viewBox="0 0 51 54" fill="currentColor" class="h-9 w-auto"><path fill-rule="evenodd" clip-rule="evenodd" d="M2.06194 20.2745C2.68522 20.4867 3.35002 20.6073 4.04393 20.6073C4.6672 20.6073 5.26838 20.5117 5.83612 20.3391V36.7481C5.83612 37.328 6.14561 37.8684 6.64488 38.1582L22.3391 47.2835C23.0814 46.4108 24.1808 45.8554 25.4084 45.8554C26.7446 45.8554 27.927 46.5134 28.6639 47.5218C28.6769 47.5403 28.6909 47.5576 28.7039 47.5756C28.7557 47.6494 28.8041 47.7248 28.8511 47.8026L28.9049 47.891C28.9465 47.9626 28.9849 48.0355 29.0214 48.1093C29.0414 48.1489 29.0603 48.1891 29.0792 48.2294C29.1105 48.2978 29.14 48.3673 29.1681 48.4378C29.1881 48.4882 29.2059 48.5388 29.2237 48.5899C29.2462 48.6544 29.2684 48.7195 29.2873 48.7852C29.3056 48.8477 29.3202 48.9107 29.3359 48.9737L29.3762 49.1513C29.3918 49.23 29.4021 49.3097 29.4129 49.3902C29.4188 49.4379 29.428 49.4847 29.4323 49.5324C29.4448 49.6627 29.4523 49.7941 29.4523 49.9277C29.4523 50.1406 29.4313 50.3474 29.3994 50.5516L29.3881 50.6275C29.0576 52.5406 27.4007 54 25.4084 54C23.6318 54 22.1227 52.8386 21.5809 51.2314L4.7578 41.4502C3.08905 40.4806 2.06194 38.6876 2.06194 36.7481V20.2745ZM46.0991 10.2908C48.3291 10.2908 50.1428 12.1173 50.1428 14.3631C50.1428 15.5848 49.6037 16.6794 48.755 17.4265V36.7481C48.755 38.6876 47.7279 40.4806 46.0591 41.4502L31.6051 49.8539C31.5889 48.479 31.1274 47.2135 30.3619 46.1876L44.1722 38.1582C44.6713 37.8684 44.9809 37.328 44.9809 36.7481V18.2736C43.2938 17.7838 42.0554 16.2179 42.0554 14.3631C42.0554 13.4601 42.3524 12.6277 42.8485 11.9517C42.856 11.9409 42.8641 11.9306 42.8717 11.9197C42.9655 11.7948 43.0657 11.6743 43.1725 11.5608L43.187 11.545C43.4086 11.3127 43.6567 11.1079 43.9274 10.9337C43.9553 10.9152 43.985 10.8984 44.0136 10.8804C44.1209 10.8158 44.2303 10.755 44.3435 10.7002C44.3765 10.6844 44.4094 10.6671 44.4427 10.6519C44.5846 10.5878 44.7291 10.5286 44.879 10.4814C44.879 10.4819 44.8796 10.4814 44.879 10.4814L45.173 10.3994C45.4705 10.3287 45.7805 10.2908 46.0991 10.2908ZM40.5727 19.0708V32.5386C40.5727 34.1339 39.7202 35.6206 38.3486 36.4181L27.5398 42.696L26.5424 43.2466L26.5543 42.0944V37.3194L35.4506 32.1471V27.4102L27.8779 25.24L40.5727 19.0708ZM10.2444 19.0627L15.3665 21.593V32.1467L24.1279 37.2409V43.1973L12.4684 36.4189C11.0968 35.6206 10.2444 34.1339 10.2444 32.5388V19.0627ZM23.1844 9.96788C24.5349 9.18328 26.2818 9.18328 27.6325 9.96788L39.4904 16.8956L38.3636 17.4327L33.9644 19.6061L25.4084 14.6315L16.8523 19.6061L11.3442 16.8843L12.4026 16.2425C12.4123 16.2338 12.4398 16.2153 12.4694 16.1985L23.1844 9.96788ZM25.4083 0C26.3394 0 27.27 0.242165 28.1041 0.72704L42.644 9.18112C41.5737 9.9076 40.7455 10.9637 40.2899 12.2006L26.217 4.01908C25.9718 3.87572 25.6919 3.80081 25.4083 3.80081C25.1248 3.80081 24.8454 3.87572 24.5995 4.01908L8.02283 13.6574C8.06272 13.887 8.08753 14.1216 8.08753 14.3632C8.08753 16.1154 6.98116 17.608 5.43643 18.1814C5.42457 18.1858 5.41217 18.1906 5.40031 18.1944C5.27792 18.2385 5.15392 18.2765 5.02666 18.3085L4.95065 18.328C4.83419 18.3551 4.71503 18.3764 4.59533 18.3931L4.49775 18.4079C4.3484 18.4246 4.19742 18.4356 4.04377 18.4356C3.87932 18.4356 3.71758 18.4225 3.55743 18.403C3.5143 18.3974 3.47225 18.3899 3.42965 18.3834C3.30673 18.3643 3.18595 18.34 3.06679 18.3101C3.03012 18.3008 2.99347 18.2921 2.95681 18.2819C2.64139 18.1922 2.3416 18.0679 2.06177 17.9088L1.82144 17.7607C0.725648 17.0318 0 15.7822 0 14.3632C0 12.1175 1.81431 10.2909 4.04377 10.2909C4.62229 10.2909 5.17117 10.4158 5.66881 10.6368L22.7124 0.72704C23.5465 0.242165 24.4777 0 25.4083 0Z"></path></svg><svg width="75" height="40" viewBox="0 0 47 25" fill="currentColor" class="w-11"><path d="M0.313477 2.77294H3.57946V10.6541H6.26751V2.77294H9.53349V0.163818H0.313477V2.77294Z"></path><path d="M17.8588 0.163818V4.23889H13.5848V0.163818H10.9102V10.6541H13.5848V6.75386H17.8588V10.6541H20.5468V0.163818H17.8588Z"></path><path d="M22.568 10.6541H30.6187V8.05842H25.2561V6.71352H29.6645V4.27923H25.2561V2.77294H30.6187V0.163818H22.568V10.6541Z"></path><path d="M5.53497 20.9193H8.05247V21.2043C7.55963 21.9036 6.76042 22.3569 5.82801 22.3569C4.25624 22.3569 3.00414 21.1395 3.00414 19.6113C3.00414 18.0831 4.25624 16.8657 5.82801 16.8657C6.73378 16.8657 7.53299 17.2672 8.05247 17.9018L10.2237 16.4772C9.22464 15.208 7.61291 14.3661 5.82801 14.3661C2.81766 14.3661 0.313477 16.7232 0.313477 19.6113C0.313477 22.4994 2.81766 24.8564 5.82801 24.8564C6.89362 24.8564 7.94591 24.4679 8.45208 23.7167V24.6622H10.5433V18.7695H5.53497V20.9193Z"></path><path d="M19.0352 14.5604V20.0905C19.0352 21.5539 18.3026 22.3569 16.904 22.3569C15.5187 22.3569 14.7994 21.5539 14.7994 20.0905V14.5604H12.1354V20.2459C12.1354 22.849 13.7871 24.8564 16.904 24.8564C20.0076 24.8564 21.6859 22.849 21.6859 20.2459V14.5604H19.0352Z"></path><path d="M23.5364 14.5604V24.6622H26.2004V14.5604H23.5364Z"></path><path d="M28.1958 24.6622H35.8283V22.1626H30.8465V14.5604H28.1958V24.6622Z"></path><path d="M37.1999 24.6622H42.0218C45.2719 24.6622 46.937 22.3698 46.937 19.6113C46.937 16.8657 45.2719 14.5604 42.0218 14.5604H37.1999V24.6622ZM41.822 17.0729C43.4071 17.0729 44.2463 18.096 44.2463 19.6113C44.2463 21.1266 43.4071 22.1626 41.822 22.1626H39.864V17.0729H41.822Z"></path></svg></a></div><div class="_relative" data-headlessui-state=""><button class="_text-sm contrast-more:_text-gray-700 contrast-more:dark:_text-gray-100 _text-gray-600 hover:_text-gray-800 dark:_text-gray-400 dark:hover:_text-gray-200 max-md:_hidden _items-center _whitespace-nowrap _rounded _flex _gap-1" id="headlessui-menu-button-:Ril5m:" type="button" aria-haspopup="menu" aria-expanded="false" data-headlessui-state="">Products<svg fill="none" viewBox="0 0 24 24" stroke="currentColor" class="_h-[18px] _min-w-[18px] _rounded-sm _p-0.5"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7" class="_origin-center _transition-transform _rotate-90"></path></svg></button></div><a class="_text-sm contrast-more:_text-gray-700 contrast-more:dark:_text-gray-100 max-md:_hidden _whitespace-nowrap _font-medium _subpixel-antialiased" aria-current="true" href="/blog">Blog</a><a class="_text-sm contrast-more:_text-gray-700 contrast-more:dark:_text-gray-100 max-md:_hidden _whitespace-nowrap _text-gray-600 hover:_text-gray-800 dark:_text-gray-400 dark:hover:_text-gray-200" aria-current="false" href="/about-us">About Us</a><a class="_text-sm contrast-more:_text-gray-700 contrast-more:dark:_text-gray-100 max-md:_hidden _whitespace-nowrap _text-gray-600 hover:_text-gray-800 dark:_text-gray-400 dark:hover:_text-gray-200" aria-current="false" href="/contact">Contact Us</a><div class="nextra-search _relative md:_w-64 max-md:_hidden"><div class="_relative _flex _items-center _text-gray-900 contrast-more:_text-gray-800 dark:_text-gray-300 contrast-more:dark:_text-gray-300"><input spellcheck="false" class="_w-full _appearance-none _rounded-lg _px-3 _py-2 _transition-colors _text-base _leading-tight md:_text-sm _bg-black/[.05] dark:_bg-gray-50/10 focus:!_bg-transparent placeholder:_text-gray-500 dark:placeholder:_text-gray-400 contrast-more:_border contrast-more:_border-current" type="search" placeholder="Search…" value=""/></div></div><a href="https://github.com/the-guild-org/the-guild-website" target="_blank" rel="noreferrer"><svg width="24" height="24" fill="currentColor" viewBox="3 3 18 18"><title>GitHub</title><path d="M12 3C7.0275 3 3 7.12937 3 12.2276C3 16.3109 5.57625 19.7597 9.15374 20.9824C9.60374 21.0631 9.77249 20.7863 9.77249 20.5441C9.77249 20.3249 9.76125 19.5982 9.76125 18.8254C7.5 19.2522 6.915 18.2602 6.735 17.7412C6.63375 17.4759 6.19499 16.6569 5.8125 16.4378C5.4975 16.2647 5.0475 15.838 5.80124 15.8264C6.51 15.8149 7.01625 16.4954 7.18499 16.7723C7.99499 18.1679 9.28875 17.7758 9.80625 17.5335C9.885 16.9337 10.1212 16.53 10.38 16.2993C8.3775 16.0687 6.285 15.2728 6.285 11.7432C6.285 10.7397 6.63375 9.9092 7.20749 9.26326C7.1175 9.03257 6.8025 8.08674 7.2975 6.81794C7.2975 6.81794 8.05125 6.57571 9.77249 7.76377C10.4925 7.55615 11.2575 7.45234 12.0225 7.45234C12.7875 7.45234 13.5525 7.55615 14.2725 7.76377C15.9937 6.56418 16.7475 6.81794 16.7475 6.81794C17.2424 8.08674 16.9275 9.03257 16.8375 9.26326C17.4113 9.9092 17.76 10.7281 17.76 11.7432C17.76 15.2843 15.6563 16.0687 13.6537 16.2993C13.98 16.5877 14.2613 17.1414 14.2613 18.0065C14.2613 19.2407 14.25 20.2326 14.25 20.5441C14.25 20.7863 14.4188 21.0746 14.8688 20.9824C16.6554 20.364 18.2079 19.1866 19.3078 17.6162C20.4077 16.0457 20.9995 14.1611 21 12.2276C21 7.12937 16.9725 3 12 3Z"></path></svg><span class="_sr-only">GitHub</span></a><button class="self-center rounded-sm p-2 outline-none focus-visible:ring"><svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor" stroke="currentColor" class="fill-transparent stroke-gray-500 dark:fill-gray-100 dark:stroke-gray-100"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.75 8.3425C14.4217 11.8944 11.3866 14.5777 7.82131 14.4682C4.256 14.3586 1.39135 11.494 1.2818 7.92867C1.17225 4.36336 3.85562 1.32824 7.40748 1C5.86275 3.08984 6.07942 5.99534 7.91703 7.83295C9.75464 9.67056 12.6601 9.88723 14.75 8.3425Z" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></button><button type="button" aria-label="Menu" class="nextra-hamburger _rounded active:_bg-gray-400/20 md:_hidden"><svg fill="none" width="24" height="24" viewBox="0 0 24 24" stroke="currentColor" class=""><g><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16"></path></g><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 12h16"></path><g><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 18h16"></path></g></svg></button></nav></div><div class="_mx-auto _flex _max-w-[90rem]"><div class="motion-reduce:_transition-none [transition:background-color_1.5s_ease] _bg-transparent"></div><aside class="nextra-sidebar-container _flex _flex-col md:_top-16 md:_shrink-0 motion-reduce:_transform-none _transform-gpu _transition-all _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="nextra-search _relative md:_w-64"><div class="_relative _flex _items-center _text-gray-900 contrast-more:_text-gray-800 dark:_text-gray-300 contrast-more:dark:_text-gray-300"><input spellcheck="false" class="_w-full _appearance-none _rounded-lg _px-3 _py-2 _transition-colors _text-base _leading-tight md:_text-sm _bg-black/[.05] dark:_bg-gray-50/10 focus:!_bg-transparent placeholder:_text-gray-500 dark:placeholder:_text-gray-400 contrast-more:_border contrast-more:_border-current" type="search" placeholder="Search…" value=""/></div></div></div><div class="_overflow-y-auto _overflow-x-hidden _p-4 _grow md:_h-[calc(100vh-var(--nextra-navbar-height)-var(--nextra-menu-height))] nextra-scrollbar"></div><div class="nextra-sidebar-footer _sticky _bottom-0 _flex _items-center _gap-2 _mx-4 _py-4" data-toggle-animation="off"><div class="_grow _flex _flex-col"><button title="Change theme" class="_h-7 _rounded-md _px-2 _text-left _text-xs _font-medium _text-gray-600 _transition-colors dark:_text-gray-400 hover:_bg-gray-100 hover:_text-gray-900 dark:hover:_bg-primary-100/5 dark:hover:_text-gray-50" id="headlessui-listbox-button-:R2njdm:" type="button" aria-haspopup="listbox" aria-expanded="false" data-headlessui-state=""><div class="_flex _items-center _gap-2 _capitalize"><svg fill="none" viewBox="3 3 18 18" width="12" height="12" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" fill="currentColor" d="M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 11-8 0 4 4 0 018 0z"></path></svg><span class="">Light</span></div></button></div><button title="Hide sidebar" class="max-md:_hidden _h-7 _rounded-md _transition-colors _text-gray-600 dark:_text-gray-400 _px-2 hover:_bg-gray-100 hover:_text-gray-900 dark:hover:_bg-primary-100/5 dark:hover:_text-gray-50"><svg height="12" width="12" viewBox="0 0 16 16" fill="currentColor"><path fill-rule="evenodd" d="M4.177 7.823l2.396-2.396A.25.25 0 017 5.604v4.792a.25.25 0 01-.427.177L4.177 8.177a.25.25 0 010-.354z" class=""></path><path fill-rule="evenodd" d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0114.25 16H1.75A1.75 1.75 0 010 14.25V1.75zm1.75-.25a.25.25 0 00-.25.25v12.5c0 .138.112.25.25.25H9.5v-13H1.75zm12.5 13H11v-13h3.25a.25.25 0 01.25.25v12.5a.25.25 0 01-.25.25z"></path></svg></button></div></aside><div id="reach-skip-nav"></div><article class="_w-full _break-words nextra-content _min-h-[calc(100vh-var(--nextra-navbar-height))] _pl-[max(env(safe-area-inset-left),1.5rem)] _pr-[max(env(safe-area-inset-right),1.5rem)]"><div><img alt="" loading="eager" width="572" height="584" decoding="async" data-nimg="1" class="absolute -left-40 top-0 z-[-1] lg:left-0" style="color:transparent" src="/_next/static/media/blue-circle.27eb020c.svg"/><img alt="" loading="eager" width="678" height="1688" decoding="async" data-nimg="1" class="drag-none absolute right-0 top-96 z-[-1] w-32 sm:top-80 sm:w-60 md:top-24 lg:w-96" style="color:transparent" src="/_next/static/media/pink-circle.447ec19b.png"/><div class="flex flex-col items-center justify-center text-center"><div class=" z-[1] mt-20 flex max-w-[700px] flex-col items-center px-2 md:px-2 lg:mt-44"><h2 class="m-0 mb-3.5 text-[#24272e] text-3xl font-medium leading-snug md:text-5xl dark:text-gray-50">The Guild's blog</h2></div></div></div><div class="nextra-container"><div class="flex flex-wrap justify-center gap-2.5 mb-20 mt-10"><a title="View other articles about GraphQL" class="rounded-md bg-gray-200 hover:!no-underline dark:bg-[#24272E] flex px-2.5 py-1.5 text-sm font-medium transition-colors hover:text-black hover:dark:bg-[#15AFD04C] hover:dark:text-[#82E9FF] text-gray-500 dark:text-[#7F818C] outline-none focus-visible:ring transition" href="/blog/tag/graphql">GraphQL (116)</a><a title="View other articles about GraphQL Federation" class="rounded-md bg-gray-200 hover:!no-underline dark:bg-[#24272E] flex px-2.5 py-1.5 text-sm font-medium transition-colors hover:text-black hover:dark:bg-[#15AFD04C] hover:dark:text-[#82E9FF] text-gray-500 dark:text-[#7F818C] outline-none focus-visible:ring transition" href="/blog/tag/graphql-federation">GraphQL Federation (28)</a><a title="View other articles about codegen" class="rounded-md bg-gray-200 hover:!no-underline dark:bg-[#24272E] flex px-2.5 py-1.5 text-sm font-medium transition-colors hover:text-black hover:dark:bg-[#15AFD04C] hover:dark:text-[#82E9FF] text-gray-500 dark:text-[#7F818C] outline-none focus-visible:ring transition" href="/blog/tag/codegen">codegen (26)</a><a title="View other articles about typescript" class="rounded-md bg-gray-200 hover:!no-underline dark:bg-[#24272E] flex px-2.5 py-1.5 text-sm font-medium transition-colors hover:text-black hover:dark:bg-[#15AFD04C] hover:dark:text-[#82E9FF] text-gray-500 dark:text-[#7F818C] outline-none focus-visible:ring transition" href="/blog/tag/typescript">typescript (24)</a><a title="View other articles about react" class="rounded-md bg-gray-200 hover:!no-underline dark:bg-[#24272E] flex px-2.5 py-1.5 text-sm font-medium transition-colors hover:text-black hover:dark:bg-[#15AFD04C] hover:dark:text-[#82E9FF] text-gray-500 dark:text-[#7F818C] outline-none focus-visible:ring transition" href="/blog/tag/react">react (23)</a><a title="View other articles about node" class="rounded-md bg-gray-200 hover:!no-underline dark:bg-[#24272E] flex px-2.5 py-1.5 text-sm font-medium transition-colors hover:text-black hover:dark:bg-[#15AFD04C] hover:dark:text-[#82E9FF] text-gray-500 dark:text-[#7F818C] outline-none focus-visible:ring transition" href="/blog/tag/node">node (11)</a><a title="View other articles about GraphQL Hive" class="rounded-md bg-gray-200 hover:!no-underline dark:bg-[#24272E] flex px-2.5 py-1.5 text-sm font-medium transition-colors hover:text-black hover:dark:bg-[#15AFD04C] hover:dark:text-[#82E9FF] text-gray-500 dark:text-[#7F818C] outline-none focus-visible:ring transition" href="/blog/tag/graphql-hive">GraphQL Hive (11)</a><a title="View other articles about graphql-modules" class="rounded-md bg-gray-200 hover:!no-underline dark:bg-[#24272E] flex px-2.5 py-1.5 text-sm font-medium transition-colors hover:text-black hover:dark:bg-[#15AFD04C] hover:dark:text-[#82E9FF] text-gray-500 dark:text-[#7F818C] outline-none focus-visible:ring transition" href="/blog/tag/graphql-modules">graphql-modules (10)</a><a title="View other articles about angular" class="rounded-md bg-gray-200 hover:!no-underline dark:bg-[#24272E] flex px-2.5 py-1.5 text-sm font-medium transition-colors hover:text-black hover:dark:bg-[#15AFD04C] hover:dark:text-[#82E9FF] text-gray-500 dark:text-[#7F818C] outline-none focus-visible:ring transition" href="/blog/tag/angular">angular (8)</a><a title="View other articles about graphql-tools" class="rounded-md bg-gray-200 hover:!no-underline dark:bg-[#24272E] flex px-2.5 py-1.5 text-sm font-medium transition-colors hover:text-black hover:dark:bg-[#15AFD04C] hover:dark:text-[#82E9FF] text-gray-500 dark:text-[#7F818C] outline-none focus-visible:ring transition" href="/blog/tag/graphql-tools">graphql-tools (7)</a></div><div class="mb-16 flex gap-14 rounded-[30px] bg-[#f1f1f1] p-7 max-xl:flex-col md:p-24 lg:mb-32 xl:gap-48 dark:bg-[#24272E]/50"><div class="text-[#7f818c] dark:text-[#7f818c]"><h2 class="m-0 mb-3.5 text-[#24272e] text-3xl font-medium leading-snug md:text-5xl dark:text-gray-50 mb-4">Join our newsletter</h2><p class="mb-4">Want to hear from us when there's something new?<br/>Sign up and stay up to date!</p><p>*By subscribing, you agree with Beehiiv’s<!-- --> <a class="text-[#24272e] dark:text-white underline hocus:no-underline _decoration-from-font [text-underline-position:from-font]" href="https://www.beehiiv.com/tou">Terms of Service</a> <!-- -->and<!-- --> <a class="text-[#24272e] dark:text-white underline hocus:no-underline _decoration-from-font [text-underline-position:from-font]" href="https://www.beehiiv.com/privacy">Privacy Policy</a>.</p></div><form name="beehiiv-form" target="_blank" class="grow"><input class="placeholder-[#24272e] dark:placeholder:text-[#b4b5be] w-full border-b bg-transparent pb-2.5 disabled:cursor-not-allowed disabled:opacity-30 border-[#24272e] dark:border-[#b4b5be] mb-14" type="email" name="email" id="member_email" placeholder="Enter your email *"/><div class="flex items-start items-center justify-between gap-10 max-md:flex-col"><button type="submit" class="text-dark relative inline-flex items-center gap-3 rounded-[10px] px-5 py-3 font-medium transition-none after:font-mono after:text-3xl after:leading-none after:content-["➔"] hocus:after:transition-[opacity] lg:hocus:pr-10 duration-700 lg:transition-[padding] hocus:after:delay-100 hocus:after:duration-500 lg:hocus:after:opacity-100 lg:after:opacity-0 lg:after:absolute lg:after:right-3 bg-[#24272e] !text-[#fcfcfc] dark:bg-[#fcfcfc] dark:!text-[#0f1114]">Submit</button><a class="text-[#1cc8ee] hover:underline text-[#24272e] dark:text-white underline hocus:no-underline _decoration-from-font [text-underline-position:from-font] outline-none focus-visible:ring transition" href="https://newsletter.the-guild.dev/">Recent issues of our newsletter</a></div></form></div><div class="my-12 grid gap-14 md:grid-cols-2 xl:grid-cols-4"><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/nextra-4"><img src="https://nextra.site/og?title=Nextra%204%0AApp%20Router%20/%20Turbopack" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Nextra 4 x App Router. What's New and Migration Guide</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">App Router, Turbopack, Rust search engine Pagefind, RSC i18n, server/client components, compiled by React Compiler, GitHub Alert Syntax, new _meta.global file</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Dimitri POSTOLOV</span><span class="before:content-['_•_'] dark:text-gray-500">Jan 13th 2025</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/understanding-the-differences-between-graphql-and-rest-api-gateways"><img src="/blog-assets/understanding-the-differences-between-graphql-and-rest-api-gateways/thumbnail.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Understanding the Differences Between GraphQL and REST API Gateways</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">What is the difference between GraphQL and REST API Gateway?</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Saihajpreet Singh</span><span class="before:content-['_•_'] dark:text-gray-500">Dec 3rd 2024</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/extending-your-graphql-service"><img src="/blog-assets/extending-your-graphql-service/cover.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Extending your GraphQL service: Federation or Schema Stitching</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">A summary of information regarding extending your GraphQL service to use Federation or Schema Stitching.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Emily Goodwin</span><span class="before:content-['_•_'] dark:text-gray-500">Nov 18th 2024</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/how-to-write-graphql-resolvers-effectively"><img src="/blog-assets/how-to-write-graphql-resolvers-effectively/thumbnail.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">How to write GraphQL resolvers effectively</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Learn GraphQL concepts like resolver map, resolver chain, mappers, defer resolve and use GraphQL Code Generator and Server Preset to write resolvers.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Eddy Nguyen</span><span class="before:content-['_•_'] dark:text-gray-500">Nov 4th 2024</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/supercharge-your-subgraph-with-hive"><img src="/blog-assets/supercharge-your-subgraph-with-hive/thumbnail.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Supercharge Your Supergraph with Hive</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Explore API management for Federated GraphQL with Hive. Unlock tools for collaboration, monitoring, and governance to simplify your API architecture.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Saihajpreet Singh</span><span class="before:content-['_•_'] dark:text-gray-500">Oct 30th 2024</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/federation-gateway-audit"><img src="/blog-assets/federation-gateway-audit/thumbnail.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Audit of GraphQL Gateways Supporting Apollo Federation</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Set of tests to evaluate and compare the compatibility of different GraphQL gateways with Apollo Federation.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Kamil Kisiela</span><span class="before:content-['_•_'] dark:text-gray-500">Sep 10th 2024</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/graphql-mesh-v1-hive-gateway-v1"><img src="/blog-assets/graphql-mesh-v1-hive-gateway-v1/thumbnail.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Introducing GraphQL Mesh v1 and Hive Gateway v1</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">We released Version 1 of GraphQL Mesh and Hive Gateway, enabling flexible, open-source GraphQL Federation with both GraphQL and non-GraphQL sources.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Arda Tanrikulu</span><span class="before:content-['_•_'] dark:text-gray-500">Sep 10th 2024</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/stellate-acquisition"><img src="/blog-assets/stellate-acquisition/cover.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">The Guild acquires Stellate</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Today we are very pleased to announce that we have acquired Stellate GraphQL CDN - the leading GraphQL Caching solution.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Uri Goldshtein</span><span class="before:content-['_•_'] dark:text-gray-500">Sep 10th 2024</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/building-random-gif-generator-with-fets-and-giphy"><img src="/blog-assets/building-random-gif-generator-with-fets-and-giphy/banner.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Building Type-Safe Random GIF Generator with feTS</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Building a Random Gif Generator using the Giphy API and feTS, a tool designed to simplify REST API development.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Tuval Simha</span><span class="before:content-['_•_'] dark:text-gray-500">May 2nd 2024</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/graphql-request-cancellation"><img src="/blog-assets/graphql-request-cancellation/thumbnail.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">GraphQL Request Cancellation in JavaScript</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Learn how to cancel GraphQL requests on the client side and how to handle cancellations on the server side with JavaScript.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Laurin Quast</span><span class="before:content-['_•_'] dark:text-gray-500">Apr 29th 2024</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/rebranding-in-open-source"><img src="/blog-assets/rebranding-in-open-source/thumbnail.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">The Guild - Rebranding in open source</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">The Guild is doing rebranding - The open source way</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Uri Goldshtein</span><span class="before:content-['_•_'] dark:text-gray-500">Feb 24th 2024</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/accounts.js-1.0-rc"><img src="/blog-assets/accounts.js-1.0-rc/accounts-logo-squared.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Announcing Accounts.js 1.0 Release Candidate</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Introducing Accounts.js 1.0 Release Candidate, an end to end authentication and accounts management solution.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Niccolo Belli</span><span class="before:content-['_•_'] dark:text-gray-500">Jan 8th 2024</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/nextra-3"><img src="https://nextra.site/og?title=Nextra%203" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Nextra 3 – Your Favourite MDX Framework, Now on 🧪 Steroids</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">MDX 3, new i18n, new _meta files with JSX support, more powerful TOC, remote MDX, better bundle size, MathJax, new code block styles, shikiji, ESM-only and more</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Dimitri POSTOLOV</span><span class="before:content-['_•_'] dark:text-gray-500">Dec 12th 2023</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/open-source-graphql-security"><img src="/blog-assets/open_source_graphqlsecurity/open-source-graphl-security-thumbnail.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Building Open Source GraphQL Security</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Learn how open-source boosts GraphQL security and explore defensive and offensive tools, resources, and best practices to protect your GraphQL APIs.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Nohé Hinniger-Foray</span><span class="before:content-['_•_'] dark:text-gray-500">Dec 8th 2023</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/open-source-apollo-federation"><img src="/blog-assets/open-source-apollo-federation/thumbnail.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Open Source composition and validation library for Apollo Federation</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Introducing MIT licensed drop-in replacement for the Apollo Federation composition library.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Kamil Kisiela</span><span class="before:content-['_•_'] dark:text-gray-500">Oct 5th 2023</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/graphqlconf-2023-recap"><img src="/blog-assets/graphqlconf-2023-recap/thumbnail.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">GraphQLConf 2023 Recap</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Explore the highlights of GraphQLConf 2023. Learn about the latest trends in GraphQL, from gateway solutions to composite schemas and innovative projects.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Laurin Quast</span><span class="before:content-['_•_'] dark:text-gray-500">Sep 25th 2023</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/state-of-graphql-gateways-in-2023"><img src="/blog-assets/state-of-graphql-gateways-in-2023/thumbnail.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">State of GraphQL Gateways in 2023</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">A six-month journey of researching, benchmarking, exploring and comparing GraphQL gateways and the Federation spec in 2023.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Dotan Simha</span><span class="before:content-['_•_'] dark:text-gray-500">Sep 14th 2023</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/hive-summer-update-2023"><img src="/blog-assets/hive-summer-update-2023/thumbnail.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Hive Summer Update 2023</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Learn what is new on GraphQL Hive, we have shipped a lot of new exciting features and improvements.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Laurin Quast</span><span class="before:content-['_•_'] dark:text-gray-500">Jul 20th 2023</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/the-complete-graphql-scalar-guide"><img src="/blog-assets/the-complete-graphql-scalar-guide/thumbnail.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">The complete GraphQL Scalar Guide</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Knowing how native and custom GraphQL Scalar works enables building flexible and extendable GraphQL schema.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Eddy Nguyen</span><span class="before:content-['_•_'] dark:text-gray-500">Jun 27th 2023</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/judging-open-source-by-github-stars"><img src="/blog-assets/judging-open-source-by-github-stars/thumbnail.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">How Much Are GitHub Stars Worth to You?</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Exposing the dark side of GitHub and open source projects</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Yassin Eldeeb</span><span class="before:content-['_•_'] dark:text-gray-500">Jun 1st 2023</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/graphql-yoga-worker"><img src="/blog-assets/graphql-yoga-worker/thumbnail.jpg" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Build a GraphQL server running on Cloudflare Workers.</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">This course aims to build a practical GraphQL server on Cloudflare Workers using GraphQL Yoga, Pothos, Kysely, etc.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Rito Tamata</span><span class="before:content-['_•_'] dark:text-gray-500">May 31st 2023</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/defer-support-codegen"><img src="/blog-assets/defer-directive/thumbnail.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Using @defer Directive with GraphQL Code Generator</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Learn how to boost GraphQL performance using the @defer directive and GraphQL Code Generator for deferred fragment field resolution.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Aleksandra Sikora</span><span class="before:content-['_•_'] dark:text-gray-500">May 24th 2023</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/hive-introducing-schema-policy"><img src="/blog-assets/graphql-hive/hive-introducing-schema-policy/cover.png?0" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Introducing Schema Policy in Hive</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">New GraphQL-Hive feature for enfocring best-practices and schema-design styles.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Dotan Simha</span><span class="before:content-['_•_'] dark:text-gray-500">May 16th 2023</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/announcing-fets-client"><img src="/blog-assets/announcing-fets-client/thumbnail.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Consume OpenAPI in TypeScript Without Code Generation</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">feTS Client allows you to create an SDK-like client that infers types from an OpenAPI specification document.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Aleksandra Sikora</span><span class="before:content-['_•_'] dark:text-gray-500">Apr 24th 2023</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/optimize-bundle-size-with-swc-and-graphql-codegen"><img src="/blog-assets/optimize-bundle-size-with-swc-and-graphql-codegen/thumbnail.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Optimize your Bundle Size with SWC and GraphQL Codegen</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Optimize your Bundle Size with the SWC plugin for client-preset for GraphQL Code Generator</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Jesse van der Velden</span><span class="before:content-['_•_'] dark:text-gray-500">Apr 18th 2023</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/graphql-over-internet"><img src="/blog-assets/graphql-over-internet/thumbnail.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">GraphQL over Internet</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">HTTP, WebSockets, Server-Sent Events, undergoing standardization and libraries.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Denis Badurina</span><span class="before:content-['_•_'] dark:text-gray-500">Apr 6th 2023</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/announcing-graphql-network-inspector"><img src="/blog-assets/announcing-graphql-network-inspector/thumbnail.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Announcing GraphQL Network Inspector</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">A better way to debug network traffic with GraphQL</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Warren Day</span><span class="before:content-['_•_'] dark:text-gray-500">Feb 22nd 2023</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/graphql-cursor-pagination-with-postgresql"><img src="/blog-assets/graphql-cursor-pagination-with-postgresql/thumbnail.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">GraphQL Cursor Pagination with PostgreSQL</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">An SQL based approach for understanding and implementing GraphQL Cursor Pagination.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Laurin Quast</span><span class="before:content-['_•_'] dark:text-gray-500">Feb 15th 2023</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/graphql-hive-improvements-in-schema-registry"><img src="/blog-assets/graphql-hive/improvements-in-schema-registry/thumbnail.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">GraphQL Hive - Improvements in Schema Registry</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">GraphQL Hive announces new and improved schema registry model with improved workflow and user experience. Access to old model will end soon, switch recommended.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Kamil Kisiela</span><span class="before:content-['_•_'] dark:text-gray-500">Feb 6th 2023</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/how-we-shipped-cdn-access-tokens-with-cloudflare-workers-and-r2"><img src="/blog-assets/how-we-shipped-cdn-access-tokens-with-cloudflare-workers-and-r2/thumbnail.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">How we shipped CDN access tokens with Cloudflare Workers and R2</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Learn how we are using Cloudflare Workers to provide highly available access tokens for the Hive schema artifacts CDN.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Laurin Quast</span><span class="before:content-['_•_'] dark:text-gray-500">Feb 2nd 2023</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/on-demand-shared-graphql-subscriptions-with-rxjs"><img src="/blog-assets/on-demand-shared-graphql-subscriptions-with-rxjs/thumbnail.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">On-Demand Shared GraphQL Subscriptions with RxJS</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Trigger on-demand expensive subscriptions and share results between multiple subscribers</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Ghislain Thau</span><span class="before:content-['_•_'] dark:text-gray-500">Jan 27th 2023</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/offline-graphql-the-easy-parts"><img src="/blog-assets/offline-graphql-the-easy-parts/cover.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Flutter GraphQL | The Guild</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Brick is an open source package that provides offline support for GraphQL in Flutter</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Tim Shedor</span><span class="before:content-['_•_'] dark:text-gray-500">Jan 25th 2023</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/nextra-2"><img src="https://nextra.site/og?title=Nextra%202" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Nextra 2 – Next.js Static Site Generator</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Here are what the new version of Nextra 2 Framework includes.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Dimitri POSTOLOV</span><span class="before:content-['_•_'] dark:text-gray-500">Jan 24th 2023</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/scalable-apis-with-graphql-server-codegen-preset"><img src="/blog-assets/scalable-apis-with-graphql-server-codegen-preset/thumbnail.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Scalable APIs with GraphQL Server Codegen Preset</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Structuring GraphQL server the right way enables many teams to work in harmony while minimising runtime risks.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Eddy Nguyen</span><span class="before:content-['_•_'] dark:text-gray-500">Jan 24th 2023</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/build-realtime-graphql-backends-with-grafbase"><img src="/blog-assets/build-realtime-graphql-backends-with-grafbase/cover.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Build realtime GraphQL backends with Grafbase</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Build collaborative, multiplayer apps faster and easier than ever with GraphQL Live Queries using Grafbase.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Jamie Barton</span><span class="before:content-['_•_'] dark:text-gray-500">Jan 17th 2023</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/graphql-eslint-3.14"><img src="/blog-assets/graphql-eslint-3.14/thumbnail.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">GraphQL-ESLint v3.14 - What's New?</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">The best GraphQL linter becomes even better! Check out what we added in the new version.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Dimitri POSTOLOV</span><span class="before:content-['_•_'] dark:text-gray-500">Dec 28th 2022</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/graphqxl-language"><img src="/blog-assets/graphqxl-language/thumbnail.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">GraphQXL - The Missing GraphQL Language Extension?</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">GraphQXL, a new language for building big and scalable GraphQL server-side schemas</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Gabriel Musat</span><span class="before:content-['_•_'] dark:text-gray-500">Dec 12th 2022</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/graphql-yoga-nestjs-v9"><img src="/blog-assets/graphql-yoga-nest-v9/thumbnail.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">GraphQL Yoga NestJS integration now supports NestJS v9 and Yoga v3</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">A new version of @graphql-yoga/nestjs with NestJS v9 support is out!</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Denis Badurina</span><span class="before:content-['_•_'] dark:text-gray-500">Dec 6th 2022</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/graphql-yoga-v3"><img src="/blog-assets/graphql-yoga-v3/thumbnail.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Announcing GraphQL Yoga v3</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">The new version of GraphQL Yoga is out! Learn what has improved and what is new!</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Saihajpreet Singh</span><span class="before:content-['_•_'] dark:text-gray-500">Nov 15th 2022</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/graphql-hive-and-clickhouse"><img src="/blog-assets/graphql-hive-and-clickhouse/thumbnail.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">How ClickHouse helps us track billions of GraphQL requests monthly</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Learn how ClickHouse enabled GraphQL Hive to scale from millions to billions of requests monthly.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Kamil Kisiela</span><span class="before:content-['_•_'] dark:text-gray-500">Nov 8th 2022</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/announcing-free-single-sign-on-for-graphql-hive"><img src="/blog-assets/announcing-free-single-sign-on-for-graphql-hive/thumbnail.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Announcing free SSO (Single Sign On) for GraphQL Hive</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Link your GraphQL Hive Organization to your OAuth OIDC provider of choice.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Laurin Quast</span><span class="before:content-['_•_'] dark:text-gray-500">Nov 7th 2022</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/typescript-graphql-unions-types"><img src="/blog-assets/typescript-unions-types/thumbnail.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Getting the Best of TypeScript and GraphQL: Union Types</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">The combination of TypeScript and GraphQL can be very powerful. Both TypeScript and GraphQL support the concept of discriminated unions.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Tuval Simha</span><span class="before:content-['_•_'] dark:text-gray-500">Oct 18th 2022</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/slack-bot-with-cloudflare"><img src="/blog-assets/slack-bot-with-cloudflare/thumbnail.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Building Slack Bot with Cloudflare Workers</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">The Guild Internal toolL - GitHub Slack bot reminder in Cloudflare Workers</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Tuval Simha</span><span class="before:content-['_•_'] dark:text-gray-500">Oct 12th 2022</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/announcing-self-hosted-graphql-hive"><img src="/blog-assets/announcing-self-hosted-graphql-hive/thumbnail.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Announcing self-hosted GraphQL Hive</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Host your own GraphQL Hive instance. We are happy to announce that we have reached the milestone of making it easy to host their own instance of GraphQL Hive.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Laurin Quast</span><span class="before:content-['_•_'] dark:text-gray-500">Oct 5th 2022</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/improved-security-with-graphql-armor-support-for-yoga-server-2"><img src="/blog-assets/improved-security-with-graphql-armor-support-for-yoga-server-2/cover.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Improved Security with GraphQL Armor support for Yoga Server 2</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Bringing security by default to GraphQL and Yoga Server.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Laurin Quast</span><span class="before:content-['_•_'] dark:text-gray-500">Aug 24th 2022</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/fetch-for-servers"><img src="/blog-assets/fetch-for-servers/thumbnail.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">JavaScript runs everywhere, so should your servers - here is how</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">A new way to make any Javascript server platform-agnostic.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Arda Tanrikulu</span><span class="before:content-['_•_'] dark:text-gray-500">Aug 22nd 2022</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/unleash-the-power-of-fragments-with-graphql-codegen"><img src="/blog-assets/unleash-the-power-of-fragments-with-graphql-codegen/thumbnail.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Unleash the power of Fragments with GraphQL Codegen</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">The most important parts of Relay are the concepts of building and scaling applications, let's show how you can use these patterns in your existing projects.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Laurin Quast</span><span class="before:content-['_•_'] dark:text-gray-500">Aug 5th 2022</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/houdini-and-kitql"><img src="/blog-assets/houdini-and-kitql/thumbnail.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Bringing the best GraphQL experience to Svelte</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">It's time to unveil a massive effort by the KitQL and Houdini maintainers to join forces!</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Jean-Yves Couët</span><span class="before:content-['_•_'] dark:text-gray-500">Jul 4th 2022</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/building-graphql-servers-in-2022"><img src="/blog-assets/building-graphql-servers-in-2022/building-graphql-servers-in-2022-thumbnail.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Building GraphQL Servers in 2022</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">In this talk we'll learn about the tools needed to build your own GraphQL server from scratch using GraphQL Yoga.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Jamie Barton</span><span class="before:content-['_•_'] dark:text-gray-500">Jun 28th 2022</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/announcing-graphql-hive-release"><img src="/blog-assets/announcing-graphql-hive/thumbnail.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Announcing GraphQL Hive, the complete GraphQL API manager</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">We are incredibly excited to share with you today the public launch of GraphQL Hive!</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Charly Poly</span><span class="before:content-['_•_'] dark:text-gray-500">May 24th 2022</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/announcing-graphql-yoga-v2"><img src="/blog-assets/announcing-graphql-yoga-2/thumbnail.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Announcing GraphQL Yoga 2.0!</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Fully-featured GraphQL Server with focus on easy setup, performance and great developer experience</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Charly Poly</span><span class="before:content-['_•_'] dark:text-gray-500">Mar 29th 2022</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/graphql-error-handling-with-fp"><img src="/blog-assets/graphql-error-handling-with-fp/graphql-error-1024x512.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">GraphQL error handling to the max with Typescript, codegen and fp-ts</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Handle unsafe APIs in a typesafe way with Typescript and Functional Programming.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Ghislain Thau</span><span class="before:content-['_•_'] dark:text-gray-500">Mar 7th 2022</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/how-not-to-learn-graphql"><img src="/blog-assets/how-not-to-learn-graphql/preview.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">How not to learn GraphQL</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">A guide to avoid common learning biases and misconceptions around GraphQL.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Charly Poly</span><span class="before:content-['_•_'] dark:text-gray-500">Feb 14th 2022</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/the-anatomy-of-a-graphql-request"><img src="/blog-assets/the-anatomy-of-a-graphql-request/thumbnail.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">The Anatomy of a GraphQL Request</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Let's go back to the basics and break down a GraphQL request.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Laurin Quast</span><span class="before:content-['_•_'] dark:text-gray-500">Jan 30th 2022</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/caching-data-with-dataloader"><img src="/blog-assets/caching-data-with-dataloader/cover.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Caching data with DataLoader</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">How to use DataLoader to cache data in your GraphQL server.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Gilad Tidhar</span><span class="before:content-['_•_'] dark:text-gray-500">Jan 26th 2022</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/graphql-authentication-with-envelop-and-auth0"><img src="/blog-assets/graphql-authentication-with-envelop-and-auth0/cover.jpg" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">GraphQL Authentication with Envelop and Auth0</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Learn how to quickly add authentication to you GraphQL Envelop setup with Auth0.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Laurin Quast</span><span class="before:content-['_•_'] dark:text-gray-500">Dec 19th 2021</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/graphql-authz"><img src="/blog-assets/graphql-authz/cover.jpg" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">GraphQL AuthZ - GraphQL Authorization layer</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Flexible modern way of adding an authorization layer on top of your existing GraphQL backend systems.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Dmitry Til</span><span class="before:content-['_•_'] dark:text-gray-500">Dec 19th 2021</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/graphql-code-generator-and-prisma"><img src="/blog-assets/prisma-codegen/prismacodegen.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">GraphQL Code Generator with TypeScript and Prisma models</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">How to use Prisma models with GraphQL Code Generator</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Gilad Tidhar</span><span class="before:content-['_•_'] dark:text-gray-500">Dec 19th 2021</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/graphql-over-sse"><img src="/blog-assets/graphql-over-sse/graphql-over-sse.jpg" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">GraphQL over SSE (Server-Sent Events)</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Zero-dependency, HTTP/1 safe, simple, GraphQL over Server-Sent Events Protocol server and client.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Denis Badurina</span><span class="before:content-['_•_'] dark:text-gray-500">Sep 1st 2021</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/graphql-response-caching-with-envelop"><img src="/blog-assets/graphql-response-caching-with-envelop/graphql-response-caching-with-envelop-cover.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">GraphQL Response Caching with Envelop</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Caching GraphQL endpoints can be tricky. Let's take a look at the theory behind making it possible and learn how to do it with Envelop.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Laurin Quast</span><span class="before:content-['_•_'] dark:text-gray-500">Aug 19th 2021</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/support-nodejs-esm"><img src="/blog-assets/nodejs-esm/nodejs_logo.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">What does it take to support Node.js ESM?</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">I have worked on all The Guild's libraries and graphql-js to support ESM. Here is how you can do it too.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Pablo Sáez</span><span class="before:content-['_•_'] dark:text-gray-500">Aug 12th 2021</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/whats-new-in-graphql-codegen-v2"><img src="/blog-assets/graphql-code-generator/cover.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">What's new in GraphQL-Codegen v2?</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Human-readable types, improved infrastructure, a new plugin for TypeScript and more!</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Dotan Simha</span><span class="before:content-['_•_'] dark:text-gray-500">Aug 3rd 2021</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/swift-graphql"><img src="/blog-assets/swift-graphql/thumbnail.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">SwiftGraphQL - A GraphQL client for Swift lovers.</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">SwiftGraphQL lets you use all the power Swift gives you to query your data. It feels like magic.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Matic Zavadlal</span><span class="before:content-['_•_'] dark:text-gray-500">Aug 2nd 2021</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/graphql-tools-v8"><img src="/blog-assets/graphql-tools-v6/cover.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">GraphQL Tools V8 - Stitch Federation Services</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">GraphQL Tools - Faster and more flexible Schema Stitching!</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Arda Tanrikulu</span><span class="before:content-['_•_'] dark:text-gray-500">Jul 28th 2021</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/introducing-envelop"><img src="/blog-assets/envelop/envelop_cover.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Introducing Envelop - The GraphQL Plugin System</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">A new tool by The Guild: A powerful new way for creating fast, modern and secure GraphQL servers.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Dotan Simha</span><span class="before:content-['_•_'] dark:text-gray-500">Jul 22nd 2021</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/collecting-graphql-live-query-resource-identifier-with-graphql-tools"><img src="/blog-assets/collecting-graphql-live-query-resource-identifier-with-graphql-tools/cover.jpg" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Collecting GraphQL Live Query Resource Identifier with GraphQL Tools</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">GraphQL Tools can help to solve a variety of problems. Lean how it can be used for live queries.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Laurin Quast</span><span class="before:content-['_•_'] dark:text-gray-500">Jul 1st 2021</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/graphql-with-typescript-done-right"><img src="/blog-assets/graphql-code-generator/cover.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">GraphQL with TypeScript done right</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">How to get the most of React application types with GraphQL Code Generator.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Charly Poly</span><span class="before:content-['_•_'] dark:text-gray-500">Apr 29th 2021</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/oss-contributor-workflow"><img src="/blog-assets/oss-contributor-workflow/cover.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Easy Open Source - Orchestrating the Open Source Contribution Workflow</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Sharing our journey of making it easier for people to participate in Open Source.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Vignesh T.V.</span><span class="before:content-['_•_'] dark:text-gray-500">Apr 22nd 2021</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/subscriptions-and-live-queries-real-time-with-graphql"><img src="/blog-assets/subscriptions-and-live-queries-real-time-with-graphql/cover.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Subscriptions and Live Queries - Real Time with GraphQL</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">GraphQL subscriptions are used by many. Let's take a look at both methods for achieving real-time communication with GraphQL.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Laurin Quast</span><span class="before:content-['_•_'] dark:text-gray-500">Apr 21st 2021</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/graphql-hive-preview"><img src="/blog-assets/graphql-hive/cover.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">GraphQL Hive - Manage Your GraphQL API Workflow</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Announcing the beta testing program of GraphQL Hive - schema registry for any GraphQL workflow.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Kamil Kisiela</span><span class="before:content-['_•_'] dark:text-gray-500">Mar 26th 2021</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/a-new-year-for-schema-stitching"><img src="https://user-images.githubusercontent.com/727224/104328777-29fc8f80-54ba-11eb-87d0-9982af1d8281.jpg" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">A New Year for GraphQL Schema Stitching</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">2021 is the year to give Schema Stitching a fresh look after its recent renovation</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Greg MacWilliam</span><span class="before:content-['_•_'] dark:text-gray-500">Jan 14th 2021</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/graphql-modules-v1"><img src="/blog-assets/graphql-modules-v1/cover.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">The New GraphQL Modules</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">GraphQL Modules showed up on NPM almost 3 years ago, but now we decided to rewrite it from scratch.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Kamil Kisiela</span><span class="before:content-['_•_'] dark:text-gray-500">Dec 21st 2020</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/add-reactivity-to-an-existing-source"><img src="/blog-assets/add-reactivity-to-an-existing-source/PimpMyGraphQL.jpg" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Add reactivity to an existing source using GraphQL Mesh</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">How To extend an existing endpoint with subscriptions to bring reactivity to your application.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Jean-Yves Couët</span><span class="before:content-['_•_'] dark:text-gray-500">Dec 15th 2020</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/graphql-deep-dive-6"><img src="/blog-assets/graphql-deep-dive-6/cover.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">GraphQL - The Workflow</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">The Workflow when taking GraphQL from development to production.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Vignesh T.V.</span><span class="before:content-['_•_'] dark:text-gray-500">Dec 12th 2020</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/graphql-deep-dive-5"><img src="/blog-assets/graphql-deep-dive-5/cover.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">GraphQL - The Stack -</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">The GraphQL Stack - Part 3. In this blog looking at more such tools and services which have created a great impact in the GraphQL ecosystem.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Vignesh T.V.</span><span class="before:content-['_•_'] dark:text-gray-500">Dec 6th 2020</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/graphql-deep-dive-4"><img src="/blog-assets/graphql-deep-dive-4/cover.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">GraphQL - The Stack -</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">The GraphQL Stack - Part 2. GraphQL Modules Preset with Codegen since it essentially also splits your types and generates types.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Vignesh T.V.</span><span class="before:content-['_•_'] dark:text-gray-500">Dec 4th 2020</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/graphql-deep-dive-3"><img src="/blog-assets/graphql-deep-dive-3/cover.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">GraphQL - The Stack -</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">The GraphQL Stack - Part 1. Choosing the right tech stack for your use case and building the development workflow which suits you best in this blog.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Vignesh T.V.</span><span class="before:content-['_•_'] dark:text-gray-500">Dec 3rd 2020</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/graphql-deep-dive-2"><img src="/blog-assets/graphql-deep-dive-2/cover.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">GraphQL - Use case and Architecture</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Architecting for GraphQL and its ecosystem. Looking at how your architecture can look like when working with GraphQL.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Vignesh T.V.</span><span class="before:content-['_•_'] dark:text-gray-500">Dec 2nd 2020</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/graphql-deep-dive-1"><img src="/blog-assets/graphql-deep-dive-1/cover.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">GraphQL - Diving Deep</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Answering all the questions you may have about GraphQL and its ecosystem.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Vignesh T.V.</span><span class="before:content-['_•_'] dark:text-gray-500">Dec 1st 2020</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/graphql-codegen-and-apollo-client-3"><img src="/blog-assets/graphql-code-generator/codegen-ac3.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">What's new with Apollo Client v3 and GraphQL Codegen</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">All the new features GraphQL Codegen adds to your type-system with the new Apollo Client 3.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Dotan Simha</span><span class="before:content-['_•_'] dark:text-gray-500">Nov 30th 2020</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/graphql-let"><img src="/blog-assets/graphql-let/cover.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">graphql-let - A Webpack loader for GraphQL Code Generator</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">graphql-let is a webpack loader of GraphQL code generator.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Soichi Takamura</span><span class="before:content-['_•_'] dark:text-gray-500">Nov 25th 2020</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/graphql-codegen-plugin-typescript-swr"><img src="/blog-assets/graphql-codegen-plugin-typescript-swr/codegen-swr.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Introducing: GraphQL Codegen plugin for TypeScript & SWR!</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Working with GraphQL, TypeScript and SWR is now much simpler!</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Yuta Haga</span><span class="before:content-['_•_'] dark:text-gray-500">Nov 23rd 2020</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/graphql-tools-v7"><img src="/blog-assets/graphql-tools-v6/cover.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">GraphQL Tools v7 delivers the next generation GraphQL API Gateway</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">GraphQL Tools v7 - Brings Schema Stitching to a whole new level thanks to automation and performance enhancements.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Arda Tanrikulu</span><span class="before:content-['_•_'] dark:text-gray-500">Nov 3rd 2020</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/joining-graphql-foundation"><img src="/blog-assets/joining-graphql-foundation/graphql-foundation-logo.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">The Guild is joining the GraphQL Foundation</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Our plans to contribute to the GraphQL Foundation.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Uri Goldshtein</span><span class="before:content-['_•_'] dark:text-gray-500">Oct 30th 2020</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/whats-new-in-graphql-cli-4.1.0"><img src="/blog-assets/graphql-cli/cover.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">What's new in GraphQL CLI 4.1</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">GraphQL CLI - experience the modern way for developing full-stack GraphQL applications.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Enda Phelan</span><span class="before:content-['_•_'] dark:text-gray-500">Oct 15th 2020</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/graphql-mesh-subscriptions"><img src="/blog-assets/graphql-mesh-subscriptions/cover.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Webhooks as GraphQL Subscriptions using GraphQL Mesh</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Consume your legacy webhooks and subscriptions from any data source as GraphQL Subscriptions with GraphQL Mesh.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Arda Tanrikulu</span><span class="before:content-['_•_'] dark:text-gray-500">Oct 5th 2020</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/introducing-graphql-eslint"><img src="https://the-guild.dev/graphql/eslint/logo.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Introducing GraphQL-ESLint!</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">A new tool by The Guild, for making your GraphQL schema and GraphQL operations more standard and robust!</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Dotan Simha</span><span class="before:content-['_•_'] dark:text-gray-500">Oct 3rd 2020</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/graphql-over-websockets"><img src="/blog-assets/graphql-over-websockets/graphql-over-websocket.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">GraphQL over WebSockets</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Coherent, zero-dependency, lazy, simple, server and client implementation of the new, security first, GraphQL over WebSocket Protocol.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Denis Badurina</span><span class="before:content-['_•_'] dark:text-gray-500">Sep 15th 2020</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/typed-document-node"><img src="/blog-assets/graphql-code-generator/cover.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">TypedDocumentNode: the next generation of GraphQL and TypeScript</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Using GraphQL and Typescript on the client just became a lot easier!</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Dotan Simha</span><span class="before:content-['_•_'] dark:text-gray-500">Jul 22nd 2020</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/migrating-from-rest"><img src="/blog-assets/migrating-from-rest/cover.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Migrating from Schemaless REST API to GraphQL without writing any code</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Migrating to GraphQL from a REST API has never been easier. With tools like GraphQL Mesh you can do it automatically.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Arda Tanrikulu</span><span class="before:content-['_•_'] dark:text-gray-500">May 31st 2020</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/graphql-tools-v6"><img src="/blog-assets/graphql-tools-v6/cover.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">GraphQL Tools - next generation schema stitching and new leadership</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">GraphQL Tools v6 with more tools, improved schema stitching and bug fixes.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Arda Tanrikulu</span><span class="before:content-['_•_'] dark:text-gray-500">May 21st 2020</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/graphql-codegen-best-practices"><img src="/blog-assets/graphql-code-generator/cover.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Integrating GraphQL Code Generator in your frontend applications</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">The GraphQL codegen library can generate code for multiple purposes. Make sure you get the most out of it.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Dotan Simha</span><span class="before:content-['_•_'] dark:text-gray-500">May 20th 2020</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/better-type-safety-for-resolvers-with-graphql-codegen"><img src="/blog-assets/graphql-code-generator/cover.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Better Type Safety for your GraphQL resolvers with GraphQL Codegen</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Type-check your resolvers' implementation in order to find issues in build-time. Simply integrate with your existing TypeScript data models and context types.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Dotan Simha</span><span class="before:content-['_•_'] dark:text-gray-500">May 17th 2020</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/new-graphql-inspector"><img src="/blog-assets/new-graphql-inspector/cover.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">New GraphQL Inspector and upcoming features</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">See what's new and shape the future of GraphQL Inspector together! It's entirely open-sourced!</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Kamil Kisiela</span><span class="before:content-['_•_'] dark:text-gray-500">May 5th 2020</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/schema-change-notifications"><img src="/blog-assets/schema-change-notifications/cover.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Schema Change Notifications in GraphQL Inspector</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Stay up to date with changes in your GraphQL Schema. Receive notifications on Slack, Discord or even via WebHooks.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Kamil Kisiela</span><span class="before:content-['_•_'] dark:text-gray-500">May 4th 2020</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/ci-ci-graphql-inspector"><img src="/blog-assets/ci-ci-graphql-inspector/cover.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Validate GraphQL Schema - Continuous Integration & Delivery Pipeline</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Detect breaking changes and identify possible issues in GraphQL API with GraphQL Inspector</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Kamil Kisiela</span><span class="before:content-['_•_'] dark:text-gray-500">May 3rd 2020</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/multiple-environments-endpoints-graphql-inspector"><img src="/blog-assets/multiple-environments-endpoints-graphql-inspector/cover.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Multiple environments and endpoints in GraphQL Inspector</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Use different variants of GraphQL schema. Live and running GraphQL API as the source of truth of a schema.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Kamil Kisiela</span><span class="before:content-['_•_'] dark:text-gray-500">May 2nd 2020</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/remote-control-graphql-inspector"><img src="/blog-assets/remote-control-graphql-inspector/cover.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Enable Remote Control in GraphQL Inspector</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Intercept schema changes via HTTP and decide which changes are acceptable which are not and all of this through a serverless function.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Kamil Kisiela</span><span class="before:content-['_•_'] dark:text-gray-500">May 1st 2020</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/graphql-mesh"><img src="/blog-assets/graphql-mesh/cover.jpg" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">GraphQL Mesh - Query anything, run anywhere</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">We are excited to announce GraphQL Mesh. A powerful open source library enabling developers to leverage the power of GraphQL without requiring changes</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Uri Goldshtein</span><span class="before:content-['_•_'] dark:text-gray-500">Mar 23rd 2020</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/react-e2e-tests-with-hooks"><img src="/medium/aa57af3e7221a72b87255d47a28c595c.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">How to run React E2E tests purely with hooks</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">How to run React E2E tests purely with hooks. Tested with React-Native and Firebase Test Lab.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Eytan Manor</span><span class="before:content-['_•_'] dark:text-gray-500">Feb 10th 2020</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/graphql-cli-is-back"><img src="/medium/23b46179aaf5f6f3422b0ab82db7ed80.jpg" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">GraphQL CLI is back!</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Your Swiss Army Knife for the GraphQL ecosystem. Production-ready GraphQL app in seconds.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Uri Goldshtein</span><span class="before:content-['_•_'] dark:text-gray-500">Oct 31st 2019</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/graphql-config"><img src="/medium/6acdca885a85960c4b5f3b5c2516a7be.jpg" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">GraphQL Config - One configuration for all your tools</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">One configuration for all your tools. A single place to store all your GraphQL configurations for any GraphQL based tool.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Kamil Kisiela</span><span class="before:content-['_•_'] dark:text-gray-500">Oct 25th 2019</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/graphql-scalars"><img src="/medium/037668856e53c2b8a6e50ca7b886d157.jpg" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">GraphQL Scalars 1.0 is out!</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">More Types, Data Integrity and Strict Validations on GraphQL.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Arda Tanrikulu</span><span class="before:content-['_•_'] dark:text-gray-500">Aug 8th 2019</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/coolest-underrated-design-pattern-in-react"><img src="/medium/8da637649866c3f3ebcc4e5c90437d89.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">The coolest, most underrated design pattern in React</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">The coolest, most underrated design pattern in React</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Eytan Manor</span><span class="before:content-['_•_'] dark:text-gray-500">Jul 31st 2019</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/customizable-css-engine-in-javascript"><img src="/medium/9ecd4800956fc386f893c8730a0beb63.jpeg" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">I wrote a customizable CSS engine in JavaScript</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">I wrote a customizable CSS engine in JavaScript. Custom selectors, custom rules and custom events. You determine its behavior.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Eytan Manor</span><span class="before:content-['_•_'] dark:text-gray-500">Jul 24th 2019</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/graphql-codegen-relay-compiler"><img src="/blog-assets/graphql-codegen-relay-compiler/cover.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Optimizing Apollo Operations - GraphQL Code Generator & Relay Compiler</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Optimizing your Apollo Operations with GraphQL Code Generator and the Relay Compiler.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Laurin Quast</span><span class="before:content-['_•_'] dark:text-gray-500">Jul 15th 2019</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/injectable-services-in-react"><img src="/medium/59ec8df34fe4fd4bb20960e2270a12df.jpeg" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Injectable services in React</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">How they're implemented and their similarities with Angular services.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Eytan Manor</span><span class="before:content-['_•_'] dark:text-gray-500">Jun 24th 2019</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/graphql-codegen-java"><img src="/blog-assets/graphql-codegen-java/cover.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">GraphQL Codegen adds new Apollo-Android and Java plugins</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">GraphQL Codegen adds a new Apollo-Android and a new Java Backend plugins!</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Dotan Simha</span><span class="before:content-['_•_'] dark:text-gray-500">Jun 19th 2019</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/graphql-modules-auth"><img src="/blog-assets/graphql-modules-auth/cover.jpeg" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Authentication and Authorization in GraphQL</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">After a few years of working with GraphQL, we've learned some lessons about GraphQL, and how to authenticate and authorize GraphQL API.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Dotan Simha</span><span class="before:content-['_•_'] dark:text-gray-500">Jun 19th 2019</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/taking-over-merge-graphql-schemas"><img src="/medium/0a4d55d345d123fa0b0c131d55ea903b.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">The Guild is taking over maintenance of merge-graphql-schemas</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">The Guild is taking over maintenance of merge-graphql-schemas, so let's talk about GraphQL Schema management</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Uri Goldshtein</span><span class="before:content-['_•_'] dark:text-gray-500">Jun 18th 2019</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/manage-circular-imports-hell-in-graphql-modules"><img src="/medium/e057400fd0eccf986e581abce77dd3d5.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Manage Circular Imports Hell in GraphQL-Modules</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Designing and building modular GraphQL API may not look straight-forward. It is hard to keep a perfect modularity with standalone and encapsulated modules.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Arda Tanrikulu</span><span class="before:content-['_•_'] dark:text-gray-500">Mar 18th 2019</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/how-should-you-pin-dependencies-and-why"><img src="/blog-assets/how-should-you-pin-dependencies-and-why/cover.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">How should you pin dependencies and why?</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Getting in-depth on making your application updated and safe.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Niccolo Belli</span><span class="before:content-['_•_'] dark:text-gray-500">Mar 7th 2019</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/graphql-stencil-apollo"><img src="/medium/de2fef916d1624b5a70599ef50687bf6.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Stencil-Apollo - Stencil meets GraphQL</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Stencil-Apollo lets you easily use GraphQL in Web Components.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Arda Tanrikulu</span><span class="before:content-['_•_'] dark:text-gray-500">Mar 6th 2019</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/styled-components-encapsulation"><img src="/medium/847a27410df9de57458f3736cf937b9b.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">New encapsulation method for Styled-Components with Babel</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Use private class names instead of a dedicated component</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Eytan Manor</span><span class="before:content-['_•_'] dark:text-gray-500">Mar 4th 2019</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/graphql-codegen-hooks-support-react-apollo"><img src="/blog-assets/graphql-codegen-hooks-support-react-apollo/cover.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">GraphQL Code Generator - Hooks support for React Apollo plugin</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Use and generate React Hooks with Apollo and Typescript with the new version of GraphQL Code Generator.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Leonardo Ascione</span><span class="before:content-['_•_'] dark:text-gray-500">Mar 1st 2019</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/whatsapp-clone-apollo-angular-graphql-typescript-and-postgresql"><img src="/blog-assets/whatsapp-clone-apollo-angular-graphql-typescript-and-postgresql/cover.jpeg" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">WhatsApp Clone - Angular, GraphQL, Apollo, TypeScript and PostgreSQL</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">An open-source full-stack example app made with Angular 7.2, TypeScript, GraphQL Subscriptions, GraphQL Code Generator, GraphQL Modules, PostgreSQL and TypeORM.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Niccolo Belli</span><span class="before:content-['_•_'] dark:text-gray-500">Feb 25th 2019</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/whatsapp-clone-react-hooks-graphql-typescript-and-postgresql"><img src="/medium/3eb34dbe848e635cbc12a38471b2da4e.jpeg" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">WhatsApp Clone - GraphQL, Apollo, TypeScript and PostgreSQL</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Fully functional WhatsApp Clone using React (Hooks+Suspense), GraphQL, Apollo, TypeScript and PostgreSQL</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Eytan Manor</span><span class="before:content-['_•_'] dark:text-gray-500">Feb 1st 2019</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/sofa"><img src="/blog-assets/sofa/cover.jpg" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">SOFA — The best way to REST (is GraphQL)</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Ending the REST vs. GraphQL debate once and for all</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Uri Goldshtein</span><span class="before:content-['_•_'] dark:text-gray-500">Jan 25th 2019</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/magical-babel-plugin-for-react-performance-boost"><img src="/medium/5f2a07bb7a73727cca4707c0e85f75e8.jpeg" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Babel plugin and get a performance boost for your React components</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Use this magical Babel plugin and get a performance boost for your React components.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Eytan Manor</span><span class="before:content-['_•_'] dark:text-gray-500">Jan 21st 2019</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/introducing-graphql-inspector"><img src="/medium/f2f4b5ebdecf4640a2cbc79f7560ec88.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Introducing: GraphQL Inspector</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Prevent breaking changes. Find broken operations. Get Schema Coverage. Check deprecated usage and type duplicates. All as part of your CI process.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Kamil Kisiela</span><span class="before:content-['_•_'] dark:text-gray-500">Jan 18th 2019</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/dependency-injection-library-in-graphql-modules"><img src="/medium/783e92a762ee3c5b1580336b00f76d46.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Dependency Injection in GraphQL-Modules</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Why did we implement our own Dependency Injection library for GraphQL-Modules?</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Arda Tanrikulu</span><span class="before:content-['_•_'] dark:text-gray-500">Jan 11th 2019</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/graphql-modules-scoped-providers"><img src="/medium/330126a7ddd518886b068e1f1e23ee41.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Scoped Providers in GraphQL-Modules</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Understand how scoped providers work in GraphQL-Modules Dependency Injection.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Arda Tanrikulu</span><span class="before:content-['_•_'] dark:text-gray-500">Jan 11th 2019</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/modular-encapsulation-graphql-modules"><img src="/medium/a6fcd73268ea14133c0ec3f5cc4f0728.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Modular Encapsulation in Large-Scale GraphQL Projects</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Why is True Modular Encapsulation So Important in Large-Scale GraphQL Projects? — GraphQL Modules is your savior!</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Arda Tanrikulu</span><span class="before:content-['_•_'] dark:text-gray-500">Jan 7th 2019</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/how-brain-detects-shapes"><img src="/medium/f446050521c10447f45bc89e466b3370.webm" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">This is how our brain detects shapes</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">This is how our brain detects shapes. And so shall the computer...</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Eytan Manor</span><span class="before:content-['_•_'] dark:text-gray-500">Dec 11th 2018</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/graphql-typescript-modules-codegen"><img src="/medium/0e0c64ec5841ba4731bddefaabbb75c8.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">GraphQL TypeScript - w/ GraphQL-Modules and GraphQL-Code-Generator</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Writing a GraphQL TypeScript project w/ GraphQL-Modules and GraphQL-Code-Generator.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Arda Tanrikulu</span><span class="before:content-['_•_'] dark:text-gray-500">Dec 4th 2018</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/improved-angular-console"><img src="/medium/78d0f670476d24762cc05eefd42a0321.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">How I helped improve Angular Console</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">How I helped improve Angular Console. By doing GraphQL the right way.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Kamil Kisiela</span><span class="before:content-['_•_'] dark:text-gray-500">Nov 30th 2018</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/react-hooks-system"><img src="/medium/923d5b18cf82df80927ee5278f7048ff.jpeg" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Under the hood of React's hooks system</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Looking at the implementation and getting to know it inside out.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Eytan Manor</span><span class="before:content-['_•_'] dark:text-gray-500">Nov 21st 2018</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/accountsjs-graphql-modules"><img src="/medium/39e75508d22dbe737fad027dd23819b8.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Authentication with accounts-js & GraphQL Modules</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">How to implement server-side using accounts-js, GraphQL-Modules and Apollo-Server</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Arda Tanrikulu</span><span class="before:content-['_•_'] dark:text-gray-500">Nov 16th 2018</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/runtime-jsx"><img src="/medium/fadbe31be89eb8b0be9fc5f035c9617d.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Implementing a runtime version of JSX</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Learning how to think like a JSX parser and building an AST</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Eytan Manor</span><span class="before:content-['_•_'] dark:text-gray-500">Nov 12th 2018</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/graphql-modules"><img src="/medium/a4a2c4f56993a801a7ffe394fc0f95f1.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">GraphQL Modules — Feature based GraphQL Modules at scale</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Today we are happy to announce that we are open sourcing a framework we've been using for the past couple of months in production, GraphQL Modules!</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Uri Goldshtein</span><span class="before:content-['_•_'] dark:text-gray-500">Nov 5th 2018</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/recursive-react-tree-component-implementation-made-easy"><img src="/medium/db6c7817bbaf73790065c3e1f8ebb835.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Recursive React tree component implementation made easy</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">The challenges that I've faced and how I solved them.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Eytan Manor</span><span class="before:content-['_•_'] dark:text-gray-500">Nov 5th 2018</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/react-dom-event-handling-system"><img src="/medium/dff8edec78c39a832292c7435ee1213b.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Getting to know React DOM's event handling system inside out</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Getting to know React DOM's event handling system inside out.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Eytan Manor</span><span class="before:content-['_•_'] dark:text-gray-500">Oct 22nd 2018</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/how-i-build-babel-plugins"><img src="/medium/b00e12c482b6ba2f40860ff3471bc55c.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">This is how I build Babel plug-ins</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">The basics of AOT compilers and how to write Babel plug-ins.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Eytan Manor</span><span class="before:content-['_•_'] dark:text-gray-500">Oct 8th 2018</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/nodes-child-process"><img src="/medium/8e3e63cb7dfad3159760903440eb32fd.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Getting to know Node's child_process module</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">How to call git, cpp, sh, etc., from a Node.js script.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Eytan Manor</span><span class="before:content-['_•_'] dark:text-gray-500">Sep 27th 2018</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/react-app-out-of-a-webflow"><img src="/medium/50ea860594889aa4f1b96a509c886b9c.jpg" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">How to create a React app out of a Webflow project</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">How to create a React app out of a Webflow project.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Eytan Manor</span><span class="before:content-['_•_'] dark:text-gray-500">Sep 7th 2018</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/git-rebase-not-interactive"><img src="/medium/aaf7b6a36c30ab802f51d8ecb40478e9.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">git rebase (not) --interactive</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">How to build a Node.js script to re-write history. Pre-requisites: Familiarity with git rebase --interactive.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Eytan Manor</span><span class="before:content-['_•_'] dark:text-gray-500">Sep 3rd 2018</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/apollo-angular-12"><img src="/medium/351c722f184845c0b6f792f4da534e96.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Apollo-Angular 1.2 - using GraphQL in your apps just got a lot easier!</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Check what's new in Apollo Angular and how to get the full potential benefits of using Angular + GraphQL + TypeScript combined thanks to GraphQL-Code-Generator</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Kamil Kisiela</span><span class="before:content-['_•_'] dark:text-gray-500">Aug 21st 2018</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/codegen-typescript-react-apollo"><img src="/medium/897186a7e3bfe61428b91f7f82c5b922.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">GraphQL Code Generator for Typescript React Apollo</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Generate React Apollo Query, Mutation and Subscription components and hook. All completely typed by TypeScript.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Arda Tanrikulu</span><span class="before:content-['_•_'] dark:text-gray-500">Aug 21st 2018</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/graphql-code-generator-011"><img src="/blog-assets/graphql-code-generator/cover.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">GraphQL Code Generator v0.11</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Generate React and Angular Apollo Components, Resolver signatures and much more!</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Dotan Simha</span><span class="before:content-['_•_'] dark:text-gray-500">Aug 21st 2018</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/angular-cli-meteor-no-eject"><img src="/blog-assets/angular-cli-meteor-no-eject/cover.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Angular CLI + Meteor — No more ejecting Webpack Configuration</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Angular CLI + Meteor — No more ejecting Webpack Configuration</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Arda Tanrikulu</span><span class="before:content-['_•_'] dark:text-gray-500">Jul 13th 2018</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/connecting-react-native-and-meteor"><img src="/blog-assets/connecting-react-native-and-meteor/cover.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">React Native and Meteor backend w/o any 3rd party library in 2018</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Introduction to new features of client bundler and React Native Meteor Polyfills including OAuth and persistent login session support etc.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Arda Tanrikulu</span><span class="before:content-['_•_'] dark:text-gray-500">Jul 13th 2018</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/meteor-with-webpack-in-2018"><img src="/blog-assets/meteor-with-webpack-in-2018/cover.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Meteor with Webpack — Faster compilation and better source handling</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Faster compilation and better source handling. Meteor-Webpack is here as a solution to this kind of problems and lack of features in Meteor's bundler</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Arda Tanrikulu</span><span class="before:content-['_•_'] dark:text-gray-500">Jul 13th 2018</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/whats-new-on-meteor-client-bundler"><img src="/blog-assets/whats-new-on-meteor-client-bundler/cover.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Meteor Client Bundler — React Native support, handling Meteor imports</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Introduction to new features of MCB. Better React Native support, handling Meteor imports etc.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Arda Tanrikulu</span><span class="before:content-['_•_'] dark:text-gray-500">Jul 13th 2018</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/graphql-code-generator-090"><img src="/blog-assets/graphql-code-generator/cover.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">What's new in GraphQL Codegen 0.9.0</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">The GraphQL Codegen library can generate any code for any language — including type definitions, data models, query builder, resolvers, etc...</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Dotan Simha</span><span class="before:content-['_•_'] dark:text-gray-500">May 7th 2018</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/graphql-geo-strike"><img src="/blog-assets/graphql-geo-strike/cover.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Open source FPS with Apollo GraphQL — GeoStrike (Alpha)</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">A GeoReferenced Multiplayer First-Person Shooter Game.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">David Yahalomi</span><span class="before:content-['_•_'] dark:text-gray-500">Feb 15th 2018</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/graphql-code-generator"><img src="/blog-assets/graphql-code-generator/cover.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Introducing GraphQL Code Generator</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">The True GraphQL-First platform. Generate your backend, frontend, types, resolvers, ORM code and more from your GraphQL schema and documents.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Dotan Simha</span><span class="before:content-['_•_'] dark:text-gray-500">Oct 12th 2017</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/create-native-addon-using-c"><img src="/medium/6989c5ee48f37336c330100619adbe13.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">How to create a native add-on using C++</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Node.js Advanced — How to create a native add-on using C++</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Eytan Manor</span><span class="before:content-['_•_'] dark:text-gray-500">May 8th 2017</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/apollo-angular-011"><img src="/medium/cc2b3a84ee2ef485ffad79881a284b9a.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Apollo Angular Version 0.11</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">New name, AoT support, TypeScript improvements, and Angular 4 readiness</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Kamil Kisiela</span><span class="before:content-['_•_'] dark:text-gray-500">Mar 1st 2017</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/whatsapp-clone-with-ionic-angular-and-meteor"><img src="/medium/bb1bd34e9a4cde578539f00cc4696f50.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Build a WhatsApp Clone with Ionic 2, Angular 2, and Meteor</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Build a WhatsApp Clone with Ionic 2, Angular 2, and Meteor</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Uri Goldshtein</span><span class="before:content-['_•_'] dark:text-gray-500">Nov 30th 2016</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/graphql-as-a-best-practice-for-modern-angular-apps"><img src="/medium/723af25d23534dd3f801257126be159b.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">GraphQL as a best practice for modern Angular apps?</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">In this post, I'll make the case for why Angular needs a best practice for communicating with the server, and why GraphQL should be that best practice.</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Uri Goldshtein</span><span class="before:content-['_•_'] dark:text-gray-500">Jul 28th 2016</span></div></div></a><a class=" hocus:bg-neutral-200 hocus:dark:bg-[#24272E] flex cursor-pointer flex-col overflow-hidden rounded-[20px] bg-[#f1f1f1] transition-colors duration-300 hover:!no-underline dark:bg-[#24272E]/50 lg:[:is(&:hover,&:focus)>img]:h-36 " href="/blog/whatsapp-clone-with-meteor-and-ionic"><img src="/medium/d049989e715f4848c09315b23902da8d.png" alt="Article logo" class="h-40 w-full object-cover transition-all duration-500"/><div class="flex grow flex-col p-5"><h2 class="m-0 mb-3.5 text-[#24272e] text-lg font-bold leading-7 dark:text-gray-50 line-clamp-3 [hyphens:auto]">Build a WhatsApp clone with Meteor and Ionic — Meteor Platform version</h2><p class="text-gray-500 mb-6 text-xs leading-4 line-clamp-4 overflow-hidden text-ellipsis !leading-[18px] [hyphens:auto]">Build a WhatsApp clone using Meteor, Angular, and the Ionic Framework for CSS and mobile components</p><div class="mt-auto text-xs"><span class="font-bold dark:text-[#C4C4C4]">Uri Goldshtein</span><span class="before:content-['_•_'] dark:text-gray-500">Oct 16th 2015</span></div></div></a></div></div><div class="_mt-16"></div></article></div><footer class="bg-[#fafafa] py-[60px] text-base dark:bg-[#0f1114] md:py-[140px]"><div class="container max-w-[90rem]"><div class="relative flex justify-between gap-10 max-md:flex-col"><a class="flex items-center gap-2 self-start outline-none focus-visible:ring transition" href="https://the-guild.dev"><svg width="51" height="54" viewBox="0 0 51 54" fill="currentColor" class="h-9 w-auto"><path fill-rule="evenodd" clip-rule="evenodd" d="M2.06194 20.2745C2.68522 20.4867 3.35002 20.6073 4.04393 20.6073C4.6672 20.6073 5.26838 20.5117 5.83612 20.3391V36.7481C5.83612 37.328 6.14561 37.8684 6.64488 38.1582L22.3391 47.2835C23.0814 46.4108 24.1808 45.8554 25.4084 45.8554C26.7446 45.8554 27.927 46.5134 28.6639 47.5218C28.6769 47.5403 28.6909 47.5576 28.7039 47.5756C28.7557 47.6494 28.8041 47.7248 28.8511 47.8026L28.9049 47.891C28.9465 47.9626 28.9849 48.0355 29.0214 48.1093C29.0414 48.1489 29.0603 48.1891 29.0792 48.2294C29.1105 48.2978 29.14 48.3673 29.1681 48.4378C29.1881 48.4882 29.2059 48.5388 29.2237 48.5899C29.2462 48.6544 29.2684 48.7195 29.2873 48.7852C29.3056 48.8477 29.3202 48.9107 29.3359 48.9737L29.3762 49.1513C29.3918 49.23 29.4021 49.3097 29.4129 49.3902C29.4188 49.4379 29.428 49.4847 29.4323 49.5324C29.4448 49.6627 29.4523 49.7941 29.4523 49.9277C29.4523 50.1406 29.4313 50.3474 29.3994 50.5516L29.3881 50.6275C29.0576 52.5406 27.4007 54 25.4084 54C23.6318 54 22.1227 52.8386 21.5809 51.2314L4.7578 41.4502C3.08905 40.4806 2.06194 38.6876 2.06194 36.7481V20.2745ZM46.0991 10.2908C48.3291 10.2908 50.1428 12.1173 50.1428 14.3631C50.1428 15.5848 49.6037 16.6794 48.755 17.4265V36.7481C48.755 38.6876 47.7279 40.4806 46.0591 41.4502L31.6051 49.8539C31.5889 48.479 31.1274 47.2135 30.3619 46.1876L44.1722 38.1582C44.6713 37.8684 44.9809 37.328 44.9809 36.7481V18.2736C43.2938 17.7838 42.0554 16.2179 42.0554 14.3631C42.0554 13.4601 42.3524 12.6277 42.8485 11.9517C42.856 11.9409 42.8641 11.9306 42.8717 11.9197C42.9655 11.7948 43.0657 11.6743 43.1725 11.5608L43.187 11.545C43.4086 11.3127 43.6567 11.1079 43.9274 10.9337C43.9553 10.9152 43.985 10.8984 44.0136 10.8804C44.1209 10.8158 44.2303 10.755 44.3435 10.7002C44.3765 10.6844 44.4094 10.6671 44.4427 10.6519C44.5846 10.5878 44.7291 10.5286 44.879 10.4814C44.879 10.4819 44.8796 10.4814 44.879 10.4814L45.173 10.3994C45.4705 10.3287 45.7805 10.2908 46.0991 10.2908ZM40.5727 19.0708V32.5386C40.5727 34.1339 39.7202 35.6206 38.3486 36.4181L27.5398 42.696L26.5424 43.2466L26.5543 42.0944V37.3194L35.4506 32.1471V27.4102L27.8779 25.24L40.5727 19.0708ZM10.2444 19.0627L15.3665 21.593V32.1467L24.1279 37.2409V43.1973L12.4684 36.4189C11.0968 35.6206 10.2444 34.1339 10.2444 32.5388V19.0627ZM23.1844 9.96788C24.5349 9.18328 26.2818 9.18328 27.6325 9.96788L39.4904 16.8956L38.3636 17.4327L33.9644 19.6061L25.4084 14.6315L16.8523 19.6061L11.3442 16.8843L12.4026 16.2425C12.4123 16.2338 12.4398 16.2153 12.4694 16.1985L23.1844 9.96788ZM25.4083 0C26.3394 0 27.27 0.242165 28.1041 0.72704L42.644 9.18112C41.5737 9.9076 40.7455 10.9637 40.2899 12.2006L26.217 4.01908C25.9718 3.87572 25.6919 3.80081 25.4083 3.80081C25.1248 3.80081 24.8454 3.87572 24.5995 4.01908L8.02283 13.6574C8.06272 13.887 8.08753 14.1216 8.08753 14.3632C8.08753 16.1154 6.98116 17.608 5.43643 18.1814C5.42457 18.1858 5.41217 18.1906 5.40031 18.1944C5.27792 18.2385 5.15392 18.2765 5.02666 18.3085L4.95065 18.328C4.83419 18.3551 4.71503 18.3764 4.59533 18.3931L4.49775 18.4079C4.3484 18.4246 4.19742 18.4356 4.04377 18.4356C3.87932 18.4356 3.71758 18.4225 3.55743 18.403C3.5143 18.3974 3.47225 18.3899 3.42965 18.3834C3.30673 18.3643 3.18595 18.34 3.06679 18.3101C3.03012 18.3008 2.99347 18.2921 2.95681 18.2819C2.64139 18.1922 2.3416 18.0679 2.06177 17.9088L1.82144 17.7607C0.725648 17.0318 0 15.7822 0 14.3632C0 12.1175 1.81431 10.2909 4.04377 10.2909C4.62229 10.2909 5.17117 10.4158 5.66881 10.6368L22.7124 0.72704C23.5465 0.242165 24.4777 0 25.4083 0Z"></path></svg><svg width="75" height="40" viewBox="0 0 47 25" fill="currentColor" class="h-7 w-auto"><path d="M0.313477 2.77294H3.57946V10.6541H6.26751V2.77294H9.53349V0.163818H0.313477V2.77294Z"></path><path d="M17.8588 0.163818V4.23889H13.5848V0.163818H10.9102V10.6541H13.5848V6.75386H17.8588V10.6541H20.5468V0.163818H17.8588Z"></path><path d="M22.568 10.6541H30.6187V8.05842H25.2561V6.71352H29.6645V4.27923H25.2561V2.77294H30.6187V0.163818H22.568V10.6541Z"></path><path d="M5.53497 20.9193H8.05247V21.2043C7.55963 21.9036 6.76042 22.3569 5.82801 22.3569C4.25624 22.3569 3.00414 21.1395 3.00414 19.6113C3.00414 18.0831 4.25624 16.8657 5.82801 16.8657C6.73378 16.8657 7.53299 17.2672 8.05247 17.9018L10.2237 16.4772C9.22464 15.208 7.61291 14.3661 5.82801 14.3661C2.81766 14.3661 0.313477 16.7232 0.313477 19.6113C0.313477 22.4994 2.81766 24.8564 5.82801 24.8564C6.89362 24.8564 7.94591 24.4679 8.45208 23.7167V24.6622H10.5433V18.7695H5.53497V20.9193Z"></path><path d="M19.0352 14.5604V20.0905C19.0352 21.5539 18.3026 22.3569 16.904 22.3569C15.5187 22.3569 14.7994 21.5539 14.7994 20.0905V14.5604H12.1354V20.2459C12.1354 22.849 13.7871 24.8564 16.904 24.8564C20.0076 24.8564 21.6859 22.849 21.6859 20.2459V14.5604H19.0352Z"></path><path d="M23.5364 14.5604V24.6622H26.2004V14.5604H23.5364Z"></path><path d="M28.1958 24.6622H35.8283V22.1626H30.8465V14.5604H28.1958V24.6622Z"></path><path d="M37.1999 24.6622H42.0218C45.2719 24.6622 46.937 22.3698 46.937 19.6113C46.937 16.8657 45.2719 14.5604 42.0218 14.5604H37.1999V24.6622ZM41.822 17.0729C43.4071 17.0729 44.2463 18.096 44.2463 19.6113C44.2463 21.1266 43.4071 22.1626 41.822 22.1626H39.864V17.0729H41.822Z"></path></svg></a><div><h3 class="mb-2.5 text-lg font-medium text-gray-900 dark:text-gray-100">Products</h3><div class="flex gap-6"><ul class="m-0 mb-8 list-none p-0 last:mb-0"><li class="mb-3 last:mb-0"><a title="Schema registry for your GraphQL workflows" class="text-gray-500 hover:text-black dark:text-[#b4b5be] hover:dark:text-gray-100 inline-block text-sm outline-none focus-visible:ring transition" href="https://the-guild.dev/graphql/hive">Hive</a></li><li class="mb-3 last:mb-0"><a title="A fully-featured GraphQL gateway framework" class="text-gray-500 hover:text-black dark:text-[#b4b5be] hover:dark:text-gray-100 inline-block text-sm outline-none focus-visible:ring transition" href="https://the-guild.dev/graphql/mesh">Mesh</a></li><li class="mb-3 last:mb-0"><a title="A fully-featured, simple to set up, performant and extendable server" class="text-gray-500 hover:text-black dark:text-[#b4b5be] hover:dark:text-gray-100 inline-block text-sm outline-none focus-visible:ring transition" href="https://the-guild.dev/graphql/yoga-server">Yoga</a></li><li class="mb-3 last:mb-0"><a title="Generation of typed queries, mutations, subscriptions and typed GraphQL resolvers" class="text-gray-500 hover:text-black dark:text-[#b4b5be] hover:dark:text-gray-100 inline-block text-sm outline-none focus-visible:ring transition" href="https://the-guild.dev/graphql/codegen">Code Generator</a></li><li class="mb-3 last:mb-0"><a title="Simple, powerful and flexible site generation framework with everything you love from Next.js" class="text-gray-500 hover:text-black dark:text-[#b4b5be] hover:dark:text-gray-100 inline-block text-sm outline-none focus-visible:ring transition" href="https://nextra.site">Nextra</a></li><li class="mb-3 last:mb-0"><a title="Generate RESTful APIs from your GraphQL server" class="text-gray-500 hover:text-black dark:text-[#b4b5be] hover:dark:text-gray-100 inline-block text-sm outline-none focus-visible:ring transition" href="https://the-guild.dev/graphql/sofa-api">GraphQL to REST</a></li></ul></div></div><div><h3 class="mb-2.5 text-lg font-medium text-gray-900 dark:text-gray-100">Resources</h3><ul class="m-0 mb-8 list-none p-0 last:mb-0"><li class="mb-3 last:mb-0"><a title="Press Kit" class="text-gray-500 hover:text-black dark:text-[#b4b5be] hover:dark:text-gray-100 inline-block text-sm outline-none focus-visible:ring transition" href="https://the-guild.dev/logos">Press Kit</a></li></ul></div><div><h3 class="mb-2.5 text-lg font-medium text-gray-900 dark:text-gray-100">Company</h3><ul class="m-0 mb-8 list-none p-0 last:mb-0"><li class="mb-3 last:mb-0"><a title="Learn more about us" class="text-gray-500 hover:text-black dark:text-[#b4b5be] hover:dark:text-gray-100 inline-block text-sm outline-none focus-visible:ring transition" href="https://the-guild.dev/about-us">About</a></li><li class="mb-3 last:mb-0"><a title="Read our blog" class="text-gray-500 hover:text-black dark:text-[#b4b5be] hover:dark:text-gray-100 inline-block text-sm outline-none focus-visible:ring transition" href="https://the-guild.dev/blog">Blog</a></li><li class="mb-3 last:mb-0"><a title="Newsletter" class="text-gray-500 hover:text-black dark:text-[#b4b5be] hover:dark:text-gray-100 inline-block text-sm outline-none focus-visible:ring transition" href="https://the-guild.dev/newsletter">Newsletter</a></li></ul></div><div class="flex gap-5 text-[#b4b5be]"><a title="Visit our Twitter" class="text-gray-500 hover:text-black dark:text-[#b4b5be] hover:dark:text-gray-100 outline-none focus-visible:ring transition" href="https://twitter.com/TheGuildDev"><svg viewBox="0 0 1200 1227" fill="currentColor" class="h-5 w-auto"><path d="M714.163 519.284L1160.89 0H1055.03L667.137 450.887L357.328 0H0L468.492 681.821L0 1226.37H105.866L515.491 750.218L842.672 1226.37H1200L714.137 519.284H714.163ZM569.165 687.828L521.697 619.934L144.011 79.6944H306.615L611.412 515.685L658.88 583.579L1055.08 1150.3H892.476L569.165 687.854V687.828Z"></path></svg></a><a title="Visit our LinkedIn" class="text-gray-500 hover:text-black dark:text-[#b4b5be] hover:dark:text-gray-100 outline-none focus-visible:ring transition" href="https://linkedin.com/company/the-guild-software"><svg viewBox="0 0 20 20" fill="currentColor" class="h-5 w-auto"><path d="M13.3337 6.66675C14.6597 6.66675 15.9315 7.19353 16.8692 8.13121C17.8069 9.0689 18.3337 10.3407 18.3337 11.6667V17.5001H15.0003V11.6667C15.0003 11.2247 14.8247 10.8008 14.5122 10.4882C14.1996 10.1757 13.7757 10.0001 13.3337 10.0001C12.8916 10.0001 12.4677 10.1757 12.1551 10.4882C11.8426 10.8008 11.667 11.2247 11.667 11.6667V17.5001H8.33366V11.6667C8.33366 10.3407 8.86044 9.0689 9.79813 8.13121C10.7358 7.19353 12.0076 6.66675 13.3337 6.66675ZM1.66699 7.50008H5.00033V17.5001H1.66699V7.50008Z"></path><path d="M3.33366 5.00008C4.25413 5.00008 5.00033 4.25389 5.00033 3.33341C5.00033 2.41294 4.25413 1.66675 3.33366 1.66675C2.41318 1.66675 1.66699 2.41294 1.66699 3.33341C1.66699 4.25389 2.41318 5.00008 3.33366 5.00008Z"></path></svg></a><a title="Reach us on Discord" class="text-gray-500 hover:text-black dark:text-[#b4b5be] hover:dark:text-gray-100 outline-none focus-visible:ring transition" href="https://discord.com/invite/xud7bH9"><svg width="24" height="24" fill="currentColor" viewBox="0 5 30.67 23.25" class="h-5 w-auto"><title>Discord</title><path d="M26.0015 6.9529C24.0021 6.03845 21.8787 5.37198 19.6623 5C19.3833 5.48048 19.0733 6.13144 18.8563 6.64292C16.4989 6.30193 14.1585 6.30193 11.8336 6.64292C11.6166 6.13144 11.2911 5.48048 11.0276 5C8.79575 5.37198 6.67235 6.03845 4.6869 6.9529C0.672601 12.8736 -0.41235 18.6548 0.130124 24.3585C2.79599 26.2959 5.36889 27.4739 7.89682 28.2489C8.51679 27.4119 9.07477 26.5129 9.55525 25.5675C8.64079 25.2265 7.77283 24.808 6.93587 24.312C7.15286 24.1571 7.36986 23.9866 7.57135 23.8161C12.6241 26.1255 18.0969 26.1255 23.0876 23.8161C23.3046 23.9866 23.5061 24.1571 23.7231 24.312C22.8861 24.808 22.0182 25.2265 21.1037 25.5675C21.5842 26.5129 22.1422 27.4119 22.7621 28.2489C25.2885 27.4739 27.8769 26.2959 30.5288 24.3585C31.1952 17.7559 29.4733 12.0212 26.0015 6.9529ZM10.2527 20.8402C8.73376 20.8402 7.49382 19.4608 7.49382 17.7714C7.49382 16.082 8.70276 14.7025 10.2527 14.7025C11.7871 14.7025 13.0425 16.082 13.0115 17.7714C13.0115 19.4608 11.7871 20.8402 10.2527 20.8402ZM20.4373 20.8402C18.9183 20.8402 17.6768 19.4608 17.6768 17.7714C17.6768 16.082 18.8873 14.7025 20.4373 14.7025C21.9717 14.7025 23.2271 16.082 23.1961 17.7714C23.1961 19.4608 21.9872 20.8402 20.4373 20.8402Z"></path></svg></a><a title="Check our GitHub account" class="text-gray-500 hover:text-black dark:text-[#b4b5be] hover:dark:text-gray-100 outline-none focus-visible:ring transition" href="https://github.com/the-guild-org"><svg width="24" height="24" fill="currentColor" viewBox="3 3 18 18" class="h-5 w-auto"><title>GitHub</title><path d="M12 3C7.0275 3 3 7.12937 3 12.2276C3 16.3109 5.57625 19.7597 9.15374 20.9824C9.60374 21.0631 9.77249 20.7863 9.77249 20.5441C9.77249 20.3249 9.76125 19.5982 9.76125 18.8254C7.5 19.2522 6.915 18.2602 6.735 17.7412C6.63375 17.4759 6.19499 16.6569 5.8125 16.4378C5.4975 16.2647 5.0475 15.838 5.80124 15.8264C6.51 15.8149 7.01625 16.4954 7.18499 16.7723C7.99499 18.1679 9.28875 17.7758 9.80625 17.5335C9.885 16.9337 10.1212 16.53 10.38 16.2993C8.3775 16.0687 6.285 15.2728 6.285 11.7432C6.285 10.7397 6.63375 9.9092 7.20749 9.26326C7.1175 9.03257 6.8025 8.08674 7.2975 6.81794C7.2975 6.81794 8.05125 6.57571 9.77249 7.76377C10.4925 7.55615 11.2575 7.45234 12.0225 7.45234C12.7875 7.45234 13.5525 7.55615 14.2725 7.76377C15.9937 6.56418 16.7475 6.81794 16.7475 6.81794C17.2424 8.08674 16.9275 9.03257 16.8375 9.26326C17.4113 9.9092 17.76 10.7281 17.76 11.7432C17.76 15.2843 15.6563 16.0687 13.6537 16.2993C13.98 16.5877 14.2613 17.1414 14.2613 18.0065C14.2613 19.2407 14.25 20.2326 14.25 20.5441C14.25 20.7863 14.4188 21.0746 14.8688 20.9824C16.6554 20.364 18.2079 19.1866 19.3078 17.6162C20.4077 16.0457 20.9995 14.1611 21 12.2276C21 7.12937 16.9725 3 12 3Z"></path></svg></a><a title="Watch Our Videos" class="text-gray-500 hover:text-black dark:text-[#b4b5be] hover:dark:text-gray-100 outline-none focus-visible:ring transition" href="https://youtube.com/watch?v=d_GBgH-L5c4&list=PLhCf3AUOg4PgQoY_A6xWDQ70yaNtPYtZd"><svg viewBox="0 0 20 20" fill="currentColor" class="h-5 w-auto"><path d="M9.99967 2.66675C7.20901 2.66675 3.58691 3.36597 3.58691 3.36597L3.5778 3.37638C2.30678 3.57966 1.33301 4.67183 1.33301 6.00008V10.0001V10.0014V14.0001V14.0014C1.33425 14.6357 1.56159 15.2489 1.97421 15.7307C2.38683 16.2125 2.95769 16.5315 3.58431 16.6303L3.58691 16.6342C3.58691 16.6342 7.20901 17.3347 9.99967 17.3347C12.7903 17.3347 16.4124 16.6342 16.4124 16.6342L16.4137 16.6329C17.041 16.5343 17.6126 16.2151 18.0255 15.7327C18.4384 15.2503 18.6657 14.6364 18.6663 14.0014V14.0001V10.0014V10.0001V6.00008C18.6654 5.3655 18.4382 4.75205 18.0256 4.26995C17.6129 3.78786 17.0419 3.46872 16.415 3.36987L16.4124 3.36597C16.4124 3.36597 12.7903 2.66675 9.99967 2.66675ZM7.99967 6.93237L13.333 10.0001L7.99967 13.0678V6.93237Z"></path></svg></a></div><svg fill="#00559a" viewBox="0 0 137.2 137.2" class="absolute right-0 ml-auto h-[4.5rem] w-auto md:bottom-0"><title>Cloud Security Alliance Star Level One Badge</title><circle cx="68.95" cy="68.63" r="55.63" fill="#fff"></circle><path d="M68.6 0a68.6 68.6 0 1 0 68.6 68.6A68.68 68.68 0 0 0 68.6 0Zm0 120.6a52 52 0 1 1 52-52 52.05 52.05 0 0 1-52 52Z"></path><path d="m114 51.36.24-1.48v-.24a4 4 0 0 1-.21.38l-.88 1.4-.39-1.4a2.27 2.27 0 0 1-.09-.38v.24l-.24 1.48h-.28l.36-2.22h.33l.36 1.33c0 .13.08.31.1.4 0-.09.15-.27.22-.4l.81-1.33h.32l-.37 2.22Zm-2.67-2-.33 2h-.3l.33-2h-.72v-.23h1.73v.23ZM76.54 55.5v-.08ZM29.55 60.08a6.94 6.94 0 0 0 2.25 1.33 28.85 28.85 0 0 0 3.3 1c.71.17 1.29.33 1.75.48a6.69 6.69 0 0 1 1.07.47 1.42 1.42 0 0 1 .53.49.88.88 0 0 1 .09.56 1.35 1.35 0 0 1-.76 1.1 6 6 0 0 1-2.29.31 7.09 7.09 0 0 1-1.59-.19 10.7 10.7 0 0 1-1.67-.5 15.73 15.73 0 0 1-1.56-.7 9.8 9.8 0 0 1-1.28-.8l-3.61 4.76a14.31 14.31 0 0 0 3.88 1.89 15.75 15.75 0 0 0 5 .76 16 16 0 0 0 3.68-.4 9.77 9.77 0 0 0 3-1.25 7.38 7.38 0 0 0 2.19-2.19 8.08 8.08 0 0 0 1.14-3.2 6.61 6.61 0 0 0-.1-2.66 4.05 4.05 0 0 0-1.16-1.93 5.75 5.75 0 0 0-1-.74H28.54a4.1 4.1 0 0 0 1.01 1.41ZM34.38 55a1.44 1.44 0 0 1 .58-1 3.28 3.28 0 0 1 1.87-.38 8.7 8.7 0 0 1 3.08.53 9.28 9.28 0 0 1 1.93 1c.33.22.75.57.75.57l.46-.57L46.24 51a12 12 0 0 0-3.56-1.88 15.72 15.72 0 0 0-4.81-.65 12.35 12.35 0 0 0-3.63.5 9.44 9.44 0 0 0-2.92 1.41 7.5 7.5 0 0 0-2.05 2.19 7.36 7.36 0 0 0-1 2.64h6.08ZM51.95 71h6.07l1.7-12.06h-6.07L51.95 71zM60.36 54.39h6.13l.74-5.29H48.9l-.74 5.29h6.13l-.16 1.11h6.07l.16-1.11zM76.57 55.42v.08H82l-1.42-6.4h-6.15l-3.22 6.4h5.33ZM88.55 71h6l1-7.38H98l2.52 7.38h6.8l-3.21-8.35a8.35 8.35 0 0 0 3.22-2.38 6.88 6.88 0 0 0 .82-1.33h-17.9ZM96.88 54h3.68a2.38 2.38 0 0 1 2 .66 1.77 1.77 0 0 1 .36.8H109a6.75 6.75 0 0 0-.22-2.57 4.56 4.56 0 0 0-1.42-2.2 6.25 6.25 0 0 0-2.53-1.24 14 14 0 0 0-3.44-.39h-9.76l-.9 6.4h6ZM82.74 59H69.47L63.4 71h6.51l1.73-3.81h6.57l.65 3.81h6.57Zm-5.32 2.92.38 3.29-2.37-2-3.13 2L74 62l-2.42-1.94h3.29l.47-1.06H77l.18 1h3.3ZM76.58 56.41l-1.24 2.58H77l-.42-2.58z"></path><path d="M11.16 60.63a3.54 3.54 0 0 0 1.05-1.94c.15-.8-.12-1.44-.86-1.57s-1.17.62-1.58 1.46-1 1.78-2.24 1.56A1.94 1.94 0 0 1 6 57.61a4 4 0 0 1 .85-1.87l.94.17a3.75 3.75 0 0 0-1 1.86c-.13.76.11 1.35.8 1.48.85.15 1.13-.62 1.51-1.41s1-1.84 2.32-1.61A2 2 0 0 1 13 58.85a4.23 4.23 0 0 1-.89 1.95ZM8.18 52.18l-.63 2.23-.79-.22 1.49-5.33.79.22-.62 2.23L14.28 53l-.24.87ZM9.23 46.22l.31-.81 7.46-.18-.35.91h-2.08l-1.11 2.9L15 50.5l-.33.86Zm3.62 2.28.89-2.32h-3.37q.68.6 1.38 1.26ZM11.25 41.39l.86-1.66a3.94 3.94 0 0 1 1.2-1.56 1.76 1.76 0 0 1 1.87-.1 1.85 1.85 0 0 1 1 1.54 2.11 2.11 0 0 1-.11.83l3.72-.55-.51 1-3.6.5-.54 1 2.63 1.36-.42.81Zm3.8-.37a2.18 2.18 0 0 0 .35-1.35 1 1 0 0 0-.57-.76 1.09 1.09 0 0 0-1.14.05 3 3 0 0 0-.88 1.2l-.42.8 2.12 1.1ZM15.92 33.22l.52-.74 5 3.54 1.9-2.65.67.47-2.43 3.4ZM19.37 28.57l2.61-3 .62.53-2 2.34 1.58 1.37 1.77-2 .6.51-1.77 2 1.8 1.55 2.07-2.39.62.53-2.67 3.07ZM22.75 24.67l.7-.67 3.73 1.81c.58.27 1.15.55 1.76.86-.27-.62-.52-1.22-.78-1.83L26.6 21l.68-.64 2.82 6.84-.67.64ZM28.44 19.48 31.59 17l.51.65-2.44 1.88 1.28 1.67 2.14-1.66.48.63-2.14 1.65 1.45 1.88 2.51-1.93.5.65L32.66 25ZM33.12 16l.77-.49 3.26 5.14 2.75-1.75.44.69-3.52 2.23ZM43.29 10.32a3.48 3.48 0 0 1 4.64 1.86 3.51 3.51 0 1 1-4.64-1.86Zm2.5 5.75a2.6 2.6 0 0 0 1.31-3.52 2.61 2.61 0 1 0-4.78 2.07 2.61 2.61 0 0 0 3.47 1.45ZM50.33 15l-1.89-6.63.83-.23L53.1 11q.8.6 1.59 1.23c-.18-.57-.38-1.24-.56-1.89L53.2 7l.8-.22 1.89 6.65-.82.24-3.84-2.91c-.52-.39-1.06-.81-1.58-1.22l.56 1.89 1 3.34ZM56.24 6.35l3.93-.66.14.81-3 .51.34 2.07 2.67-.44.13.78-2.66.44.39 2.35 3.12-.52.14.8-4 .68ZM62.17 8.24a.62.62 0 1 1 .68.56.62.62 0 0 1-.68-.56Zm.9 3a.62.62 0 0 1 .68.56.62.62 0 0 1-1.24.12.62.62 0 0 1 .56-.71ZM67.49 10.63a3.67 3.67 0 0 0 2.08.74c.82 0 1.4-.35 1.42-1.11s-.8-1-1.7-1.32-1.91-.71-1.89-2 .92-1.91 2.27-1.89a3.9 3.9 0 0 1 2 .55v1a3.7 3.7 0 0 0-2-.67c-.77 0-1.32.31-1.33 1 0 .86.79 1 1.62 1.27 1 .3 2 .71 2 2s-.95 2-2.34 2a4.43 4.43 0 0 1-2.07-.58ZM73.71 5.35l4 .43-.09.82-3.07-.34-.23 2.09 2.69.3-.09.78-2.68-.29L74 11.5l3.15.35-.09.81-4.06-.44ZM79.51 6.08l.89.18-1.22 6 3.2.65-.16.81-4.09-.84ZM85.17 7.33l3.91 1.18-.23.79-3-.92-.64 2.14 2.68.81-.23.75-2.68-.8-.98 2.93-.83-.21ZM89.37 11.91l2.12.83-.28.71-2.12-.82ZM95.88 11.32l.78.38-.44 7.46-.88-.42.15-2.07-2.8-1.36-1.55 1.39-.83-.4Zm-2.56 3.41 2.23 1.09.12-1.54c0-.59.09-1.23.15-1.82l-1.36 1.27ZM97.43 18.28a3.75 3.75 0 0 0 1.4 1.72c.7.43 1.39.42 1.79-.22s-.14-1.31-.77-2-1.27-1.59-.6-2.66a1.93 1.93 0 0 1 2.91-.45 3.85 3.85 0 0 1 1.41 1.48l-.5.81a3.69 3.69 0 0 0-1.36-1.6c-.66-.41-1.3-.41-1.67.19s.15 1.27.73 1.92 1.34 1.64.64 2.75a2 2 0 0 1-3 .48 4.19 4.19 0 0 1-1.48-1.56ZM102 21.21a3.62 3.62 0 0 0 1.26 1.79c.65.5 1.34.55 1.8-.05s0-1.31-.58-2.07-1.12-1.7-.35-2.7a1.94 1.94 0 0 1 2.94-.18 3.93 3.93 0 0 1 1.26 1.62l-.57.75a3.74 3.74 0 0 0-1.21-1.72c-.61-.47-1.25-.53-1.68 0s0 1.28.56 2 1.17 1.75.37 2.8a2 2 0 0 1-3 .19 4.27 4.27 0 0 1-1.38-1.64ZM110.16 20.66l2.93 2.69-.55.61-2.27-2.09-1.42 1.55 2 1.82-.54.59-2-1.83-1.61 1.75 2.3 2.14-.56.6-3-2.75ZM110.21 28.21a3.65 3.65 0 0 0 .87 2c.55.61 1.22.79 1.78.28s.23-1.29-.19-2.14-.78-1.88.15-2.72a2 2 0 0 1 2.93.36 3.85 3.85 0 0 1 1 1.82l-.71.64a3.65 3.65 0 0 0-.87-1.91c-.52-.58-1.13-.76-1.65-.28s-.21 1.26.18 2c.46.94.82 1.94-.15 2.83a2 2 0 0 1-3-.37 4.43 4.43 0 0 1-1-1.91ZM113.81 32.29a3.64 3.64 0 0 0 .68 2.09c.49.66 1.14.9 1.74.45s.35-1.27 0-2.15-.61-1.94.4-2.69a1.93 1.93 0 0 1 2.88.63 3.93 3.93 0 0 1 .78 1.9l-.77.57a3.69 3.69 0 0 0-.68-2c-.47-.62-1.06-.85-1.63-.43s-.32 1.24 0 2.06c.37 1 .64 2-.41 2.79a2 2 0 0 1-3-.65 4.12 4.12 0 0 1-.8-2ZM120.33 37.06c.23-.5.47-1 .72-1.49-.35.22-.8.49-1.29.77l-3.37 2-.44-.76 6-3.46.43.76-1.81 3.88 4.27.37.43.75-6 3.46-.46-.79 3.38-1.94c.48-.29.94-.54 1.3-.74-.55 0-1.1-.07-1.64-.12l-2.63-.23ZM126.18 41.89l1.58 3.67-.76.32-1.22-2.83-1.93.83 1.07 2.48-.73.31-1.06-2.48-2.19.94 1.25 2.87-.75.33-1.61-3.75ZM121.85 49.38l6.6-2 .25.82-2.82 3.88c-.39.54-.79 1.08-1.2 1.61.57-.18 1.23-.4 1.87-.59l3.32-1 .26.84-6.61 2-.25-.82 2.83-3.88c.38-.54.79-1.08 1.19-1.61-.57.19-1.24.4-1.87.59l-3.33 1ZM130.13 57l-.41-2.28.81-.14 1 5.45-.8.15-.42-2.28-6 1.08-.16-.9ZM6.73 79a3.62 3.62 0 0 0-.28 2.19c.16.81.64 1.3 1.38 1.15s.86-1 .93-1.94.29-2 1.52-2.26 2.07.49 2.33 1.81a3.82 3.82 0 0 1-.11 2l-.93.19a3.8 3.8 0 0 0 .23-2.09c-.16-.76-.59-1.22-1.28-1.08s-.83 1-.89 1.85c-.09 1-.28 2.09-1.57 2.35a2 2 0 0 1-2.42-1.86 4.14 4.14 0 0 1 .12-2.15ZM13.22 83.21 14.36 87l-.78.24-.88-3-2 .6.78 2.59-.76.23-.77-2.59-2.28.68.91 3-.79.23-1.16-3.9ZM16 91a4.15 4.15 0 0 1 .29 2l-.92.38a3.35 3.35 0 0 0-.15-2.06 2.63 2.63 0 0 0-3.54-1.44 2.64 2.64 0 0 0-1.46 3.58A3.09 3.09 0 0 0 11.65 95l-.93.39a3.92 3.92 0 0 1-1.26-1.68A3.47 3.47 0 0 1 11.35 89 3.49 3.49 0 0 1 16 91ZM13.92 95.55l3.19-1.77.44.79-3.11 1.72a3.8 3.8 0 0 0-1.44 1.1 1.68 1.68 0 0 0 .06 1.83 1.67 1.67 0 0 0 1.51 1 3.66 3.66 0 0 0 1.65-.62l3.15-1.73.42.77-3.1 1.71a4.26 4.26 0 0 1-2.31.75 2.7 2.7 0 0 1-2.07-1.52 2.65 2.65 0 0 1-.18-2.55 4.17 4.17 0 0 1 1.79-1.48ZM20.5 99.7l1.08 1.53a3.83 3.83 0 0 1 .83 1.77 1.74 1.74 0 0 1-.76 1.71 1.83 1.83 0 0 1-1.84.21 2 2 0 0 1-.69-.48L17.91 108l-.64-.89 1.2-3.43-.67-1-2.42 1.71-.52-.74Zm-1.42 3.55a2.14 2.14 0 0 0 1 .92 1 1 0 0 0 .94-.16 1.07 1.07 0 0 0 .48-1 3 3 0 0 0-.67-1.34l-.52-.74-2 1.38ZM24.08 104.57l.58.7-5.34 4.38-.57-.7ZM26.17 108.22l-1.6-1.69.6-.56L29 110l-.59.57-1.6-1.69-4.42 4.19-.62-.66ZM28.65 114.72l.43-4.61.8.69-.2 2c-.06.52-.11 1-.18 1.58l1.54-.42 2-.52.77.66-4.46 1.15-2 2.38-.69-.59ZM36.83 117.19l-1.95-1.26.45-.69 4.66 3-.44.69-1.95-1.26-3.31 5.12-.76-.49ZM40.67 118.61l1.67.85a3.81 3.81 0 0 1 1.56 1.18 1.72 1.72 0 0 1 .1 1.86 1.8 1.8 0 0 1-1.52 1 2.18 2.18 0 0 1-.84-.1l.6 3.72-1-.5-.54-3.6-1.05-.53-1.34 2.64-.81-.41Zm.4 3.8a2.09 2.09 0 0 0 1.35.33 1 1 0 0 0 .76-.58 1.07 1.07 0 0 0-.06-1.13 3 3 0 0 0-1.22-.87l-.79-.41-1.11 2.13ZM44.64 124.66l1.28-3.43.85.32-1.24 3.34a3.94 3.94 0 0 0-.38 1.76A1.69 1.69 0 0 0 46.4 128a1.66 1.66 0 0 0 1.81-.21 3.69 3.69 0 0 0 .85-1.54l1.26-3.37.83.3-1.25 3.33a4.21 4.21 0 0 1-1.26 2.07 3 3 0 0 1-4.37-1.58 4.23 4.23 0 0 1 .37-2.34ZM50.81 128.78a3.53 3.53 0 0 0 1.84 1.22c.8.21 1.45 0 1.64-.74s-.52-1.26-1.29-1.69-1.69-1.14-1.37-2.36a1.93 1.93 0 0 1 2.64-1.3 3.75 3.75 0 0 1 1.79 1l-.24.92a3.57 3.57 0 0 0-1.82-1.12c-.75-.2-1.36 0-1.54.67-.22.83.52 1.17 1.28 1.61s1.75 1.17 1.42 2.44a2 2 0 0 1-2.73 1.36 4.29 4.29 0 0 1-1.88-1ZM59 125.85l-2.29-.36.13-.81 5.48.87-.13.81-2.32-.36-1 6-.89-.14ZM67.44 125.82h.87l2.74 7h-1l-.74-1.94-3.11-.05-.81 1.91h-.93Zm-.88 4.18H69l-.54-1.44c-.22-.55-.43-1.15-.64-1.72-.22.56-.46 1.14-.71 1.73ZM72.09 131.24a3.53 3.53 0 0 0 2.14.52c.82-.07 1.37-.49 1.3-1.24s-.9-1-1.83-1.14-2-.51-2.08-1.76.72-2 2.06-2.12a3.9 3.9 0 0 1 2 .34l.08 1a3.7 3.7 0 0 0-2-.46c-.77.07-1.28.45-1.22 1.15.08.86.89.93 1.75 1.09 1 .2 2 .51 2.16 1.82s-.75 2.08-2.13 2.2a4.26 4.26 0 0 1-2.12-.36ZM77.76 130.68a3.62 3.62 0 0 0 2.18.32c.81-.15 1.32-.61 1.18-1.36s-1-.88-1.92-1-2-.32-2.23-1.56.53-2 1.86-2.29a3.83 3.83 0 0 1 2 .15l.17.94a3.63 3.63 0 0 0-2.08-.27c-.77.13-1.24.56-1.12 1.25.16.85 1 .85 1.84.93 1 .1 2.08.32 2.32 1.62s-.56 2.13-1.92 2.38a4.23 4.23 0 0 1-2.14-.17ZM83 127.84l-1-3.51.87-.25 1 3.41a4 4 0 0 0 .76 1.64 1.72 1.72 0 0 0 1.81.34 1.67 1.67 0 0 0 1.32-1.25 3.73 3.73 0 0 0-.24-1.75l-1-3.45.84-.25 1 3.41a4.28 4.28 0 0 1 .23 2.41 3.06 3.06 0 0 1-4.47 1.31 4.2 4.2 0 0 1-1.12-2.06ZM88.5 122.32l1.73-.72a3.9 3.9 0 0 1 1.91-.42 1.74 1.74 0 0 1 1.5 1.12 1.83 1.83 0 0 1-.19 1.84 2.41 2.41 0 0 1-.62.57l3.21 2-1 .42-3.09-1.91-1.08.45 1.13 2.68-.84.35Zm3.16 2.16a2.18 2.18 0 0 0 1.13-.81 1 1 0 0 0 0-1 1 1 0 0 0-.89-.69 3.09 3.09 0 0 0-1.46.36l-.83.34.92 2.2ZM95.85 119l.76-.42 5.84 4.66-.86.47-1.6-1.31-2.72 1.5.24 2.07-.81.44Zm1.31 4 2.17-1.2-1.18-1c-.46-.38-1-.79-1.4-1.18.09.6.17 1.22.24 1.85ZM103.62 122.42l-4-5.61.7-.5 4.58 1.43c.64.19 1.28.4 1.91.61-.35-.48-.77-1-1.16-1.59l-2-2.82.72-.51 4 5.61-.7.5-4.59-1.42c-.63-.2-1.27-.4-1.91-.62.36.48.78 1 1.17 1.59l2 2.82ZM107.64 110.32a4 4 0 0 1 1.76-.95l.67.73a3.34 3.34 0 0 0-1.87.84 2.72 2.72 0 1 0 3.71 4 3 3 0 0 0 1-1.85l.68.74a3.88 3.88 0 0 1-1.15 1.76 3.55 3.55 0 1 1-4.8-5.24ZM109.92 108.24l2.67-3 .61.55-2.06 2.29 1.56 1.4 1.8-2 .59.53-1.8 2 1.77 1.59 2.11-2.35.61.54-2.72 3ZM120 99.76l1.65 2.1 2.18-.42-.6.9-1.14.22a2.37 2.37 0 0 1-.38 2.22 2 2 0 0 1-3.71-1.15v-.26h-.3a2 2 0 0 1-1.58-.22 1.77 1.77 0 0 1 2-2.92 1.83 1.83 0 0 1 .74 1.63v.47l1.89-.36-1.24-1.55Zm-2.34 2.87.42-.08V102a1.13 1.13 0 0 0-.44-1 .84.84 0 0 0-1.21.29.83.83 0 0 0 .2 1.2 1.29 1.29 0 0 0 .99.14Zm3.57.13-2.43.47v.42a1.21 1.21 0 0 0 2.32.69 1.47 1.47 0 0 0 .07-1.58ZM119.35 95.18l.8-1.69a3.83 3.83 0 0 1 1.14-1.59 1.74 1.74 0 0 1 1.86-.17 1.83 1.83 0 0 1 1.09 1.49 2.17 2.17 0 0 1-.08.84l3.7-.69-.47 1-3.58.63-.5 1.07 2.69 1.25-.39.82Zm3.79-.5a2.19 2.19 0 0 0 .29-1.36 1 1 0 0 0-.6-.74 1.05 1.05 0 0 0-1.13.09 3.06 3.06 0 0 0-.84 1.24l-.38.81 2.15 1ZM121.83 89.68l.32-.85 6.44 2.5-.32.85ZM127.85 89.29a3.65 3.65 0 0 0 1.3-1.78c.24-.78.06-1.45-.66-1.68s-1.24.47-1.75 1.26-1.22 1.63-2.42 1.25a1.94 1.94 0 0 1-1.18-2.7 3.86 3.86 0 0 1 1.08-1.74l.92.28a3.62 3.62 0 0 0-1.21 1.73c-.23.73-.07 1.35.6 1.56s1.2-.47 1.67-1.2 1.25-1.7 2.51-1.3a2 2 0 0 1 1.22 2.79 4.24 4.24 0 0 1-1.13 1.83ZM124.17 82.53l.19-.89 3.06.64-2.42-3.61.23-1.1 2.5 3.69 4.27-2.54-.24 1.16-4.15 2.43 3.49.73-.19.88Z" fill="#fff"></path><path d="M26.34 76.14h1.49v10h5.38v1.35h-6.87ZM35.1 76.14h6.58v1.35h-5.09V81h4.46v1.3h-4.46v3.92h5.23v1.35H35.1ZM42.73 76.14h1.6l2.43 6.39 1.11 3c.38-1 .76-2 1.15-3.07l2.44-6.34H53l-4.36 11.41h-1.52ZM54.53 76.14h6.57v1.35H56V81h4.45v1.3H56v3.92h5.23v1.35h-6.7ZM63.35 76.14h1.5v10h5.38v1.35h-6.88ZM81.22 76a5.87 5.87 0 1 1-5.79 5.87A5.72 5.72 0 0 1 81.22 76Zm0 10.35a4.49 4.49 0 1 0-4.29-4.48 4.3 4.3 0 0 0 4.29 4.45ZM89.07 87.53V76.14h1.42l4.77 6.33c.66.86 1.32 1.76 2 2.66v-8.99h1.45v11.39h-1.46l-4.76-6.32c-.66-.87-1.32-1.76-2-2.66v8.96ZM101.38 76.14H108v1.35h-5.08V81h4.45v1.3h-4.45v3.92h5.22v1.35h-6.71Z"></path></svg></div></div></footer></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/blog","query":{},"buildId":"S1V_nyr3diPgZU5ww-uIH","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>