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:
- 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.
- Engine: This is GraphQL infrastructure you can run over your server to get performance tracing, caching, and error tracking specifically for GraphQL.
- Server: These are tools you can use to add GraphQL incrementally to your backend, or start a new GraphQL backend from scratch.
Getting started with Apollo is easy! There are some great tutorials around the internet that will take you through things step by step.
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
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.
GraphQL client libraries
The main parts of the project are the GraphQL client libraries for every frontend platform:
- React and React Native: Docs, GitHub
- Vue.js: Docs, GitHub
- Angular: Docs, GitHub
- Ember: Docs, GitHub
- Meteor: Docs, GitHub
- iOS for native Swift: Docs, GitHub
- Android for Java: Docs, GitHub
If you don’t see your platform here, send a PR to add it, or work on a library of your own!
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
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.
Apollo server libraries
- 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 of the Apollo tools. Thankfully, the core spec has extension points so you can add useful new functionality.