Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/mikeroyal/graphql-guide

GraphQL Guide
https://github.com/mikeroyal/graphql-guide

graphql graphql-api graphql-client graphql-server

Last synced: 27 days ago
JSON representation

GraphQL Guide

Awesome Lists containing this project

README

        





GraphQL Guide

#### A guide covering GraphQL including the APIs, Libraries and Tools that will make you a better and more efficient GraphQL developer.

**Note: You can easily convert this markdown file to a PDF in [VSCode](https://code.visualstudio.com/) using this handy extension [Markdown PDF](https://marketplace.visualstudio.com/items?itemName=yzane.markdown-pdf).**





## GraphQL Learning Resources

[GraphQL](https://graphql.org/) is a query language for APIs and a runtime for fulfilling those queries with your existing data. GraphQL provides a complete and understandable description of the data in your API, gives clients the power to ask for exactly what they need and nothing more, makes it easier to evolve APIs over time, and enables powerful developer tools.

[Learning GraphQL](https://graphql.org/learn/)

[GraphQL Community](https://graphql.org/community/)

[GraphQL Landscape](https://landscape.graphql.org)

[GraphQL Foundation](https://graphql.org/foundation/)

[GitHub GraphQL API ](https://docs.github.com/en/graphql)

[GraphQL Supported Programming Languages](https://graphql.org/code/#language-support)

[GraphQL Code Tools](https://graphql.org/code/#generic-tools)

[GraphQL Services](https://graphql.org/code/#services)

[Top GraphQL Courses on Udemy](https://www.udemy.com/topic/graphql/)

[Learning GraphQL Online Classes on LinkedIn Learning](https://www.linkedin.com/learning/learning-graphql)

[GraphQL Tutorials on Dgraph](https://dgraph.io/learn/)

[GraphQL Training Courses on NobleProg](https://www.nobleprog.com/graphql-training)

[GraphQL: The Big Picture Course on Pluralsight](https://www.pluralsight.com/courses/graphql-big-picture)

[Building Scalable APIs with GraphQL on Pluralsight](https://www.pluralsight.com/courses/graphql-scalable-apis)

[Consuming a GraphQL API with Apollo Client and React on Pluralsight](https://www.pluralsight.com/courses/consuming-graphql-api-with-apollo-client-react)

[Exploring GraphQL: A Query Language for APIs on edX](https://www.edx.org/course/exploring-graphql-a-query-language-for-apis)

## GraphQL Tool, Libraries, and Frameworks

[GraphQL CLI](https://github.com/Urigo/graphql-cli) is a command line tool for common GraphQL development workflows.

[GraphQL Tools](https://github.com/ardatan/graphql-tools) is a set of utils for faster development of GraphQL tools (Schema and documents loading, Schema merging and more).

[GraphQL Inspector](https://github.com/kamilkisiela/graphql-inspector) is a tool that compares schemas, validate documents, find breaking changes, find similar types, schema coverage, and more.

[GraphQL Mesh](https://github.com/Urigo/graphql-mesh) is a tool that allows you to use GraphQL query language to access data in remote APIs that don't run GraphQL (and also ones that do run GraphQL). It can be used as a gateway to other services, or run as a local GraphQL schema that aggregates data from remote APIs.

[GraphQL Scalars](https://github.com/Urigo/graphql-scalars) is a library of custom GraphQL scalar types for creating precise, type-safe GraphQL schemas.

[GraphQL Modules](https://github.com/Urigo/graphql-modules) is a lets you separate your backend implementation to small, reusable, easy-to-implement and easy-to-test pieces.

[GraphQL Config](https://github.com/kamilkisiela/graphql-config) is a tool that deos one configuration for all your GraphQL tools (supported by most tools, editors & IDEs).

[GraphQLShield](https://github.com/maticzav/graphql-shield) is a tool that helps you create a permission layer for your application. Using an intuitive rule-API, you'll gain the power of the shield engine on every request and reduce the load time of every request with smart caching. This way you can make sure your application will remain quick, and no internal data will be exposed.

[GraphQL Request](https://github.com/prisma-labs/graphql-request) is a simple and flexible JavaScript GraphQL client that works in all JavaScript environments (the browser, Node.js, and React Native) - basically a lightweight wrapper around fetch.

[Gatsby](https://www.gatsbyjs.com/) is a free and open source framework based on React that helps developers build blazing fast websites and apps.

[Dgraph](https://dgraph.io/) is a native GraphQL graph database that is built to be distributed. This makes it highly scalable, performant, and blazingly fast - even for complex queries over terabytes of data.

[GraphQL.js](https://www.npmjs.com/package/graphql) is a general-purpose library and can be used both in a Node server and in the browser. As an example, the GraphiQL tool is built with GraphQL.js. So building a project using GraphQL.js with webpack or rollup should just work and only include the portions of the library you use.

[urql](https://github.com/FormidableLabs/urql) is a GraphQL client that exposes a set of helpers for several frameworks. It's built to be highly customisable and versatile so you can take it from getting started with your first GraphQL project all the way to building complex apps and experimenting with GraphQL clients.

[React Starter Kit](https://www.reactstarterkit.com/) is an isomorphic web app boilerplate for web development built on top of [Node.js](https://nodejs.org/), [Express](http://expressjs.com/), [GraphQL](http://graphql.org/) and [React](https://facebook.github.io/react/), containing modern web development tools such as [Webpack](https://webpack.github.io/), [Babel](https://babeljs.io/) and [Browsersync](https://www.browsersync.io/). Helping you to stay productive following the best practices.

[React Hook Form](https://react-hook-form.com/) is a performant, flexible and extensible forms with easy to use validation(Web + React Native).

[Apollo Client](https://apollographql.com/client) is a fully-featured caching GraphQL client with integrations for React, Angular, and more. It allows you to easily build UI components that fetch data via GraphQL.

[Relay](https://github.com/facebook/relay) is Facebook's framework for building React applications that talk to a GraphQL backend.

[Strapi](https://github.com/strapi/strapi) is an open source Node.js Headless CMS to easily build customisable APIs.

[Prettier](https://github.com/prettier/prettier) is an opinionated code formatter. It enforces a consistent style by parsing your code and re-printing it with its own rules that take the maximum line length into account, wrapping code when necessary.

[Hasura GraphQL Engine](https://github.com/hasura/graphql-engine) is a blazing-fast GraphQL server that gives you instant, realtime GraphQL APIs over Postgres, with [webhook triggers](https://github.com/hasura/graphql-engine/blob/master/event-triggers.md) on database events, and [remote schemas](https://github.com/hasura/graphql-engine/blob/master/remote-schemas.md) for business logic.

[Nest](https://nestjs.com/) is a framework for building efficient, scalable [Node.js](http://nodejs.org/) server-side applications. It uses modern JavaScript, is built with TypeScript (preserves compatibility with pure JavaScript) and combines elements of OOP (Object Oriented Programming), FP (Functional Programming), and FRP (Functional Reactive Programming).

[PostGraphile](https://github.com/graphile/postgraphile) is a tool that builds a powerful, extensible and performant GraphQL API from a PostgreSQL schema in seconds; saving you weeks if not months of development time.

[Meteor](https://www.meteor.com/) is an ultra-simple environment for building modern web applications with JavavScript.

[mysqljs](https://github.com/mysqljs/mysql) is a pure node.js JavaScript Client implementing the MySQL protocol.

[axios](https://github.com/axios/axios) is a promise based HTTP client for the browser and node.js.

[Lokka](https://github.com/kadirahq/lokka) simple JavaScript GraphQL client that works in all JavaScript environments (the browser, Node.js, and React Native).

[Storybook](https://storybook.js.org/) is a development environment for UI components. It allows you to browse a component library, view the different states of each component, and interactively develop and test components.It works with React, Vue, Angular, Ember, and other web frameworks.

[Next.js](https://github.com/vercel/next.js) is a React Framework for production gives you the best developer experience with all the features needed for production such as hybrid static & server rendering, TypeScript support, smart bundling, route pre-fetching, and more.

[React Boilerplate](https://www.reactboilerplate.com/) is a highly scalable, offline-first foundation with the best developer experience and a focus on performance and best practices.

[TypeORM](https://github.com/typeorm/typeorm) is an ORM that can run in NodeJS, Browser, Cordova, PhoneGap, Ionic, React Native, NativeScript, Expo, and Electron platforms and can be used with TypeScript and JavaScript (ES5, ES6, ES7, ES8).

[Enzyme](https://github.com/enzymejs/enzyme) is a JavaScript Testing utility for React that makes it easier to test your React Components' output. The user can also manipulate, traverse, and in some ways simulate runtime given the output.

[RxDB](https://github.com/pubkey/rxdb) is a NoSQL-database for JavaScript Applications like Websites, hybrid Apps, Electron-Apps, Progressive Web Apps and NodeJs.

[Redux](https://github.com/reduxjs/redux) is a predictable state container for JavaScript apps.

[Inferno](https://infernojs.org/) is an insanely fast, React-like library for building high-performance user interfaces on both the client and server.

[Expo](https://github.com/expo/expo) is an open-source platform for making universal native apps with React.

[React Native Windows](https://microsoft.github.io/react-native-windows/) is a ramework for building native Windows apps with React. [React Native](https://reactnative.dev/) is a framework developed by Facebook that enables you to build world-class application experiences on native platforms using a consistent developer experience based on JavaScript and React.

[ReactiveUI](https://reactiveui.net/) is a composable, cross-platform model-view-viewmodel framework for all .NET platforms that is inspired by functional reactive programming, which is a paradigm that allows you to abstract mutable state away from your user interfaces and express the idea around a feature in one readable place and improve the testability of your application.

[Ant Design](https://ant.design/) is an enterprise-class UI design language and React UI library.

[Material-UI](https://material-ui.com/) is a collection of [React](https://reactjs.org/) components for faster and simpler web development.

[Chakra UI](https://chakra-ui.com/) is a set of accessible, reusable, and composable React components that make it super easy to create websites and apps.

## Contribute

- [x] If would you like to contribute to this guide simply make a [Pull Request](https://github.com/mikeroyal/GraphQL-Guide/pulls).

## License

Distributed under the [Creative Commons Attribution 4.0 International (CC BY 4.0) Public License](https://creativecommons.org/licenses/by/4.0/).