Caching & State Management with Apollo Client
State management is about caching the data you need to provide experiences for your users. Apollo Client is both a GraphQL client and a state management library. In this collection, you’ll learn how to use the latest version of Apollo Client as your single source of truth for state in client-side UI libraries like React.
- Frontend
“Apollo Client handles the tasks of fetching, caching, and normalizing your remote data. Understanding what it does and how it works under the hood lets you focus on what matters: creating great user experiences.

Developer Advocate
Stream | Intro to Apollo Client 3.0On this episode of Mission Briefing, Ben Newman walks Kurt Kemple through Apollo Client 3.0! Apollo Client 3.0 introduces some excited new changes like cache policies, reactive variables, and a lot more! Frontend |
Blog post | Demystifying Cache NormalizationApollo Client provides APIs for building rich client applications by normalizing, caching, and making sense of complex GraphQL data. Khalil Stemmler · Frontend |
Guide | A Quick Overview of Cache Normalization in Apollo ClientIn this two minute video Ben Newman and Kurt Kemple walk through how cache normalization works in Apollo Client Ben Newman & Kurt Kemple · Frontend |
Blog post | Previewing the Apollo Client 3 CacheApollo Client’s caching system is core to both the user experience and the developer experience it provides. As one of Apollo Client’s most powerful features, the cache has been our biggest focus area while building Apollo Client 3. This major-version release will include plenty of other new features (such as a consolidated @apollo/client package that includes both […] Hugh Willson · Announcement, Frontend |
Blog post | Dispatch This: Using Apollo Client 3 as a State Management SolutionLearn client-side state management basics and how to use Apollo Client 3 to handle your entire client-side data layer. Khalil Stemmler · Frontend, How-to |
Blog post | Local State Management with Reactive VariablesIn Apollo Client & Client-side Architecture Basics, we learned that most client-side apps work with a couple of different types of state. When we talk about local state management, we’re referring to the pattern of attaching properties and objects that only exist on the client-side. That’s shared (global) state. shared (global) state is state that we sometimes don’t want […] Khalil Stemmler · Frontend |
Guide | What are Reactive Variables in Apollo Client 3In this two minute video Ben Newman teaches us what reactive variables are in Apollo Client 3.0 Ben Newman · Frontend |
Guide | What are Type Polices in Apollo Client 3In this three minute video Ben Newman teaches us about type policies in Apollo Client 3. Ben Newman · Frontend |
Blog post | Apollo Client & Client-side Architecture BasicsArchitecture is the foundation, the skeleton, that sets your project up for success. It’s the stuff that we wish we got right from the start because making drastic architectural changes, later on, can be challenging and time-consuming. Today, we React developers have tools like Context, Hooks, Redux, and xState. We write code that deals with […] Khalil Stemmler · Frontend |
Talk | A Treatise on StateA study of the different types of state we manage, how to think about each, and how to get them playing nicely together. Jed Watson |
Related collections
GraphQL for Android
Consume your GraphQL API on Android Devices with Apollo Android. Apollo Android is a GraphQL client that generates type-safe Kotlin models from your GraphQL queries. It also handles parsing and caching so you can focus on what matters most to your users and build beautiful mobile apps.
- Frontend
- Mobile
GraphQL Tooling and Code-gen
One of the many benefits of adopting GraphQL is the ever growing eco-system of tools and services available to help you build your apps even faster. From code-gen to configuring Apollo Server, this collection has a range of tools, tips, and configuration best practices designed to boost your productivity.
- Backend
- Frontend
- How-to
- Platform
Auth
When building a GraphQL endpoint, you’ll probably have to face the question of how to control who can see and interact with the data in your API. This typically involves authentication (determining who you are) and authorization (determining if you have access). In this collection, we’ll cover strategies and best practices for both.
- Backend
- Frontend
Error Handling with Apollo
At Apollo, we’ve heard a lot of desire from GraphQL developers for more guidance on how to do error handling. Learn how to communicate errors to your client in an organized way, and open up new possibilities for tooling.
- Backend
- Frontend