The Open Source Community Tooling Built on GraphQL

06-09-2020

I have done several dives into the world of GraphQL. As part of some API specification work I am not getting another chance to look at what the open source community around GraphQL looks like. Along with other API specifications in our modern API toolbox, I am looking at how GraphQL is being leverage, and what the motivations are behind the open source tooling that has emerged. Resulting in the following list of the cream off the top of the open source tooling build on top of GraphQL, broken down by different stops along the API lifecycle.

Formatting

  • prettier - (forks: 2366) (stars: 36727) (watchers: 36727) - prettier is an opinionated code formatter.

Server Code

  • strapi - (forks: 3163) (stars: 25979) (watchers: 25979) - ๐Ÿš€ open source node.js headless cms to easily build customisable apis
  • parse server - (forks: 4325) (stars: 17541) (watchers: 17541) - api server module for node/express
  • graphql js - (forks: 1553) (stars: 16196) (watchers: 16196) - a reference implementation of graphql for javascript
  • graphql engine - (forks: 1428) (stars: 17060) (watchers: 17060) - blazing fast, instant realtime graphql apis on postgres with fine grained access control, also trigger webhooks on database events.
  • apollo server - (forks: 1391) (stars: 9707) (watchers: 9707) - ๐ŸŒ graphql server for express, connect, hapi, koa and more
  • graphql - (forks: 557) (stars: 6454) (watchers: 6454) - an implementation of graphql for go / golang
  • api platform - (forks: 669) (stars: 5853) (watchers: 5853) - rest and graphql framework to build modern api-driven projects (server-side and client-side)
  • graphene - (forks: 612) (stars: 5758) (watchers: 5758) - graphql framework for python
  • graphql yoga - (forks: 366) (stars: 5763) (watchers: 5763) - ๐Ÿง˜ fully-featured graphql server with focus on easy setup, performance & great developer experience
  • express graphql - (forks: 483) (stars: 5319) (watchers: 5319) - create a graphql http server with express.
  • graphql ruby - (forks: 936) (stars: 4297) (watchers: 4297) - ruby implementation of graphql
  • graphql java - (forks: 781) (stars: 4267) (watchers: 4267) - graphql java implementation
  • graphql php - (forks: 404) (stars: 3692) (watchers: 3692) - a php port of graphql reference implementation
  • graphql go - (forks: 353) (stars: 3340) (watchers: 3340) - graphql server with a focus on ease of use
  • graphene django - (forks: 533) (stars: 2898) (watchers: 2898) - integrate graphql into your django project.
  • nodejs api starter - (forks: 466) (stars: 2841) (watchers: 2841) - ๐Ÿ’ฅ a graphql api boilerplate (template) made with node.js, typescript, and postgresql
  • juniper - (forks: 246) (stars: 2725) (watchers: 2725) - graphql server library for rust
  • graphpack - (forks: 71) (stars: 1945) (watchers: 1945) - โ˜„๏ธ a minimalistic zero-config graphql server.
  • lighthouse - (forks: 227) (stars: 1819) (watchers: 1819) - a framework for serving graphql from laravel
  • laravel graphql - (forks: 243) (stars: 1809) (watchers: 1809) - facebook graphql for laravel 5. it supports relay, eloquent models, validation and graphiql.
  • SwiftHub - (forks: 277) (stars: 1655) (watchers: 1655) - github ios client in rxswift and mvvm-c clean architecture

Stacks

  • react starter kit - (forks: 3975) (stars: 20147) (watchers: 20147) - react starter kit — isomorphic web app boilerplate (node.js, express, graphql, react.js, babel, postcss, webpack, browsersync)
  • gridsome - (forks: 351) (stars: 6270) (watchers: 6270) - โšก๏ธ a jamstack framework for vue.js
  • react firebase starter - (forks: 727) (stars: 4115) (watchers: 4115) - boilerplate (seed) project for creating web apps with react.js, graphql.js and relay
  • Advanced React - (forks: 1544) (stars: 2566) (watchers: 2566) - starter files and solutions for full stack advanced react and graphql
  • vue express mongo boilerp - (forks: 711) (stars: 2576) (watchers: 2576) - :star: mevn full stack js web app boilerplate with nodejs, express, mongo and vuejs
  • reactql - (forks: 166) (stars: 1733) (watchers: 1733) - universal react+graphql starter kit: react 16, apollo 2, mobx, emotion, webpack 4, graphql code generator, react router 4, postcss, ssr
  • react fullstack graphql - (forks: 309) (stars: 1242) (watchers: 1242) - starter projects for fullstack applications based on react & graphql.

Generators

  • graphql code generator - (forks: 470) (stars: 4861) (watchers: 4861) - graphql code generator with flexible support for custom plugins and templates
  • quicktype - (forks: 417) (stars: 4718) (watchers: 4718) - generate types and converters from json, schema, and graphql
  • type graphql - (forks: 388) (stars: 4554) (watchers: 4554) - create graphql schema and resolvers with typescript, using classes and decorators!
  • gqlgen - (forks: 453) (stars: 4516) (watchers: 4516) - go generate based graphql server library

Clients

  • postwoman - (forks: 1233) (stars: 19675) (watchers: 19675) - ๐Ÿ‘ฝ a free, fast and beautiful api request builder (web alternative to postman) https://postwoman.io
  • insomnia - (forks: 813) (stars: 13702) (watchers: 13702) - leading open source api client, and collaborative api design platform for graphql, and rest
  • react apollo - (forks: 830) (stars: 6839) (watchers: 6839) - :recycle: react integration for apollo client
  • urql - (forks: 176) (stars: 4585) (watchers: 4585) - the highly customizable and versatile graphql client.
  • graphql request - (forks: 122) (stars: 2435) (watchers: 2435) - minimal graphql client supporting node and browsers for scripts or simple apps
  • altair - (forks: 111) (stars: 2293) (watchers: 2293) - โœจโšก๏ธ a beautiful feature-rich graphql client for all platforms.
  • apollo ios - (forks: 426) (stars: 2529) (watchers: 2529) - ๐Ÿ“ฑ a strongly-typed, caching graphql client for ios, written in swift
  • apollo android - (forks: 431) (stars: 2350) (watchers: 2350) - :robot: a strongly-typed, caching graphql client for the jvm, android and kotlin native
  • graphql.js - (forks: 81) (stars: 2097) (watchers: 2097) - a simple and isomorphic graphql client for javascript
  • graphql flutter - (forks: 278) (stars: 1964) (watchers: 1964) - a graphql client for flutter, bringing all the features from a modern graphql client to one easy to use package.
  • SwiftHub - (forks: 277) (stars: 1655) (watchers: 1655) - github ios client in rxswift and mvvm-c clean architecture
  • react dashboard - (forks: 243) (stars: 1100) (watchers: 1100) - ๐Ÿ”ฅreact dashboard - isomorphic admin dashboard template (react.js, bootstrap, node.js, graphql, react router, babel, webpack, browsersync) ๐Ÿ”ฅ

Database

  • prisma1 - (forks: 958) (stars: 16992) (watchers: 16992) - ๐Ÿ’พ database tools incl. orm, migrations and admin ui (postgres, mysql & mongodb)
  • rxdb - (forks: 618) (stars: 13334) (watchers: 13334) - :computer: ๐Ÿ”„ :iphone: a realtime database for javascript applications
  • dgraph - (forks: 952) (stars: 13326) (watchers: 13326) - fast, distributed graph db
  • postgraphile - (forks: 439) (stars: 8981) (watchers: 8981) - execute one command (or mount one node.js middleware) and get an instant high-performance graphql api for your postgresql database!
  • edgedb - (forks: 98) (stars: 3925) (watchers: 3925) - the next generation relational database.
  • join monster - (forks: 173) (stars: 2071) (watchers: 2071) - a graphql to sql query execution layer for query planning and batch data fetching.
  • graphql sequelize - (forks: 165) (stars: 1728) (watchers: 1728) - graphql & relay for mysql & postgres via sequelize
  • react fullstack graphql - (forks: 309) (stars: 1242) (watchers: 1242) - starter projects for fullstack applications based on react & graphql.
  • skor - (forks: 40) (stars: 1220) (watchers: 1220) - now part of hasura graphql engine. listen to postgres events and forward them as json payloads to a webhook
  • automatic api - (forks: 57) (stars: 1350) (watchers: 1350) - a list of software that turns your database into a rest/graphql api

User Interface

  • apollo client - (forks: 1703) (stars: 14000) (watchers: 14000) - :rocket: a fully-featured, production ready caching graphql client for every ui framework and graphql server
  • react admin - (forks: 2818) (stars: 13019) (watchers: 13019) - a frontend framework for building b2b applications running in the browser on top of rest/graphql apis, using es6, react and material design

Specification

  • graphql spec - (forks: 930) (stars: 12723) (watchers: 12723) - graphql is a query language and execution engine tied to any backend service.

Commerce

  • spree - (forks: 4458) (stars: 10383) (watchers: 10383) - spree is an open source e-commerce platform for rails 6 with a modern ux, optional pwa frontend, rest api, graphql, several official extensions and 3rd party integrations. over 1 million downloads and counting! check it out:
  • reaction - (forks: 1882) (stars: 10196) (watchers: 10196) - reaction is an api-first, headless commerce platform built using node.js, react, graphql. deployed via docker and kubernetes.
  • saleor - (forks: 2914) (stars: 7966) (watchers: 7966) - a modular, high performance, headless e-commerce storefront built with python, graphql, django, and reactjs.

Caching

  • dataloader - (forks: 401) (stars: 9275) (watchers: 9275) - dataloader is a generic utility to be used as part of your application's data fetching layer to provide a consistent api over various backends and reduce requests to those backends via batching and caching.
  • react query - (forks: 273) (stars: 7673) (watchers: 7673) - โš›๏ธ hooks for fetching, caching and updating asynchronous data in react

Communities

  • spectrum - (forks: 903) (stars: 8817) (watchers: 8817) - simple, powerful online communities.

CMS

  • relax - (forks: 656) (stars: 8286) (watchers: 8286) - new generation cms on top of react, redux and graphql
  • tipe - (forks: 172) (stars: 2049) (watchers: 2049) - ๐ŸŽ‰ next generation api-first cms for developers. generate an api-first cms from a graphql schema with offline prototyping and an inline editor
  • prime - (forks: 89) (stars: 1438) (watchers: 1438) - โœจopen source graphql cms

Serverless

  • up - (forks: 316) (stars: 7774) (watchers: 7774) - deploy infinitely scalable serverless apps, apis, and sites in seconds to aws.
  • webiny js - (forks: 205) (stars: 2601) (watchers: 2601) - platform for building serverless applications and api (node.js, react, graphql)
  • serverless graphql - (forks: 345) (stars: 2444) (watchers: 2444) - serverless graphql examples for aws appsync and apollo

Education

  • howtographql - (forks: 872) (stars: 6736) (watchers: 6736) - the fullstack tutorial for graphql
  • learnapollo - (forks: 67) (stars: 5306) (watchers: 5306) - ๐Ÿ‘ฉ๐Ÿป‍๐Ÿซ learn apollo - a hands-on tutorial for apollo graphql client (created by graphcool)

GitHub

  • devhub - (forks: 432) (stars: 6771) (watchers: 6771) - tweetdeck for github - filter issues, activities & notifications - web, mobile & desktop

Sandbox

  • graphql playground - (forks: 497) (stars: 6178) (watchers: 6178) - ๐ŸŽฎ graphql ide for better development workflows (graphql subscriptions, interactive docs & collaboration)

Visualizations

  • graphql voyager - (forks: 276) (stars: 5088) (watchers: 5088) - ๐Ÿ›ฐ๏ธ represent any graphql api as an interactive graph

Editors

  • graphql editor - (forks: 191) (stars: 4552) (watchers: 4552) - ๐Ÿ“บ visual editor & graphql ide. draw graphql schemas using visual ๐Ÿ”ท nodes and explore graphql api with beautiful ui. even ๐Ÿ’ can do that!

Toolchains

  • graphql tools - (forks: 507) (stars: 3390) (watchers: 3390) - :wrench: build, mock, and stitch a graphql schema using the schema language

Converters

  • rejoiner - (forks: 122) (stars: 2982) (watchers: 2982) - generates a unified graphql schema from grpc microservices and other protobuf sources

Workflows

  • apollo tooling - (forks: 401) (stars: 2513) (watchers: 2513) - โœ๏ธ tooling for development and production apollo workflows

Permissions

  • graphql shield - (forks: 98) (stars: 2291) (watchers: 2291) - ๐Ÿ›ก a graphql tool to ease the creation of permission layer.

Mocking

  • graphql faker - (forks: 138) (stars: 1807) (watchers: 1807) - ๐ŸŽฒ mock or extend your graphql api with faked data. no coding required.

Command Line Interface

  • graphql cli - (forks: 100) (stars: 1472) (watchers: 1472) - ๐Ÿ“Ÿ command line tool for common graphql development workflows

Real Time

  • subscriptions transport w - (forks: 271) (stars: 1266) (watchers: 1266) - :arrows_clockwise: a websocket client + server for graphql subscriptions

Similar to my snapshots of OpenAPI, Swagger, Postman, and gRPC, I think that GraphQL paints an interesting picture. Of course, this is just a look at what open source is available on GitHub, but it still provides an interesting look at what is important to GraphQL providers and consumers. I am going to keep making my way through each dimension of the API specification landscape, identifying the top tooling that exists. Once I get through it all I will do more side by side comparison of what is going on, looking for the challenges and opportunities when it comes to open source tooling as part of a diverse API toolbox.