HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
apollographql
apollo-link-state
TypeScript2017–2018
apollographql / apollo-link-state · Archived

apollo-link-state

✨ Manage your application's state with Apollo!

3Distinct people
3Mentions
0Explicit recommenders
1.4KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

✨ Manage your application's state with Apollo!

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 3:56:07 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by week3 dated mentions

Observed mentions: 2017-11-20 16:24:44 UTC to 2018-03-13 19:45:49 UTC. Weeks start Monday, UTC.

012017-11-20 00:00:00 UTC to 2017-11-27 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsNov 202017-11-27 00:00:00 UTC to 2017-12-04 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2017-12-04 00:00:00 UTC to 2017-12-11 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2017-12-11 00:00:00 UTC to 2017-12-18 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2017-12-18 00:00:00 UTC to 2017-12-25 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2017-12-25 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2018-01-01 00:00:00 UTC to 2018-01-08 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2018-01-08 00:00:00 UTC to 2018-01-15 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2018-01-15 00:00:00 UTC to 2018-01-22 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 commentsJan 152018-01-22 00:00:00 UTC to 2018-01-29 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2018-01-29 00:00:00 UTC to 2018-02-05 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2018-02-05 00:00:00 UTC to 2018-02-12 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2018-02-12 00:00:00 UTC to 2018-02-19 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2018-02-19 00:00:00 UTC to 2018-02-26 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2018-02-26 00:00:00 UTC to 2018-03-05 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2018-03-05 00:00:00 UTC to 2018-03-12 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2018-03-12 00:00:00 UTC to 2018-03-19 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 commentsMar 12

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
Nov 202017-11-20 00:00:00 UTC2017-11-27 00:00:00 UTC101
Nov 272017-11-27 00:00:00 UTC2017-12-04 00:00:00 UTC101
Dec 42017-12-04 00:00:00 UTC2017-12-11 00:00:00 UTC000
Dec 112017-12-11 00:00:00 UTC2017-12-18 00:00:00 UTC000
Dec 182017-12-18 00:00:00 UTC2017-12-25 00:00:00 UTC000
Dec 252017-12-25 00:00:00 UTC2018-01-01 00:00:00 UTC000
Jan 12018-01-01 00:00:00 UTC2018-01-08 00:00:00 UTC000
Jan 82018-01-08 00:00:00 UTC2018-01-15 00:00:00 UTC000
Jan 152018-01-15 00:00:00 UTC2018-01-22 00:00:00 UTC000
Jan 222018-01-22 00:00:00 UTC2018-01-29 00:00:00 UTC000
Jan 292018-01-29 00:00:00 UTC2018-02-05 00:00:00 UTC000
Feb 52018-02-05 00:00:00 UTC2018-02-12 00:00:00 UTC000
Feb 122018-02-12 00:00:00 UTC2018-02-19 00:00:00 UTC000
Feb 192018-02-19 00:00:00 UTC2018-02-26 00:00:00 UTC000
Feb 262018-02-26 00:00:00 UTC2018-03-05 00:00:00 UTC000
Mar 52018-03-05 00:00:00 UTC2018-03-12 00:00:00 UTC000
Mar 122018-03-12 00:00:00 UTC2018-03-19 00:00:00 UTC101

What Hacker News says

3 sources
I started using the Apollo Universal Starter Kit.[0] They were using both Redux with Apollo GraphQL. This really bothered me because there were two stores. Apollo 2 doesn't use Redux for the cache anymore. I went ahead and first pulled out the Redux dependency using Apollo Link State.[1][2] Then I went ahead and removed the Redux-Form dependency using Formik[3] instead.[4] The project maintainers thought it was a good idea and removed Redux and Redux-Form dependencies from all the packages. If you are looking for a way to not use Redux with Apollo, it has been solved. Although Apollo Link State requires some more code, it does normalize the data which means selectors are not needed which is a nice way to think about the data. [0] https://github.com/sysgears/apollo-universal-starter-kit [1] https://github.com/apollographql/apollo-link-stat
Read the rest
In How GraphQL Replaces Redux
Check out [0] and similar projects out there. GraphQL is a query language. It doesn't have to be used for APIs - the Apollo team is using it for state management [1] and others are using it to handle all sorts of non-API data. That being said, it is a Facebook technology released in the context of APIs and it is only three years (publicly) old, so naturally, that is where you are going to see the majority of usage. [0] https://github.com/apollographql/graphql-anywhere [1] https://github.com/apollographql/apollo-link-state
In Build Better GraphQL APIs: Thinking in Graphs
I've always been a huge fan of Redux, but lately I've become even more enthusiastic about Apollo Client 2.0 and the apollo-link-state project: https://github.com/apollographql/apollo-link-state What this will let you do is basically extend your server-side GraphQL API with a set of local resolvers for queries and mutations, and let you query and mutate both your server-side and client-side state using a single consistent API (GraphQL, with client-side fields decorated with a @client directive), backed by a (mostly) automatically normalized local state cache (by default apollo-cache-inmemory, but customizable, so you can even implement a Redux based cache if you'd like more control). A lot of the complexity in Redux today stems from the need to reconcile client-side state with server-side state, usually fetched through some kind of async a
Read the rest
ctions paradigm like Thunks+Promises, Saga, Observables, etc, to be then manually merged into the local state after being transformed into a normalized form. I personally think one of the biggest problems with the design of Redux is that the architecture derives most of its benefits from having a normalized state tree, but it also makes it all too easy for developers to store non-normalized data in the state tree. Although admittedly an architecture that does enforce a normalized state tree would be an order of magnitude more difficult to learn and work with in the wild-west of RESTful APIs that used to be the de-facto norm back in the days when it was designed (and it still is, though that may be slowly changing with the rapid adoption of GraphQL), where most server-side data you receive isn't easily normalizable to begin with. A good GraphQL client like Apollo can already abstract away much of the complexity involved with async server requests through its Higher-Order Component-based API, which simply provides data to the wrapped component as props, so it doesn't need to know how to fetch that data. More importantly though, Apollo also ensures that all the server-side state it maintains in its cache is stored in a normalized manner, and GraphQL makes this fairly easy. Apollo-link-state goes a step further and allows you to use the same abstractions for managing client-only state, and store it in a normalized form alongside your server-side state, to allow for a much more consistent and comprehensive state management API. With all that said, apollo-link-state is still really young and I've only played around with it briefly in toy projects, so there's no guarantee it could scale as well to large teams as Redux has. I do still personally find it to be one of the most promising alternatives out there though. Lastly, Relay Modern also supposedly has something called Client Schema Extensions, which I assume is similar to apollo-link-state, but wasn't able to find any documentation on it outside of a brief mention in its release notes: https://facebook.github.io/relay/docs/new-in-relay-modern.ht...
In How Redux Works: A Counter-Example

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.