apollographql

apollographql/apollo-client

TypeScript MIT Web Dev

The industry-leading GraphQL client for TypeScript, JavaScript, React, Vue, Angular, and more. Apollo Client delivers powerful caching, intuitive APIs, and comprehensive developer tools to accelerate your app development.

19.8k stars
2.7k forks
active
GitHub +24 / week

19.8k

Stars

2.7k

Forks

406

Open issues

30

Contributors

AI Analysis

Apollo Client is a production-grade GraphQL client library for TypeScript and JavaScript that works across React, Vue, Angular, Svelte, and vanilla JavaScript environments. It provides intelligent caching, full type safety, and framework-agnostic data management, making it ideal for developers building modern web applications that consume GraphQL APIs. This is a general-purpose library for anyone building frontend applications with GraphQL backends, not a niche tool.

Web Dev Library Discovery value: 2/10
Documentation 9/10
Activity 10/10
Community 10/10
Code quality 8/10

Inferred from signals mentioned in the README (tests, CI, type safety) — not a review of the actual code.

Overall score 9/10

AI's overall editorial judgment — not an average of the bars above, can weigh other factors too.

graphql-client typescript state-management caching react
Actively maintained Well documented MIT licensed Popular Beginner friendly Production ready
Deep Analysis · Based on README and public signals
2d ago

Apollo Client: the reference GraphQL client for JS/TS with normalized caching and broad framework support

Apollo Client is a full-featured GraphQL client for JavaScript and TypeScript applications, providing normalized in-memory caching, query/mutation/subscription management, optimistic UI updates, and deep React integration (including React 19 Suspense and RSC). It targets front-end developers building data-driven apps against GraphQL APIs, from small startups to large enterprises. With ~20K GitHub stars, over a decade of development, and NPM downloads in the tens of millions monthly, it is the most widely adopted GraphQL client in the JavaScript ecosystem.

Origin

Created in early 2016 by Meteor Development Group (later Apollo GraphQL), it grew alongside the GraphQL ecosystem and became the de facto standard client as GraphQL adoption accelerated from 2018 onward. Major version milestones (v2, v3) progressively improved caching, TypeScript support, and bundle size.

Growth

Growth was driven primarily by GraphQL's own rise and Apollo's first-mover advantage in building a cohesive client+server+tooling ecosystem. Enterprise adoption accelerated when v3 addressed bundle size and cache reliability complaints. React's dominance in frontend, combined with Apollo's tight React hooks integration, cemented its position. Recent growth is slower but steady, reflecting a mature, saturated market rather than decline.

In production

NPM package @apollo/client consistently ranks among the most downloaded GraphQL-related packages, with evidence of tens of millions of monthly downloads. Used by companies including Airbnb, Expedia, and numerous mid-to-large enterprises running GraphQL APIs. Community forum and Discord activity is publicly visible. DevTools extensions have tens of thousands of installs. README explicitly states 'powers countless apps worldwide that serve millions of end users.'

Code analysis
Architecture

Appears to be structured around a framework-agnostic ApolloClient core with a normalized InMemoryCache, link-based middleware pipeline for request/response transformation, and framework-specific view-layer bindings (React hooks, Vue composables, Angular services). Likely uses reactive variables and observables internally for cache reactivity. TypeScript-first with generated type support via companion tooling.

Tests

Not documented in README, but CircleCI CI badge is present indicating automated build and test pipelines. Given the project's maturity and enterprise usage, comprehensive test coverage is likely but cannot be confirmed from available metadata.

Maintenance

Extremely active: last push was 2026-07-08 (same day as evaluation date), indicating daily or near-daily commits. 54 stars gained in the last 7 days is modest but consistent with a mature project. Backed by Apollo GraphQL as a commercial entity, reducing bus-factor risk. README reflects React 19 compatibility, showing the team actively tracks ecosystem changes.

Honest verdict

ADOPT IF: you are building a React (or Vue/Angular) application with a GraphQL API and need robust normalized caching, optimistic updates, real-time subscriptions, and comprehensive devtools out of the box. AVOID IF: your data requirements are simple, your bundle size budget is tight, or you are not using GraphQL — Apollo Client adds meaningful complexity and weight that lighter alternatives handle more efficiently in those cases. MONITOR IF: you are evaluating whether the ongoing shift toward RSC, server components, and edge-side data fetching may reduce the relevance of a client-side cache model over the next 1-2 years.

Independent dimensions

Mainstream potential

7/10

Technical importance

8/10

Adoption evidence

9/10

Risks
  • Bundle size remains a concern for performance-sensitive apps; while v3 improved this, Apollo Client is heavier than alternatives like urql or SWR-based stacks.
  • Normalized InMemoryCache, while powerful, has a steep learning curve and can produce subtle bugs when cache key or type policy configuration is incorrect.
  • The rise of React Server Components and server-driven data fetching patterns may erode the value proposition of a client-side GraphQL cache over time.
  • Apollo GraphQL as a company has pivoted focus toward its commercial GraphOS platform; there is a non-zero risk that open source client investment could be deprioritized if business pressures shift.
  • GraphQL adoption itself faces headwinds from REST-resurgence narratives and tRPC-style type-safe RPC, which could slow new project adoption of the underlying technology.
Prediction

Apollo Client will remain the dominant reference implementation for JavaScript GraphQL clients for at least 2-3 more years, but faces gradual erosion in new projects from lighter alternatives and server-component patterns. Likely to evolve toward tighter RSC and edge runtime integration.

0 found this helpful

Newsletter

Get analyses like this every Monday

Free weekly digest of the most interesting open-source discoveries.

Languages

TypeScript
99.5%
JavaScript
0.4%
HTML
0.1%
Shell
0%

Information

Language
TypeScript
License
MIT
Last updated
1d ago
Created
126mo ago
Analyzed with
anthropic/claude-haiku-4-5

Stars over time

Loading…

Contributors over time

Top 100 contributors only — repos with more will plateau at 100.

Loading…

Similar repos

apollographql

apollographql/apollo-server

Apollo Server is a production-ready, spec-compliant GraphQL server for Node.js...

13.9k TypeScript Web Dev
vuejs

vuejs/apollo

Vue Apollo is the official GraphQL integration library for Vue.js, enabling Vue...

6k TypeScript Web Dev
apollographql

apollographql/apollo-ios

Apollo iOS is a strongly-typed GraphQL client for Swift that powers production...

4k Swift Mobile
apollographql

apollographql/apollo-tooling

Apollo CLI was a GraphQL tooling suite for schema validation, operation...

3k TypeScript Dev Tools
graffle-js

graffle-js/graffle

Graffle is a minimal, type-safe GraphQL client for JavaScript that emphasizes...

6.1k TypeScript Web Dev
vs. alternatives
TanStack Query (with graphql-request)

TanStack Query offers more generic async state management with lighter bundle footprint; lacks Apollo's normalized cache and native subscription support. Many teams migrating away from Apollo choose this stack for its simplicity and REST/GraphQL agnosticism.

urql

urql is a leaner, more modular GraphQL client with a smaller bundle size and document-based caching by default. Appeals to teams who find Apollo's normalized cache overkill. Less ecosystem tooling and enterprise adoption than Apollo.

Relay

Meta's Relay enforces strict data colocation and compiler-driven optimizations for large-scale apps. Technically rigorous but has a steep learning curve and is primarily React-only. Apollo is more accessible and framework-flexible.

graffle-js/graffle

Graffle (6K stars) represents a newer, type-safe code-generation-first approach. Still maturing; adoption is not yet verified at scale. Targets developers wanting tighter TypeScript integration without a runtime cache overhead.

SWR / React Query with fetch

Some teams bypass dedicated GraphQL clients entirely, using generic data-fetching hooks with plain fetch or graphql-request. Trades cache normalization and subscriptions for simplicity. Valid for small apps with simple data graphs.