TanStack Query VS apollo-client

Compare TanStack Query vs apollo-client and see what are their differences.

TanStack Query

🤖 Powerful asynchronous state management, server-state utilities and data fetching for the web. TS/JS, React Query, Solid Query, Svelte Query and Vue Query. (by TanStack)

apollo-client

:rocket:  A fully-featured, production ready caching GraphQL client for every UI framework and GraphQL server. (by apollographql)
SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.
surveyjs.io
featured
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
TanStack Query apollo-client
56 30
39,711 19,198
0.9% 0.1%
9.8 9.8
6 days ago 8 days ago
TypeScript TypeScript
MIT License MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

TanStack Query

Posts with mentions or reviews of TanStack Query. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-04-10.
  • Best Next.js Libraries and Tools in 2024
    10 projects | dev.to | 10 Apr 2024
  • This is your sign(al) to try TanStack Query & Angular
    2 projects | dev.to | 5 Mar 2024
    To ensure that we get the best TanStack Query experience possible we are also encouraged to share feedback and participate in the discussion on GitHub, which you can check out here!
  • React Query Mutations Offline React-Native
    1 project | dev.to | 28 Feb 2024
    I trust you found this information beneficial. For further details, please refer to the conversation on this GitHub issue here
  • Nx - Highlights of 2023
    14 projects | dev.to | 28 Dec 2023
    Tanstack - Tanstack has evolved to an entire ecosystem consisting of the famous Tanstack (or React) Query, Tanstack Table, now also Tanstack Router and Tanstack Form. It started with Tanstack Query, which adopted Nx and Nx Cloud. Zack talked about this collab with Dominik, and we also had Dominik on our Nx live stream. Now, all the above-mentioned Tanstack libs have adopted Nx, and there's more coming.
  • SQLSync – Stop Building Databases
    7 projects | news.ycombinator.com | 1 Dec 2023
    "I’m building SQLSync because I want to make client-side applications easier to build without us having to reinvent the wheel each time."

    Kinda ironic no?

    Anyway, since the article is also about React, I can't recommend enough React Query [1] if you don't want to worry about caching data to reduce calls to the database and managing/refreshing stale data. It simplified so much my job.

    [1] https://tanstack.com/query

  • React Basics: Essential Knowledge for Every React Developer
    4 projects | dev.to | 12 Nov 2023
    Combine state with data fetching with react-query This should be the second choice since you have to fetch data anyway Skip this option if you are using trpc or prefer not to use react-query
  • Tanstack's React Query Kicked `onSuccess`, `onError`, and `onSettled` Out of `useQuery`: Now What?!
    1 project | dev.to | 25 Oct 2023
    onSuccess, onError and onSettled have been removed from Queries. They haven't been touched for Mutations. Please see this RFC for motivations behind this change and what to do instead.
  • TanStack Query(a.k.a. React Query) v5 announced
    3 projects | news.ycombinator.com | 19 Oct 2023
    so cacheTime was really confusing because it seemed like "this is the amount time we cache data for", but that's not what it is. So a rename had to happen. We had some discussion on the public roadmap (https://github.com/TanStack/query/discussions/4252) about what it's gonna be. I'm usually against abbreviations, simply because there's always someone who doesn't understand what it means. But all other suggestions like inactiveCacheTime also had room for interpretation. gc is an abbreviation that is known well enough (think git gc), and it's also not an option that you will customize on a daily basis (usually once, globally).
  • Explicit Design, Part 6. Cross-Cutting Concerns and Extendable Infrastructure
    7 projects | dev.to | 21 Aug 2023
    By the way, I think that useSWR and React Query take on too much. They go too deep into the multiple application layers, making themselves no longer “non-opinionated,” and in some cases, using them becomes inconvenient. There are libraries that implement the SWR standard and do not use hooks, but there are not many of them.
  • 13 Must Know Libraries for a React Developer
    12 projects | dev.to | 15 Aug 2023
    TanStack Query is an open source data fetching library in React developed by Tanner Linsley. It has more than 1.7 million weekly downloads on NPM and more than 35k stars on GitHub as of August 2023.

apollo-client

Posts with mentions or reviews of apollo-client. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-09-01.
  • Things I wish I knew before moving 50K lines of code to React Server Components
    7 projects | news.ycombinator.com | 1 Sep 2023
    Actually, it's worse than that. Next has started throwing errors if it statically detects you even _importing_ hooks inside of a React Server Component environment:

    - https://github.com/apollographql/apollo-client/issues/10974

    - https://github.com/apollographql/apollo-client/issues/11167

    To the point that Lenz Weber( a maintainer of Apollo Client, and my co-maintainer on Redux Toolkit), is considering resorting to a package that wraps and re-exports all of React's public API just to avoid that static analysis:

    - https://github.com/apollographql/apollo-client/pull/11175

  • Top React Data Fetching Libraries
    7 projects | dev.to | 31 Mar 2023
    Apollo Client (18k ⭐) -> A comprehensive state management library for JavaScript that enables you to manage both local and remote data with GraphQL. Use it to fetch, cache, and modify application data, all while automatically updating your UI.
  • Using apollo client cache for local state
    2 projects | dev.to | 17 Dec 2022
    This currently doesn't work as expected so I have logged this issue in apollo client repo.
  • React Server Components
    1 project | /r/reactjs | 26 Nov 2022
  • Sveltekit SPA Mode: Prevent serverside code
    5 projects | /r/sveltejs | 14 Nov 2022
    I understand this has something to do with the fact, that SvelteKit expects the client and server code to be completely identical - this has already prompted changes to rxjs and apollo is still pending to be fixed. I understand the reason behind being able to run rxjs and apollo on the server but
  • Handling Apollo Errors in React
    3 projects | dev.to | 13 Nov 2022
    There is a long-standing issue with error caching (its absence, that is), which leads to errors being rendered as a loading state on the server side. Therefore, if you're doing SSR, you might want to design your schema in such a way that there are no intentional errors in queries whatsoever. To do so, we can use null values instead of NOT_FOUND errors (see how we essentially treated errors as data here?). Note how nothing stops us from setting the response code to 404 in case of a null value, should we want so.
  • Next.js 13: Layouts, React Server Components (async/await), Streaming
    4 projects | /r/nextjs | 25 Oct 2022
    Lol apollo client too.. saw this issue opened like, immediately after the release https://github.com/apollographql/apollo-client/issues/10231
  • Paginating an already fetched set of data - Apollo Client/Server
    1 project | /r/graphql | 28 Sep 2022
    There were some caching issues, outlined here https://github.com/apollographql/apollo-client/issues/6916 to be aware of
  • The Case for C# and .NET
    18 projects | news.ycombinator.com | 24 Jul 2022
    If you look at how major backend projects structure their code, it's almost always object-oriented TypeScript.

    I submit for the record:

    - Apollo Client: https://github.com/apollographql/apollo-client/blob/main/src...

    - Storybook: https://github.com/storybookjs/storybook/blob/next/lib/chann...

    - Nest: https://github.com/nestjs/nest/blob/master/packages/core/nes...

    - MongoDB Driver: https://github.com/mongodb/node-mongodb-native/blob/main/src...

    - Prisma: https://github.com/prisma/prisma/blob/main/packages/engine-c...

  • A high-level overview of Concurrent React
    1 project | dev.to | 23 Jul 2022
    [※Alert: The following is a code example using the Apollo Client notation, but the Apollo Client does not support Suspense at this time. Github issue about Suspense support: https://github.com/apollographql/apollo-client/issues/9627]

What are some alternatives?

When comparing TanStack Query and apollo-client you can also consider the following projects:

zustand - 🐻 Bear necessities for state management in React

react-relay - Relay is a JavaScript framework for building data-driven React applications.

axios - Promise based HTTP client for the browser and node.js

urql - The highly customizable and versatile GraphQL client with which you add on features like normalized caching as you grow.

Recoil - Recoil is an experimental state management library for React apps. It provides several capabilities that are difficult to achieve with React alone, while being compatible with the newest features of React.

sveltekit-graphql-github - Use Apollo Client with SvelteKit to Query a GraphQL API: we use the GitHub API to query our repos and learn a bit of SvelteKit along the way.

SWR - React Hooks for Data Fetching

react-query - 🤖 Powerful asynchronous state management, server-state utilities and data fetching for TS/JS, React, Solid, Svelte and Vue. [Moved to: https://github.com/TanStack/query]

react-apollo

graphql-request - Minimal GraphQL client