Guides
Learn how to build the next generation of web and mobile apps with Grafbase.
![Add GraphQL Edge Caching to Vendure](/_next/image?url=%2Fimages%2Fguides%2Fgraphql-edge-caching-vendure.png&w=1080&q=100)
Add GraphQL Edge Caching to Vendure
![Fredrik Björk](/_next/image?url=%2Fimages%2Favatars%2Ffredrik.png&w=48&q=75)
![Query blockchain data from multiple subgraphs using The Graph](/_next/image?url=%2Fimages%2Fog%2Fthegraph.png&w=1080&q=100)
Query blockchain data from multiple subgraphs using The Graph
![Fredrik Björk](/_next/image?url=%2Fimages%2Favatars%2Ffredrik.png&w=48&q=75)
![MongoDB Connector](/_next/image?url=%2Fimages%2Fguides%2Fmongodb.png&w=1080&q=100)
MongoDB Connector
![Jamie Barton](/_next/image?url=%2Fimages%2Favatars%2Fjamie.png&w=48&q=75)
![Build and Deploy a GraphQL API to the Edge with Fauna](/_next/image?url=%2Fimages%2Fguides%2Fbuild-and-deploy-a-graphql-api-to-the-edge-with-fauna%2Fcover.png&w=1080&q=100)
Build and Deploy a GraphQL API to the Edge with Fauna
![Jamie Barton](/_next/image?url=%2Fimages%2Favatars%2Fjamie.png&w=48&q=75)
![Add GraphQL Edge Caching to WunderGraph Cosmo](/_next/image?url=%2Fimages%2Fguides%2Fgraphql-edge-caching-wundergraph-cosmo.png&w=1080&q=100)
Add GraphQL Edge Caching to WunderGraph Cosmo
![Jamie Barton](/_next/image?url=%2Fimages%2Favatars%2Fjamie.png&w=48&q=75)
![Add GraphQL Edge Caching to Stripe](/_next/image?url=%2Fimages%2Fguides%2Fgraphql-edge-caching-stripe.png&w=1080&q=100)
Add GraphQL Edge Caching to Stripe
![Jamie Barton](/_next/image?url=%2Fimages%2Favatars%2Fjamie.png&w=48&q=75)
![Add GraphQL Edge Caching to commercetools](/_next/image?url=%2Fimages%2Fguides%2Fgraphql-edge-caching-commercetools%2Fcover.png&w=1080&q=100)
Add GraphQL Edge Caching to commercetools
![Jamie Barton](/_next/image?url=%2Fimages%2Favatars%2Fjamie.png&w=48&q=75)
![Add GraphQL Edge Caching to Contentful](/_next/image?url=%2Fimages%2Fguides%2Fgraphql-edge-caching-contentful.png&w=1080&q=100)
Add GraphQL Edge Caching to Contentful
![Jamie Barton](/_next/image?url=%2Fimages%2Favatars%2Fjamie.png&w=48&q=75)
![Add GraphQL Edge Caching to Strapi Cloud](/_next/image?url=%2Fimages%2Fguides%2Fgraphql-edge-caching-strapi.png&w=1080&q=100)
Add GraphQL Edge Caching to Strapi Cloud
![Jamie Barton](/_next/image?url=%2Fimages%2Favatars%2Fjamie.png&w=48&q=75)
![Add GraphQL Edge Caching to DatoCMS](/_next/image?url=%2Fimages%2Fguides%2Fgraphql-edge-caching-datocms.png&w=1080&q=100)
Add GraphQL Edge Caching to DatoCMS
![Jamie Barton](/_next/image?url=%2Fimages%2Favatars%2Fjamie.png&w=48&q=75)
![Add GraphQL Edge Caching to Swell](/_next/image?url=%2Fimages%2Fguides%2Fgraphql-edge-caching-swell.png&w=1080&q=100)
Add GraphQL Edge Caching to Swell
![Jamie Barton](/_next/image?url=%2Fimages%2Favatars%2Fjamie.png&w=48&q=75)
![Add GraphQL Edge Caching to OpenAI](/_next/image?url=%2Fimages%2Fguides%2Fgraphql-edge-caching-openai.png&w=1080&q=100)
Add GraphQL Edge Caching to OpenAI
![Jamie Barton](/_next/image?url=%2Fimages%2Favatars%2Fjamie.png&w=48&q=75)
![Add GraphQL Edge Caching to Storyblok](/_next/image?url=%2Fimages%2Fguides%2Fgraphql-edge-caching-storyblok.png&w=1080&q=100)
Add GraphQL Edge Caching to Storyblok
![Jamie Barton](/_next/image?url=%2Fimages%2Favatars%2Fjamie.png&w=48&q=75)
![Deploy GraphQL APIs at the Edge with Couchbase](/_next/image?url=%2Fimages%2Fguides%2Fdeploy-graphql-apis-at-the-edge-with-couchbase%2Fcover.png&w=1080&q=100)
Deploy GraphQL APIs at the Edge with Couchbase
![Jamie Barton](/_next/image?url=%2Fimages%2Favatars%2Fjamie.png&w=48&q=75)
![Add GraphQL Edge Caching to Tinybird](/_next/image?url=%2Fimages%2Fguides%2Fgraphql-edge-caching-tinybird.png&w=1080&q=100)
Add GraphQL Edge Caching to Tinybird
![Jamie Barton](/_next/image?url=%2Fimages%2Favatars%2Fjamie.png&w=48&q=75)
![Add GraphQL Edge Caching to Dgraph Cloud](/_next/image?url=%2Fimages%2Fguides%2Fgraphql-edge-caching-dgraph-cloud%2Fgraphql-edge-caching-dgraph-cloud.png&w=1080&q=100)
Add GraphQL Edge Caching to Dgraph Cloud
![Jamie Barton](/_next/image?url=%2Fimages%2Favatars%2Fjamie.png&w=48&q=75)
![Add GraphQL Edge Caching to Shopify](/_next/image?url=%2Fimages%2Fguides%2Fgraphql-edge-caching-shopify.png&w=1080&q=100)
Add GraphQL Edge Caching to Shopify
![Jamie Barton](/_next/image?url=%2Fimages%2Favatars%2Fjamie.png&w=48&q=75)
![Build and Deploy a GraphQL API to the Edge with MySQL and PlanetScale](/_next/image?url=%2Fimages%2Fguides%2Fbuild-and-deploy-a-graphql-api-to-the-edge-with-mysql-and-planetscale%2Fgrafbase-planetscale.png&w=1080&q=100)
Build and Deploy a GraphQL API to the Edge with MySQL and PlanetScale
![Jamie Barton](/_next/image?url=%2Fimages%2Favatars%2Fjamie.png&w=48&q=75)
![Extend any GraphQL API with data from other APIs](/_next/image?url=%2Fimages%2Fguides%2Fextend-any-graphql-api-with-data-from-other-apis%2Fcover.png&w=1080&q=100)
Extend any GraphQL API with data from other APIs
![Jamie Barton](/_next/image?url=%2Fimages%2Favatars%2Fjamie.png&w=48&q=75)
![Working with Contentful and GraphQL](/_next/image?url=%2Fimages%2Fog%2Fcontentful.png&w=1080&q=100)
Working with Contentful and GraphQL
![Heather Thacker](/_next/image?url=%2Fimages%2Favatars%2Fheather.png&w=48&q=75)
![Instant GraphQL APIs on Tinybird Pipes](/_next/image?url=%2Fimages%2Fguides%2Finstant-graphql-api-on-tinybird-pipes%2Fgrafbase-tinybird.png&w=1080&q=100)
Instant GraphQL APIs on Tinybird Pipes
![Jamie Barton](/_next/image?url=%2Fimages%2Favatars%2Fjamie.png&w=48&q=75)
![Manage a shopping cart with Vercel KV and Grafbase](/_next/image?url=%2Fimages%2Fguides%2Fworking-with-resolvers-and-vercel-kv%2Fcover.png&w=1080&q=100)
Manage a shopping cart with Vercel KV and Grafbase
![Josep](/_next/image?url=%2Fimages%2Favatars%2Fjosep.png&w=48&q=75)
![Working with resolvers and Vercel Postgres](/_next/image?url=%2Fimages%2Fguides%2Fworking-with-resolvers-and-vercel-postgres%2Fcover.png&w=1080&q=100)
Working with resolvers and Vercel Postgres
![Jamie Barton](/_next/image?url=%2Fimages%2Favatars%2Fjamie.png&w=48&q=75)
![Josep Vidal](/_next/image?url=%2Fimages%2Favatars%2Fjosep.png&w=48&q=75)
![Working with GraphQL and Turso using Edge Resolvers](/_next/image?url=%2Fimages%2Fguides%2Fworking-with-graphql-and-turso-using-edge-resolvers%2Fgrafbase-turso.png&w=1080&q=100)
Working with GraphQL and Turso using Edge Resolvers
![Jamie Barton](/_next/image?url=%2Fimages%2Favatars%2Fjamie.png&w=48&q=75)
![Rate limit ChatGPT API requests with Upstash and Grafbase resolvers](/_next/image?url=%2Fimages%2Fguides%2Frequesting-chat-gpt-answers-with-upstash-redis-rate-limiting%2Fcover.png&w=1080&q=100)
Rate limit ChatGPT API requests with Upstash and Grafbase resolvers
![Josep Vidal](/_next/image?url=%2Fimages%2Favatars%2Fjosep.png&w=48&q=75)
![Working with GraphQL, MongoDB Data API and Edge Resolvers](/_next/image?url=%2Fimages%2Fguides%2Fworking-with-graphql-mongodb-data-api-and-edge-resolvers%2Fgrafbase-mongodb.png&w=1080&q=100)
Working with GraphQL, MongoDB Data API and Edge Resolvers
![Jamie Barton](/_next/image?url=%2Fimages%2Favatars%2Fjamie.png&w=48&q=75)
![How to Build a Real-time Chat App with Next.js, GraphQL, and Server-Sent Events](/_next/image?url=%2Fimages%2Fguides%2Fhow-to-build-a-real-time-chat-app-with-nextjs-graphql-and-server-sent-events%2Fcover.png&w=1080&q=100)
How to Build a Real-time Chat App with Next.js, GraphQL, and Server-Sent Events
![Jamie Barton](/_next/image?url=%2Fimages%2Favatars%2Fjamie.png&w=48&q=75)
![Working with mutation resolvers and Stripe Checkout](/_next/image?url=%2Fimages%2Fguides%2Fworking-with-mutation-resolvers-and-stripe-checkout%2Fcover.png&w=1080&q=100)
Working with mutation resolvers and Stripe Checkout
![Jamie Barton](/_next/image?url=%2Fimages%2Favatars%2Fjamie.png&w=48&q=75)
![Working with query resolvers and OpenAI](/_next/image?url=%2Fimages%2Fguides%2Fworking-with-query-resolvers-and-openai%2Fcover.png&w=1080&q=100)
Working with query resolvers and OpenAI
![Jamie Barton](/_next/image?url=%2Fimages%2Favatars%2Fjamie.png&w=48&q=75)
![Using Remix Loader for Fetching Data](/_next/image?url=%2Fimages%2Fog%2Fremix.png&w=1080&q=100)
Using Remix Loader for Fetching Data
![Heather Thacker](/_next/image?url=%2Fimages%2Favatars%2Fheather.png&w=48&q=75)
![Working with Remix Actions and GraphQL](/_next/image?url=%2Fimages%2Fog%2Fremix.png&w=1080&q=100)
Working with Remix Actions and GraphQL
![Heather Thacker](/_next/image?url=%2Fimages%2Favatars%2Fheather.png&w=48&q=75)
![Working with field resolvers and Fetch](/_next/image?url=%2Fimages%2Fguides%2Fworking-with-field-resolvers-and-fetch%2Fcover.png&w=1080&q=100)
Working with field resolvers and Fetch
![Jamie Barton](/_next/image?url=%2Fimages%2Favatars%2Fjamie.png&w=48&q=75)
![Using Auth0 as your Identity Provider with Grafbase](/_next/image?url=%2Fimages%2Fog%2Fauth0.png&w=1080&q=100)
Using Auth0 as your Identity Provider with Grafbase
![Jamie Barton](/_next/image?url=%2Fimages%2Favatars%2Fjamie.png&w=48&q=75)
![Working cross-platform with Kotlin, GraphQL, and Grafbase](/_next/image?url=%2Fimages%2Fog%2Fkotlin.png&w=1080&q=100)
Working cross-platform with Kotlin, GraphQL, and Grafbase
![Jamie Barton](/_next/image?url=%2Fimages%2Favatars%2Fjamie.png&w=48&q=75)
![Working with Apollo Client and Relay style pagination](/_next/image?url=%2Fimages%2Fog%2Fapollo-client.png&w=1080&q=100)
Working with Apollo Client and Relay style pagination
![Jamie Barton](/_next/image?url=%2Fimages%2Favatars%2Fjamie.png&w=48&q=75)
![Working with SvelteKit, Houdini and GraphQL Live Queries](/_next/image?url=%2Fimages%2Fog%2Fhoudini.png&w=1080&q=100)
Working with SvelteKit, Houdini and GraphQL Live Queries
![Jamie Barton](/_next/image?url=%2Fimages%2Favatars%2Fjamie.png&w=48&q=75)
![Getting started with SvelteKit, Houdini and Grafbase](/_next/image?url=%2Fimages%2Fog%2Fsveltekit-houdini.png&w=1080&q=100)
Getting started with SvelteKit, Houdini and Grafbase
![Jamie Barton](/_next/image?url=%2Fimages%2Favatars%2Fjamie.png&w=48&q=75)
![Use Pipedream to add data from Google Sheets to Grafbase](/_next/image?url=%2Fimages%2Fog%2Fpipedream.png&w=1080&q=100)
Use Pipedream to add data from Google Sheets to Grafbase
![Heather Thacker](/_next/image?url=%2Fimages%2Favatars%2Fheather.png&w=48&q=75)
![Working with Swift, GraphQL, and Grafbase](/_next/image?url=%2Fimages%2Fog%2Fswift.png&w=1080&q=100)
Working with Swift, GraphQL, and Grafbase
![Jamie Barton](/_next/image?url=%2Fimages%2Favatars%2Fjamie.png&w=48&q=75)
![How to use NextAuth.js JWT auth with Apollo Client](/_next/image?url=%2Fimages%2Fog%2Fnextauth-apollo.png&w=1080&q=100)
How to use NextAuth.js JWT auth with Apollo Client
![Jamie Barton](/_next/image?url=%2Fimages%2Favatars%2Fjamie.png&w=48&q=75)
![How to use NextAuth.js as your JWT provider with Grafbase](/_next/image?url=%2Fimages%2Fog%2Fnextauth-graphql.png&w=1080&q=100)
How to use NextAuth.js as your JWT provider with Grafbase
![Jamie Barton](/_next/image?url=%2Fimages%2Favatars%2Fjamie.png&w=48&q=75)
![Add reactions to your SvelteKit pages with GraphQL and Form Actions](/_next/image?url=%2Fimages%2Fog%2Fsvelte.png&w=1080&q=100)
Add reactions to your SvelteKit pages with GraphQL and Form Actions
![Jamie Barton](/_next/image?url=%2Fimages%2Favatars%2Fjamie.png&w=48&q=75)
![Working with URQL, React and GraphQL Live Queries](/_next/image?url=%2Fimages%2Fog%2Furql.png&w=1080&q=100)
Working with URQL, React and GraphQL Live Queries
![Jamie Barton](/_next/image?url=%2Fimages%2Favatars%2Fjamie.png&w=48&q=75)
![Working with Apollo Client and GraphQL Live Queries](/_next/image?url=%2Fimages%2Fog%2Fapollo-client.png&w=1080&q=100)
Working with Apollo Client and GraphQL Live Queries
![Jamie Barton](/_next/image?url=%2Fimages%2Favatars%2Fjamie.png&w=48&q=75)
![Build your own low-code GraphQL Admin UI with Retool](/_next/image?url=%2Fimages%2Fog%2Fretool.png&w=1080&q=100)
Build your own low-code GraphQL Admin UI with Retool
![Jamie Barton](/_next/image?url=%2Fimages%2Favatars%2Fjamie.png&w=48&q=75)
![Working with Eleventy and GraphQL](/_next/image?url=%2Fimages%2Fog%2Feleventy.png&w=1080&q=100)
Working with Eleventy and GraphQL
![Jamie Barton](/_next/image?url=%2Fimages%2Favatars%2Fjamie.png&w=48&q=75)
![Using Fetch as your GraphQL client](/_next/image?url=%2Fimages%2Fog%2Fgraphql.png&w=1080&q=100)
Using Fetch as your GraphQL client
![Jamie Barton](/_next/image?url=%2Fimages%2Favatars%2Fjamie.png&w=48&q=75)
![Build Fresh backends with GraphQL](/_next/image?url=%2Fimages%2Fog%2Ffresh-graphql.png&w=1080&q=100)
Build Fresh backends with GraphQL
![Jamie Barton](/_next/image?url=%2Fimages%2Favatars%2Fjamie.png&w=48&q=75)
![Working with TypeScript, React and Apollo Client](/_next/image?url=%2Fimages%2Fog%2Fapollo-client.png&w=1080&q=100)
Working with TypeScript, React and Apollo Client
![Jamie Barton](/_next/image?url=%2Fimages%2Favatars%2Fjamie.png&w=48&q=75)
![Username and Password authentication with NextAuth.js](/_next/image?url=%2Fimages%2Fog%2Fnextauth.png&w=1080&q=100)
Username and Password authentication with NextAuth.js
![Jamie Barton](/_next/image?url=%2Fimages%2Favatars%2Fjamie.png&w=48&q=75)
![Working with GraphQL and Next.js 13 React Server Components](/_next/image?url=%2Fimages%2Fog%2Fnextjs.png&w=1080&q=100)
Working with GraphQL and Next.js 13 React Server Components
![Jamie Barton](/_next/image?url=%2Fimages%2Favatars%2Fjamie.png&w=48&q=75)
![Working with Apollo Client and Clerk session tokens](/_next/image?url=%2Fimages%2Fog%2Fapollo-clerk.png&w=1080&q=100)
Working with Apollo Client and Clerk session tokens
![Jamie Barton](/_next/image?url=%2Fimages%2Favatars%2Fjamie.png&w=48&q=75)
![Working with Next.js Edge API Routes and GraphQL](/_next/image?url=%2Fimages%2Fog%2Fnextjs.png&w=1080&q=100)
Working with Next.js Edge API Routes and GraphQL
![Jamie Barton](/_next/image?url=%2Fimages%2Favatars%2Fjamie.png&w=48&q=75)
![Generate TypeScript types for your GraphQL operations](/_next/image?url=%2Fimages%2Fog%2Fgraphql-code-generator.png&w=1080&q=100)
Generate TypeScript types for your GraphQL operations
![Jamie Barton](/_next/image?url=%2Fimages%2Favatars%2Fjamie.png&w=48&q=75)
![Generate TypeScript types for your Grafbase schema](/_next/image?url=%2Fimages%2Fog%2Fgraphql-code-generator.png&w=1080&q=100)
Generate TypeScript types for your Grafbase schema
![Jamie Barton](/_next/image?url=%2Fimages%2Favatars%2Fjamie.png&w=48&q=75)
![Using Clerk as your Identity Provider with Grafbase](/_next/image?url=%2Fimages%2Fog%2Fclerk.png&w=1080&q=100)
Using Clerk as your Identity Provider with Grafbase
![Jamie Barton](/_next/image?url=%2Fimages%2Favatars%2Fjamie.png&w=48&q=75)
![How to use Grafbase as your backend with Next.js](/_next/image?url=%2Fimages%2Fog%2Fnextjs.png&w=1080&q=100)
How to use Grafbase as your backend with Next.js
![Jamie Barton](/_next/image?url=%2Fimages%2Favatars%2Fjamie.png&w=48&q=75)