v3
Quick Start
⚠️
This is the documentation for the old GraphQL Yoga version 3. We recommend upgrading to the latest GraphQL Yoga version 5.

Migrate to GraphQL Yoga v5

Quick start

GraphQL Yoga is a batteries-included cross-platform GraphQL over HTTP spec-compliant GraphQL server powered by Envelop and GraphQL Tools that runs anywhere; focused on easy setup, performance and great developer experience.

Installation

Terminal
yarn add graphql graphql-yoga

Schema

You will need to provide a schema to Yoga, there are many ways to assemble a GraphQL schema, here’s just a few:

Use the createSchema function included in Yoga. It actually reuses the makeExecutableSchema from @graphql-tools/schema.

schema.js
import { createSchema } from 'graphql-yoga'
 
export const schema = createSchema({
  typeDefs: /* GraphQL */ `
    type Query {
      hello: String
    }
  `,
  resolvers: {
    Query: {
      hello: () => 'world'
    }
  }
})

Get the best developer experience!

GraphQL Code Generator and its server preset can help you build type-safe and scalable GraphQL servers.

Check out GraphQL Code Generator, then read how to set up GraphQL server with server preset.

Server

After you have created a GraphQL schema, simply pass it in to Yoga and liftoff! 🚀

import { createServer } from 'node:http'
import { createYoga } from 'graphql-yoga'
import { schema } from './schema'
 
// Create a Yoga instance with a GraphQL schema.
const yoga = createYoga({ schema })
 
// Pass it into a server to hook into request handlers.
const server = createServer(yoga)
 
// Start the server and you're done!
server.listen(4000, () => {
  console.info('Server is running on http://localhost:4000/graphql')
})

Visit http://localhost:4000/graphql to see Yoga in action.