One of the strengths of GraphQL is enforcing data types on runtime. Further, TypeScript and GraphQL Code Generator (graphql-codegen) make it safer by typing data statically, so you can write truly type-protected code with rich IDE assists.
This template gives you the best start to use GraphQL with fully typed queries (client-side) and resolvers (server-side), all this with minimum bundle size 📦
import { useQuery } from '@apollo/client'
import { ViewerDocument } from 'lib/graphql-operations'
const News = () => {
// Typed already️⚡️
const {
data: { viewer },
} = useQuery(ViewerDocument)
return <div>{viewer.name}</div>
}
Deploy the example using Vercel or preview live with StackBlitz
Execute create-next-app
with npm, Yarn, or pnpm to bootstrap the example:
npx create-next-app --example with-typescript-graphql with-typescript-graphql-app
yarn create next-app --example with-typescript-graphql with-typescript-graphql-app
pnpm create next-app --example with-typescript-graphql with-typescript-graphql-app
Deploy it to the cloud with Vercel (Documentation).