Write queries, not code
Apollo Client also has view layer integrations for all the popular frontend frameworks. For the best experience, make sure to use the view integration layer for your frontend framework of choice.
- Universally compatible, so that Apollo works with any build setup, any GraphQL server, and any GraphQL schema.
- Simple to get started with, so you can start loading data right away and learn about advanced features later.
- Inspectable and understandable, so that you can have great developer tools to understand exactly what is happening in your app.
- Built for interactive apps, so your users can make changes and see them reflected in the UI immediately.
- Small and flexible, so you don’t get stuff you don’t need. The core is under 12kb compressed.
- Community driven, because Apollo is driven by the community and serves a variety of use cases. Everything is planned and developed in the open.
These docs will help you to go from getting started with Apollo to becoming an expert!
The docs for Apollo Client are mainly written using the React integration, but most of the examples work no matter where you use Apollo. The docs are broken into four distinct sections to make it easy to find your way around:
- Basics, which outline the why and how of using Apollo Client to build your application.
- Features, which showcase some of the advanced capabilities of Apollo Client that your app may need.
- Recipes, to isolate and explain how to do common patterns.
- Reference, to act as an entry point to find API details for the client.
We want you to love working with Apollo Client, so we work extra hard to make sure it works with the client or server tools you’re already using! The maintainers and contributors focus on solving the hard problems around GraphQL caching, request management, and UI updating, and we want that to be available to anyone regardless of their technical requirements and preferences for other parts of the app.
The React toolbox
Apollo is lovingly designed to work nicely with all of the tools used by today’s React developers. Here are some in particular:
- React Native and Expo: Apollo works out of the box in React Native. It’s even preinstalled in Expo Snack, so you can build a React Native + Apollo app right in your browser.
- React Router: Apollo Client is completely router-independent, which means you can use it with any version of React Router or any other routing library for React. It’s even easy to set up server-side rendering.
- Recompose: With Recompose, React-Apollo’s Higher Order Component can be combined with a variety of other utilities to add behaviors to your components. Read how to use it for loading state and variables and also mutations and to combine with the Redux container.
- Next.js: You can use Apollo with the lightweight Next.js framework for universal rendered React apps. Just check out this article for the details, or download the official example.
If you have a favorite React tool, and something in Apollo makes it difficult to integrate, please open an issue and let’s work together to make it work nicely and add it to the list!
We believe that using GraphQL should be easy and fun. One of the ways Apollo is designed for this is that if you can write you query in GraphiQL, it’ll work with Apollo Client! Because it doesn’t assume anything beyond the official GraphQL specification, Apollo works with every GraphQL server implementation, for every language. It doesn’t impose any requirements on your schema either! If you can send a query to a standard GraphQL server, Apollo can handle it. You can find a list of GraphQL server implementations on graphql.org.
This documentation site is written with examples using React, but Apollo has an implementation for every client platform: