Apollo Docs

Start here to learn how to use the Apollo platform.

Apollo is a team and community that maintains a set of decoupled components and standards to help developers get the most out of GraphQL. GraphQL is the future of application development, and we’re here to help everyone move towards that future.

The tools, products, and libraries in Apollo can be grouped into 3 categories:

  1. Client: This is a set of tools to help you consume GraphQL data in your UI, on any platform including React, Vue, Angular, iOS, and Android.
  2. Engine: This is GraphQL infrastructure you can run over your server to get features like performance tracing, caching, and error tracking specifically for GraphQL.
  3. Server: These are tools you can use to add GraphQL incrementally to your backend, or start a new GraphQL backend from scratch.

Getting started

Getting started with Apollo is easy! You can follow these tutorials for step by step instructions.

Full Stack React and GraphQL Tutorial

Jonas Helfer and friends take you through building a simple GraphQL server and React app with Apollo.

How to GraphQL

Nikolas Burk from Graphcool and Maira Bello from VTEX have put together two tutorials to build a simple Hacker News clone using JavaScript. Check out the rest of the site for other non-JavaScript technologies!

  1. Client part with React
  2. Server part with Node

WhatsApp clone

Simon Tucker wrote a great tutorial on the React Native Training blog showing you how to build a fully-featured chat app with realtime data.


Apollo Client is the most popular solution for binding GraphQL data to your UI, on every platform. Learn more about its benefits and features.

GraphQL client libraries

The main parts of the project are the GraphQL client libraries for every frontend platform:

If you don’t see your platform here, send a PR to add it, or work on a library of your own!

Developer tooling

In addition to libraries you put in your client, there are some great tools you can use to integrate with your development environment and editor:

  • GraphQL ESLint Plugin: This is a plugin you can add to ESLint to validate your GraphQL queries and see errors show up right inside your editor.
  • Apollo Codegen: You can use this tool to generate static types for your queries, for TypeScript, Flow, Java, Scala, or Swift.
  • Apollo Client Devtools: This is a Chrome dev tools panel you can use to run GraphQL queries against your server, see what queries and mutations are active in your page, and inspect the current state of the store. Chrome Web Store, GitHub


Apollo Engine is turnkey infrastructure you can use to take GraphQL services into production with confidence.

Engine sits between your clients and your GraphQL server, delivering essential capabilities like query caching, error tracking, and execution tracing on top of any spec-compliant GraphQL server including Apollo Server, GraphQL-Ruby, Sangria, and Absinthe.


You need a GraphQL server to be able to access your data via GraphQL. While we have server libraries and tools for JavaScript, you can write a GraphQL server in any language.

Read more about GraphQL servers.

Apollo server libraries

The Apollo server libraries for JavaScript are designed to make it simple to add GraphQL on top of your existing backends, or build a new server from scratch. They are built around GraphQL.js, Facebook’s reference GraphQL implementation for JavaScript.

  • GraphQL Tools: This library helps you easily generate a GraphQL schema using the GraphQL schema language and resolvers. It also supports additional features like mocking, schema stitching, and more. Docs, GitHub
  • Apollo Server: This is a library for attaching a GraphQL schema to a server endpoint, which supports all major Node.js server technologies including Express, Hapi, Koa, and more. Docs, GitHub
  • GraphQL Subscriptions: Add realtime data streaming capabilities to your GraphQL server. Docs, GitHub


The GraphQL specification is the only thing you need to use all the Apollo tools. Thankfully, the core spec has extension points you can use to add functionality.

  • Apollo Tracing: A spec for adding performance tracing data to your GraphQL response. Docs, GitHub
  • Apollo Cache Control: A spec for adding performance tracing data to your GraphQL response. Docs, GitHub
Edit on GitHub
// search box