GraphQL is becoming the new way to use APIs in modern web and mobile apps.

However, learning new things always takes time and without getting your hands dirty it’s very hard to understand the nuances of a new technology.

So, we put together a powerful and concise course that will introduce you to GraphQL and integrating GraphQL into your frontend stack, in the shortest amount of time possible.

We will explore the fundamentals of GraphQL and the things that make GraphQL especially suitable for modern applications, like its realtime capabilities! The course is light on opinions so that once you grok the fundamentals you can go on to choose your favorite libraries, tools and tailor your workflow.

Key topics and takeways:

GraphQL vs REST

GraphQL queries, mutations, subscriptions

Generating GraphQL types using elm-graphql

Integrating GraphQL queries in your elm app

Integrating GraphQL mutations with query variables to handle form input

Setting up a GraphQL client with Apollo

Integrating subscriptions using apollo-client on the javascript and ports on the elm

Building a real-time feed with notifications using mutations and subscriptions

What will we be building?

We will be building a realtime todo app using authenticated GraphQL APIs.

Try this deployed version of the app to see what we'll be building: https://learn-hasura-todo-app.netlify.com/

Will this course teach Elm concepts as well?

No, we will be simulating a scenario where we already have a GraphQL API and the basic UI of a Elm app built. Our task in this scenario is to integrate the GraphQL APIs into our elm app to build a complete and working app.

If you're new to Elm, we recommend going through this official tutorial and then coming back here!

What do I need to take this tutorial?

You need to have elm 0.19.0, npm/yarn & node 8+ running.

How long will this tutorial take?

Less than 2 hours

Other courses

Frontend: GraphQL for: React, Vue, React Native, iOS

Backend: Building a realtime GraphQL backend with Hasura in 30 mins (ideal for frontend, backend or fullstack developers)