You've been seeing trail markers for a while now.
No matter how many alternate routes you take, or how many workarounds you finagle… you can’t avoid the terrain ahead of you. It’s time to learn GraphQL.
Why? Because REST APIs have their place in programming — but if you want to create the fastest, most flexible apps, you need a query language and runtime that supports other use cases.
REST is best… until it’s not.
If your app’s users are standard-issue impatient human beings, they don’t just expect your app to be useful. They also expect it to be FAST. Like, bear-snatching-salmon-out-of-a-river fast.
That means you can’t afford to use REST APIs that pull unnecessary data. And you definitely can’t afford to fetch the wrong data, or parse it incorrectly (hello, broken front end).
Stop me if you’ve experienced these issues with REST APIs...
You put too much data in your API response — creating a longer wait time before the app was usable
You tried sending lots of smaller requests instead — and promptly fell victim to network slowdowns (or had to wade deeper into client-side code to wrangle data)
You had to pull data from multiple endpoints — and they stopped playing nicely together
Your REST data came back in an unexpected format — which broke the front end and made your app effectively useless
And that’s just the tip of the RESTberg.
Relational data only gets more complex from here!
As the relationships between data become more complex, the design decisions you have to make ALSO get trickier.
Plus, not every user has the fully loaded Mac, the latest phone, or the fastest Internet speeds. And with REST, your app is only as good as its weakest user link.
If your application involves relational data, overfetching and underfetching problems can become MUCH more noticeable to the end user.
Not to mention that bugs love REST 🐛
Because REST isn't strongly typed, you might end up running into bugs when data shows up in an unexpected format. Might as well call it the PEST API, amirite??
Sure, you can write docs to help yourself and other devs use the REST API — but that requires you to find the time (and willpower) to actually do that.
If you really want to create the best version of your app, you need another option in your back pocket.
GraphQL gives you predictable, fast, stable results
Apart from ordering at a restaurant, wishing on a magic lamp, or extracting heartfelt apologies from a partner who’s wronged you, there aren't many times in life when you can say, “Here’s what I want” and know it’s exactly what you'll get.
GraphQL allows you to write a single query that brings you results that would take multiple requests when using REST.
You can also leverage GraphQL tooling to see exactly what data is available, and plan your queries accordingly.
You can even add new fields and types to your GraphQL API without impacting existing queries! Simply deprecate and hide fields that are no longer important. This means that you can continuously update your apps while keeping your server code clean and maintainable.
I tried learning the basics of GraphQL through online tutorials but quickly got frustrated because often, the tutorial would visit fundamental concepts too quickly and examples were too long and dry. Eve's workshop excels in providing the student with small manageable projects that hone in on fundamental ideas. Her projects are creative and fun to work on!
Satoshi Iwako, Front-End Developer, Udacity
“Sounds great, Eve, but I don’t exactly have time to teach myself GraphQL”
GraphQL sounds great in theory, right?
But if you’re reading this page, I’m guessing you don’t have hours to sift through tutorials and experiment on your own.
And like other flexible specs, GraphQL can feel a bit like a double-edged sword.
Because there are no "official" ways for doing things in GraphQL, you get to enjoy a level of flexibility that’s rare in the software world (and in its people. We’re a stiff-necked bunch).
At the same time, this flexibility means you’re never sure if you're “doing it right”.
Plus, you’ve got to…
- Learn and apply a whole new vocabulary
- Design a schema that meets the requirements of your business
- Decide how to handle auth, file uploads, pagination, and work with live data
In other words: You know the destination, but the path to get there looks pretty bumpy.
Instead of stumbling through, follow me!
I never realized that workshops are my jam until taking a GraphQL Workshop with Eve. Her experience, top knowledge, humor, and teaching styles is the complete package for learning GraphQL. With organized lessons and clear explanations, I learned so much more than I could on my own. I didn’t want to leave the workshop!
Erin Fox, Software Engineer, ConvertKit
Join me for a fun, project-based way to get your GraphQL bearings
Together, we’ll build a real-world GraphQL app from start to finish.
Over the course of six modules, you’ll design, build, iterate, and scale the fictional Camp Lambda Activity Manager app. Think of it as the CLAMStack. Minus the smell.
This real-world app keeps track of counselors, cabins, camp activities, and all of the relationships between them. So when Susie steals Logan’s lanyard, or Dakota pushes Madison into the lake, you’ll know which of their counselors to tell.
Learning is easier when you’re building something specific, but don’t worry! Everything you do and learn in this workshop will be directly applicable to the apps you work on now and in the future.
Who’s this workshop for?
This GraphQL workshop is a great fit for programmers who:
- Work on JavaScript front ends: Use GraphQL to make requests to the backend without waiting for someone else to build support
- Build backends: And want to help front end devs help themselves
- Create mobile applications: Simultaneously support multiple client versions, or diverge Android and iOS versions
- Work on embedded systems: Got Elixir applications making requests for data? GraphQL can help
- Have gotten stuck or bored with other GraphQL tutorials
With a little practice, even nonprogrammers can learn to use GraphQL to pull the data they need — without bothering the coders. Smell that? That’s the sweet perfume of fewer Slack notifications.
Learning GraphQL can seem overwhelming with the expanse of resources available on the internet but not knowing where to start. Eve’s book “Learning GraphQL” was the first time I was introduced to her teaching style. I attended her technical workshops at PayPal and loved how she explained complex topics and broke them down succinctly with relatable examples of skiing and life in Tahoe. She has an infectious energy and makes it fun to attend workshops. I highly recommend her learning materials.
Shruti Kapoor, Senior Software Engineer, PayPal