Concept for an Apollo full-stack example app that demonstrates all of the important concepts
Want to see how it's going? Read the development log!
- Routes and data loading
- Server side rendering and store hydration
- Merging data from multiple backends/APIs
- Authentication and basic security
- Mutations - updating and inserting items
- Developer tool integrations, like
eslint-plugin-graphql
- One place where there is reactivity/streaming data (nice to have)
As new patterns emerge in Apollo development, we should add them to this app.
GitHunt - like product hunt for GitHub repositories.
There are three views:
- The home page feed, which is a ranked list of repositories
- A page to submit a new repository
- A repository page, with comments
Does it demonstrate all of the required features above?
- Routes and data loading? Yes, it has multiple pages which require different data.
- SSR/hydration? Yes, the front page should load fast.
- Merging data? Yes, this will merge upvote and comment data from a local database with repository information from GitHub.
- Auth and basic security? Yes, it will have GitHub login, and security so that people can only post comments when logged in, and everyone can only vote once per repo.
- Mutations: Submitting a new repo, voting, and commenting.
- Dev tools: Yes
- Reactivity: we can reactively update the vote count on the repository page via a websocket or poll.
- React
- React router
- Webpack
- Babel
- Redux
- Passport for login
The front page: