Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

How to GraphQL πŸŽ“

How to GraphQL is a fullstack tutorial website to learn all about GraphQL! It was built by Prisma and many amazing contributors. All content on the site is completely free and open-source.

Note: This repository is currently mostly unmaintained. We are looking for maintainers who can help cleaning up issues and PRs opened by the community. If you are interested in helping out, please reach out!


The content for all tutorials is located in the /content directory. Here is an overview of all the tutorials that are available at the moment:


  • Fundamentals of GraphQL
  • Advanced GraphQL


  • React & Apollo
  • React & Relay (Out of date)
  • Vue & Apollo (Out of date)
  • Ember & Apollo (Out of date)


  • javascript-apollo / JavaScript & Apollo
  • typescript-apollo / Typescript & Apollo
  • typescript-helix / Typescript & Helix
  • graphql-elixir / Absinthe & Elixir
  • graphql-ruby / Ruby and GraphQL Gem
  • graphql-python / Python & Graphene
  • graphql-go / Go & gqlgen
  • graphql-scala / Scala & Sangria
  • graphql-java / Java (Out of date)

Contributions / Fixes

As the whole project is open-source, you're more than welcome to fix typos and other small issues yourself and create a PR for the fix. If you want to contribute a whole tutorial track or update one of the out of date tutorials please get in touch.

Installation & Running locally

The project has some native (gyp) dependencies. To get this running, please make sure your environment it set with the following:

  1. Make sure to install a Node version manager (either fnm or nvm)
  2. Point your environment to the version specified in .nvmrc.
  3. Make sure to load .env to your environment variables (some shell loads it automatically, but if not, you can do: source .env to load it)

You can run a local instance of How to GraphQL by executing the following commands in a terminal:

git clone
cd howtographql
yarn install
yarn start # http://localhost:8000/

Note: If you're using Node 8, you might need to invoke npm install -g node-gyp before you're starting the app. More info here.


If you are having issues with sharp dependency, please make sure you have installed >0.18.2 of it. Older versions have hardcoded dependency on a legacy artifactory.

To check the version you have, run: yarn why sharp.

If you are still having issues, please make sure that you have SHARP_DIST_BASE_URL environemnt variable set correctly (see .env file) and then run yarn install again.