Why GraphQL?
  • Introduction
  • Links to Completed Code
  • Join Our Community!
A REST-ful Routing Primer
  • Review of REST-ful Routing
  • Shortcomings of RESTful Routing
On To GraphQL
  • What is GraphQL?
  • Working with GraphQL
  • Registering GraphQL with Express
  • GraphQL Schemas
  • Writing a GraphQL Schema
  • Root Queries
  • Resolving with Data
  • The GraphiQL Tool
  • A Realistic Data Source
  • Async Resolve Functions
  • Nodemon Hookup
  • Company Definitions
Fetching Data with Queries
  • Nested Queries
  • More on Nested Queries
  • A Quick Breather
  • Multiple RootQuery Entry Points
  • Bidirectional Relations
  • More on Bidirectional Relations
  • Resolving Circular References
  • Query Fragments
  • Introduction to Mutations
  • NonNull Fields and Mutations
  • Do It Yourself - Delete Mutation!
  • Do It Yourself - Edit Mutation!
The GraphQL Ecosystem
  • GraphQL Clients - Apollo vs Relay
  • Sidenote - Apollo Server vs GraphQL Server
Clientside GraphQL
  • The Next App
  • Starter Pack Walkthrough
  • MongoDB Atlas Setup and Configuration
  • MongoLab Setup
  • Working Through the Schema
  • Apollo Client Setup
  • React Component Design
  • GQL Queries in React
  • Bonding Queries with Components
Gotchas with Queries in React
  • Handling Pending Queries
  • Fixing Key Warnings
  • Architecture Review
  • Adding React Router
  • Creating a Song
Frontend Mutations
  • Mutations in React
  • Query Params
  • Defining Query Variables in React
  • Navigating on Successful Mutation
  • Troubleshooting List Fetching
  • Refetching Queries
  • Deletion by Mutation
  • Associating Mutations with a Component
  • Invoking Delete Mutations
Automatic Data Caching
  • Refetching a Query
  • A Quick CSS Breather
  • Showing a Particular Song
  • Fetching Individual Records
React Router + GraphQL
  • Integrating React Router with GraphQL
  • Watching for Data
  • Navigating Between Screens
  • Lyric Creation Form
  • The CreateLyric Mutation
  • Submitting Mutations
  • Showing a List of Lyrics
  • Enhancing Queries
  • Identifying Records
  • Caching with DataIdFromObject
  • Thumbs Up Icon
More on Client Side Mutations
  • The Like Mutation
  • Showing Likes with Lyrics
  • Fetching Likes
  • Optimistic UI Updates
  • Handling Optimistic Responses
  • A Quick Bugfix
  • Application Wrapup
Building From (Mostly) Scratch
  • App Overview
  • App Challenges
  • Boilerplate Setup
  • Authentication Approach
  • MLab Setup
  • The User Type
  • The Signup Mutation
  • Delegating to the Auth Service
  • Testing Signup
  • The Logout Mutation
  • The Login Mutation
  • Checking Authentication Status