Never miss an article about web development, JavaScript and self-growth.

Take Part

The Road to GraphQL [Book]

Today, I am super excited to announce the release of The Road to GraphQL - Your journey to master pragmatic GraphQL in JavaScript with React.js and Node.js. Writing this book proved to be a challenge with GraphQL technologies changing often, but I managed to get an updated version published in time to keep you ahead of the curve.

Perhaps the best thing about the book is that I release it for free. I think everyone should have the chance to learn about GraphQL, as it will change how we think about client-server communication and data management in applications, so grab your copy of it as long as it is available for free. The second best thing about the book is that I self-published it, which means it will be updated as often as possible, and that I can keep the PDF, EPUB, or MOBI versions in a state of constant improvement.

The Road to GraphQL

Your journey to master GraphQL in JavaScript the pragmatic way with React, Node and Apollo by building real world applications.

I wrote the The Road to GraphQL over the last year, while building several GraphQL applications for my clients and for myself. During this time, I came to understand the practical genius of GraphQL, and how it dramatically improves communication in client-server architectures. Not only does it improve the interface between the client and the server, it also enhances client-side state management by eliminating remote data management. Sophisticated GraphQL libraries like Apollo Client provide powerful features like caching, optimistic UI, and data prefetching for free. This book covers the fundamentals of GraphQL itself, as well as its ecosystem.

What's in the book?

The book comes with 350 pages, 45+ exercises, 400+ code snippets, 4 applications you are going to build along the way and various source code applications if you decide to buy the complete course. I applied the same principles as for my other books:

Stay pragmatic

Keep it simple

Answer the why, not just the how

Experience a problem, solve a problem

This book is not intended to be an end-all reference for GraphQL APIs, nor an in-depth guide about the internals of the GraphQL specification. Instead, its purpose is to journey through learning GraphQL with JavaScript the pragmatic way, building client and server applications yourself. The book covers lots of facets about GraphQL in JavaScript that are important for building modern applications, without just throwing the libraries like Apollo at problems before experiencing them. It starts with the basic HTTP requests to perform GraphQL queries first, then moves on to using dedicated GraphQL libraries for it. You will even get the chance to implement your own GraphQL client library, so you understand how these libraries work under the hood. There are no hidden abstractions in this book, just plenty of fundamentals for JavaScript, React.js, Node.js, and GraphQL.

Client-side GraphQL with React

The first part teaches how to build a GraphQL client application in React. Understanding React is a requirement before this book, so I recommend you take a look at my other free book called “The Road to learn React” if you need a good course. At some point, you will see the tedium in performing every GraphQL operation with basic HTTP requests. That’s when we’ll swap basic HTTP implementation for Apollo Client. While building your application with Apollo Client, you will learn more advanced features like caching, optimistic UI, and pagination with Apollo in React. In the end, you will have created a functional GraphQL client application.

Server-side GraphQL with Node

The second larger block of the book continues with implementing your own GraphQL server application with Express.js and Apollo Server in Node.js. There you will not only learn about all the GraphQL server-side topics, but also how they can be applied in context in a real world server application which offers pagination, authentication, role- and permission-based authorization, batching, caching, subscriptions, and a SQL database. The GraphQL server topics are not only about GraphQL, but also about using GraphQL in context of other JavaScript technologies to build powerful real world applications with it. In the end, you will have a running GraphQL server project which has all the mentioned features and can be used to realize your own ideas on top of it.

I look forward to extending this book with more technologies and features from the GraphQL specification. I hope “The Road to GraphQL” captures my enthusiasm for the topic, and that it becomes a valuable resource among other courses, tutorials, and books on pragmatic GraphQL programming. As always, feedback through any of the available platforms is welcome and encouraged!