GraphQL Resources to help you get started

Codever Logo

(P) Codever is an open source bookmarks and snippets manager for developers & co. See our How To guides to help you get started. Public bookmarks repos on Github ⭐🙏

I have recently started to look more thoroughly into GraphQL. I must say I felt a bit overwhelmed at the beginning with the question - “Where do I start?”, I mean take a look at the spec… or don’t! Not yet.

I had already bookmarked dozens of GraphQL resources, I had read or watched before. I sat down and analyzed them again. So, I came up with a list of GraphQL resources I found most useful to begin. Thus, you can get a good grasp of GraphQL in about two or three days.

Note: The order is also important

After you are done with the theory I suggest you get your hands dirty and checkout my second blog post on GraphQL - Complete example of a CRUD API with Express GraphQL

1. HowToGraphQL Videos

I would start with the these Youtube videos from HowToGraphQL to get a grasp what GraphQL is all about from a flight altitude.

HowToGraphQL (Fundamentals) - Introduction (1/4)

Learn what GraphQL is, how it compares to REST and about the historic context in which it was created.

HowToGraphQL (Fundamentals) - GraphQL is the better REST (2/4)

Learn about the technical differences between GraphQL and REST and how many common issues with REST APIs can be solved by using GraphQL.

HowToGraphQL (Fundamentals) - Core Concepts (3/4)

Learn about the basic GraphQL language concepts, such as Queries, Mutations, Subscriptions and the GraphQL Schema & SDL.

HowToGraphQL (Fundamentals) - Big Picture (Architecture) (4/4)

Learn about different architectural use cases of GraphQL and the major components on the backend and the frontend, like resolver functions and client libraries.

You can also find these videos in the home page from

2. README file of the spec project on Github

This README walks you through the GraphQL.js reference implementation’s type system, query execution, validation, and introspection systems. There’s more in both GraphQL.js and specification, including a description and implementation for executing queries, how to format a response, explaining how a type system maps to an underlying implementation, and how to format a GraphQL response, as well as the grammar for GraphQL.


Read all, and I mean all the articles from Introduction to Best practices.

4. Advanced stuff

Once you are through with the above resources, and you feel more comfortable with GraphQL, you can start with more advanced stuff like

4.1 Schema Design

GraphQL Schema Design: Building Evolvable Schemas

In this post, few things are explored that can help when designing our API for the future, like:

  1. Prefer Object Types over simpler structures
  2. When in Doubt, Be Specific With Naming
  3. Prefer Fields and Types Over Custom Scalars

Designing GraphQL Mutations

The main points to consider when designing your GraphQL mutations addressed in the article:

  • Naming. Name your mutations verb first. Then the object, or “noun,” if applicable. Use camelCase.
  • Specificity. Make mutations as specific as possible. Mutations should represent semantic actions that might be taken by the user whenever possible.
  • Input object. Use a single, required, unique, input object type as an argument for easier mutation execution on the client.
  • Unique payload type. Use a unique payload type for each mutation and add the mutation’s output as a field to that payload type.
  • Nesting. Use nesting to your advantage wherever it makes sense.

GraphQL Mutation Design: Anemic Mutations

In this post, few things are explored that can help when designing our API for the future, like:

  1. Prefer Object Types over simpler structures
  2. When in Doubt, Be Specific With Naming
  3. Prefer Fields and Types Over Custom Scalars

4.2 Pagination

Understanding pagination: REST, GraphQL, and Relay

where some different approaches to pagination in REST and GraphQL are covered:

  • Pagination: what is it for?
  • What are different types of pagination, and when are they useful?
  • What is it like to implement these different types?
  • How does all of this lead to Relay’s pagination spec for GraphQL?
  • Is there a single best solution? (Spoiler alert: no, as always)

Plus extra you get to understand terms like connections, edges from the relay/graphQL world

4.3 Security aspects


  • Route change
  • Introspection
  • Authentication
  • Depth / Complexity
  • Schema generation

presented very nice in GraphQL Security OWASP YVR 2020


4.4 Error handling

Handling GraphQL errors like a champ with unions and interfaces

An interesting approach to handling errors in GraphQL with the possibilities that the spec provides and still have type safety.

4.5 Caching

GraphQL & Caching: The Elephant in the Room

The author addresses the misconception that “GraphQL breaks caching” and discusses thoroughly the topic.

Bonus - GraphQL Public Bookmarks

You can follow the graphql tag on to get the latest public entries about GraphQL or search to find resources in combination with other terms (e.g. graphql and java)

I think the best way to learn something is with hands-on exercise, so in the next article we will do just that.

Subscribe to our newsletter for more code resources and news

Adrian Matei (aka adixchen)

Adrian Matei (aka adixchen)
Life force expressing itself as a coding capable human being

routerLink with query params in Angular html template

routerLink with query params in Angular html template code snippet Continue reading