Apollo Docs

Start here to learn how to use the Apollo platform.

Apollo is a team and community that maintain a set of decoupled components and standards that enable developers to get the most out of GraphQL. We think GraphQL is going to be a big part of the future of application development, and want to move toward that future as quickly as possible.

The tools, products, and libraries in Apollo can be loosely 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 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! There are some great tutorials around the internet that will take you through things step by step.

Full Stack React and GraphQL Tutorial

In this tutorial, Jonas Helfer and friends take you through several small steps to build 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 that will enable you 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 that goes through a lot of steps to build a fully-featured chat app with realtime data.

Client

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

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. eslint-plugin-graphql on GitHub
  • Apollo Codegen: You can use this tool to generate static types for your queries, for TypeScript, Flow, Java, Scala, or Swift. apollo-codegen on GitHub
  • 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

Engine

Apollo Engine is turnkey infrastructure that helps you take GraphQL services into production with confidence. The successor to Apollo Optics, 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.

Server

You need a GraphQL server to be able to access your data via GraphQL. While we have some server libraries and tools for JavaScript, you can also write a GraphQL server in any other 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

Specifications

The GraphQL specification is the only thing you need to use all of the Apollo tools. Thankfully, the core spec has extension points so you can add useful new 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