graphql-tools VS Stack

Compare graphql-tools vs Stack and see what are their differences.

graphql-tools

:wrench: Utility library for GraphQL to build, stitch and mock GraphQL schemas in the SDL-first approach (by ardatan)

Stack

Tech Stack developed by The Guild (by the-guild-org)
Our great sponsors
  • SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
graphql-tools Stack
18 19
5,288 254
- 0.0%
9.8 0.0
4 days ago over 1 year ago
TypeScript
MIT License -
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

graphql-tools

Posts with mentions or reviews of graphql-tools. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-06-18.
  • Is the graphql-tools project dead?
    3 projects | /r/graphql | 18 Jun 2022
  • How to use GraphQL Directives efficiently?
    2 projects | dev.to | 3 Jun 2022
    From the previous example, you note that depending on Query Directives is inconsistent due to the different handling from the GraphQL providers, as a result, GraphQL Tools discourages using the Query Directives:
  • Announcing GraphQL Yoga 2.0!
    8 projects | /r/graphql | 29 Mar 2022
    You might know us from projects such as graphql-code-generator, envelop or graphql-tools.
  • Creating a Proxy for your GraphQL Server
    2 projects | dev.to | 21 Mar 2022
    This article will document how you can do the same with minimal amount of code 😏 We'll be leveraging awesome utilities provided by graphql-tools
  • not able to download truffle suite
    3 projects | /r/BlockchainDevs | 21 Feb 2022
    npm WARN deprecated [email protected]: This package has been deprecated and now it only exports makeExecutableSchema.\nAnd it will no longer receive updates.\nWe recommend you to migrate to scoped packages such as u/graphql-tools/schema, u/graphql-tools/utils and etc.\nCheck out https://www.graphql-tools.com to learn what package you should use instead
  • How not to learn GraphQL
    8 projects | dev.to | 14 Feb 2022
    Schema Stitching (a component of GraphQL Tools[v6 and under]) got a bad rap when it was famously abandoned by Apollo in favor of their Federation architecture some years back. However, Stitching came under the stewardship of The Guild and friends in 2020, and they've since overhauled it with numerous automation and performance enhancements. Seemingly out of nowhere, Schema Stitching has reemerged as something of a nimble hummingbird racing alongside the stallion that is Apollo Federation.
  • Getting a bunch of error messages when trying to install Truffle. How do I fix this?
    9 projects | /r/code | 29 Jan 2022
    npm WARN deprecated [email protected]: See https://github.com/lydell/source-map-url#deprecated npm WARN deprecated [email protected]: this library is no longer supported npm WARN deprecated [email protected]: Please see https://github.com/lydell/urix#deprecated npm WARN deprecated [email protected]: This module has been superseded by the multiformats module npm WARN deprecated [email protected]: The `apollo-tracing` package is no longer part of Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#tracing for details npm WARN deprecated [email protected]: See https://github.com/lydell/source-map-resolve#deprecated npm WARN deprecated [email protected]: CircularJSON is in maintenance only, flatted is its successor. npm WARN deprecated [email protected]: https://github.com/lydell/resolve-url#deprecated npm WARN deprecated [email protected]: The `graphql-extensions` API has been removed from Apollo Server 3. Use the plugin API instead: https://www.apollographql.com/docs/apollo-server/integrations/plugins/ npm WARN deprecated [email protected]: Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797) npm WARN deprecated [email protected]: This module has been superseded by the multiformats module npm WARN deprecated [email protected]: This module has been superseded by @ipld/dag-cbor and multiformats npm WARN deprecated [email protected]: The functionality provided by the `apollo-cache-control` package is built in to `apollo-server-core` starting with Apollo Server 3. See https://www.apollographql.com/docs/apollo-server/migration/#cachecontrol for details. npm WARN deprecated [email protected]: This module has been superseded by the multiformats module npm WARN deprecated @nodefactory/[email protected]: Package is deprecated in favour of @chainsafe/filsnap-adapter npm WARN deprecated [email protected]: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. npm WARN deprecated [email protected]: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. npm WARN deprecated [email protected]: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. npm WARN deprecated [email protected]: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. npm WARN deprecated [email protected]: request has been deprecated, see https://github.com/request/request/issues/3142 npm WARN deprecated [email protected]: This module has been superseded by the multiformats module npm WARN deprecated [email protected]: This module has been superseded by the multiformats module npm WARN deprecated [email protected]: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. npm WARN deprecated [email protected]: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. npm WARN deprecated [email protected]: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. npm WARN deprecated [email protected]: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. npm WARN deprecated [email protected]: This module has been superseded by the multiformats module npm WARN deprecated [email protected]: This module has been superseded by the multiformats module npm WARN deprecated [email protected]: This module has been superseded by the multiformats module npm WARN deprecated [email protected]: This module has been superseded by the multiformats module npm WARN deprecated [email protected]: Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.) npm WARN deprecated [email protected]: This module has been superseded by the multiformats module npm WARN deprecated [email protected]: This module has been superseded by @ipld/dag-pb and multiformatsnpm WARN deprecated [email protected]: This module has been superseded by the multiformats module npm WARN deprecated [email protected]: Please upgrade to @mapbox/node-pre-gyp: the non-scoped node-pre-gyp package is deprecated and only the @mapbox scoped package will recieve updates in the future npm WARN deprecated [email protected]: This module has been superseded by the multiformats module npm WARN deprecated [email protected]: This module has been superseded by the multiformats module npm WARN deprecated [email protected]: This module has been superseded by the multiformats module npm WARN deprecated [email protected]: Critical security vulnerability fixed in v0.21.1. For more information, see https://github.com/axios/axios/pull/3410 npm WARN deprecated [email protected]: This module has been superseded by the multiformats module npm WARN deprecated [email protected]: This package has been deprecated and now it only exports makeExecutableSchema.\nAnd it will no longer receive updates.\nWe recommend you to migrate to scoped packages such as @graphql-tools/schema, @graphql-tools/utils and etc.\nCheck out https://www.graphql-tools.com to learn what package you should use instead npm WARN deprecated [email protected]: core-js@<3.4 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Please, upgrade your dependencies to the actual version of core-js. npm ERR! code 1 npm ERR! path C:\Users\andre\AppData\Roaming\npm\node_modules\truffle\node_modules\ganache\node_modules\keccak npm ERR! command failed npm ERR! command C:\WINDOWS\system32\cmd.exe /d /s /c node-gyp rebuild npm ERR! gyp info it worked if it ends with ok npm ERR! gyp info using [email protected] npm ERR! gyp info using [email protected] | win32 | x64 npm ERR! gyp ERR! find Python npm ERR! gyp ERR! find Python Python is not set from command line or npm configuration npm ERR! gyp ERR! find Python Python is not set from environment variable PYTHON npm ERR! gyp ERR! find Python checking if "python3" can be used npm ERR! gyp ERR! find Python - "python3" is not in PATH or produced an error npm ERR! gyp ERR! find Python checking if "python" can be used npm ERR! gyp ERR! find Python - "python" is not in PATH or produced an error npm ERR! gyp ERR! find Python checking if Python is C:\Users\andre\AppData\Local\Programs\Python\Python39\python.exe npm ERR! gyp ERR! find Python - "C:\Users\andre\AppData\Local\Programs\Python\Python39\python.exe" could not be run npm ERR! gyp ERR! find Python checking if Python is C:\Program Files\Python39\python.exe npm ERR! gyp ERR! find Python - "C:\Program Files\Python39\python.exe" could not be run npm ERR! gyp ERR! find Python checking if Python is C:\Users\andre\AppData\Local\Programs\Python\Python39-32\python.exe npm ERR! gyp ERR! find Python - "C:\Users\andre\AppData\Local\Programs\Python\Python39-32\python.exe" could not be run npm ERR! gyp ERR! find Python checking if Python is C:\Program Files\Python39-32\python.exe npm ERR! gyp ERR! find Python - "C:\Program Files\Python39-32\python.exe" could not be run npm ERR! gyp ERR! find Python checking if Python is C:\Program Files (x86)\Python39-32\python.exe npm ERR! gyp ERR! find Python - "C:\Program Files (x86)\Python39-32\python.exe" could not be run npm ERR! gyp ERR! find Python checking if Python is C:\Users\andre\AppData\Local\Programs\Python\Python38\python.exe npm ERR! gyp ERR! find Python - "C:\Users\andre\AppData\Local\Programs\Python\Python38\python.exe" could not be run npm ERR! gyp ERR! find Python checking if Python is C:\Program Files\Python38\python.exe npm ERR! gyp ERR! find Python - "C:\Program Files\Python38\python.exe" could not be run npm ERR! gyp ERR! find Python checking if Python is C:\Users\andre\AppData\Local\Programs\Python\Python38-32\python.exe npm ERR! gyp ERR! find Python - "C:\Users\andre\AppData\Local\Programs\Python\Python38-32\python.exe" could not be run npm ERR! gyp ERR! find Python checking if Python is C:\Program Files\Python38-32\python.exe npm ERR! gyp ERR! find Python - "C:\Program Files\Python38-32\python.exe" could not be run npm ERR! gyp ERR! find Python checking if Python is C:\Program Files (x86)\Python38-32\python.exe npm ERR! gyp ERR! find Python - "C:\Program Files (x86)\Python38-32\python.exe" could not be run npm ERR! gyp ERR! find Python checking if Python is C:\Users\andre\AppData\Local\Programs\Python\Python37\python.exe npm ERR! gyp ERR! find Python - "C:\Users\andre\AppData\Local\Programs\Python\Python37\python.exe" could not be run npm ERR! gyp ERR! find Python checking if Python is C:\Program Files\Python37\python.exe npm ERR! gyp ERR! find Python - "C:\Program Files\Python37\python.exe" could not be run npm ERR! gyp ERR! find Python checking if Python is C:\Users\andre\AppData\Local\Programs\Python\Python37-32\python.exe npm ERR! gyp ERR! find Python - "C:\Users\andre\AppData\Local\Programs\Python\Python37-32\python.exe" could not be run npm ERR! gyp ERR! find Python checking if Python is C:\Program Files\Python37-32\python.exe npm ERR! gyp ERR! find Python - "C:\Program Files\Python37-32\python.exe" could not be run npm ERR! gyp ERR! find Python checking if Python is C:\Program Files (x86)\Python37-32\python.exe npm ERR! gyp ERR! find Python - "C:\Program Files (x86)\Python37-32\python.exe" could not be run npm ERR! gyp ERR! find Python checking if Python is C:\Users\andre\AppData\Local\Programs\Python\Python36\python.exe npm ERR! gyp ERR! find Python - "C:\Users\andre\AppData\Local\Programs\Python\Python36\python.exe" could not be run npm ERR! gyp ERR! find Python checking if Python is C:\Program Files\Python36\python.exe npm ERR! gyp ERR! find Python - "C:\Program Files\Python36\python.exe" could not be run npm ERR! gyp ERR! find Python checking if Python is C:\Users\andre\AppData\Local\Programs\Python\Python36-32\python.exe npm ERR! gyp ERR! find Python - "C:\Users\andre\AppData\Local\Programs\Python\Python36-32\python.exe" could not be run npm ERR! gyp ERR! find Python checking if Python is C:\Program Files\Python36-32\python.exe npm ERR! gyp ERR! find Python - "C:\Program Files\Python36-32\python.exe" could not be run npm ERR! gyp ERR! find Python checking if Python is C:\Program Files (x86)\Python36-32\python.exe npm ERR! gyp ERR! find Python - "C:\Program Files (x86)\Python36-32\python.exe" could not be run npm ERR! gyp ERR! find Python checking if the py launcher can be used to find Python 3 npm ERR! gyp ERR! find Python - "py.exe" is not in PATH or produced an error npm ERR! gyp ERR! find Python npm ERR! gyp ERR! find Python ********************************************************** npm ERR! gyp ERR! find Python You need to install the latest version of Python. npm ERR! gyp ERR! find Python Node-gyp should be able to find and use Python. If not, npm ERR! gyp ERR! find Python you can try one of the following options: npm ERR! gyp ERR! find Python - Use the switch --python="C:\Path\To\python.exe" npm ERR! gyp ERR! find Python (accepted by both node-gyp and npm) npm ERR! gyp ERR! find Python - Set the environment variable PYTHON npm ERR! gyp ERR! find Python - Set the npm configuration variable python: npm ERR! gyp ERR! find Python npm config set python "C:\Path\To\python.exe" npm ERR! gyp ERR! find Python For more information consult the documentation at: npm ERR! gyp ERR! find Python https://github.com/nodejs/node-gyp#installation npm ERR! gyp ERR! find Python ********************************************************** npm ERR! gyp ERR! find Python npm ERR! gyp ERR! configure error npm ERR! gyp ERR! stack Error: Could not find any Python installation to use npm ERR! gyp ERR! stack at PythonFinder.fail (C:\Users\andre\AppData\Roaming\npm\node_modules\npm\node_modules\node-gyp\lib\find-python.js:330:47) npm ERR! gyp ERR! stack at PythonFinder.runChecks (C:\Users\andre\AppData\Roaming\npm\node_modules\npm\node_modules\node-gyp\lib\find-python.js:159:21) npm ERR! gyp ERR! stack at PythonFinder. (C:\Users\andre\AppData\Roaming\npm\node_modules\npm\node_modules\node-gyp\lib\find-python.js:228:18) npm ERR! gyp ERR! stack at PythonFinder.execFileCallback (C:\Users\andre\AppData\Roaming\npm\node_modules\npm\node_modules\node-gyp\lib\find-python.js:294:16) npm ERR! gyp ERR! stack at ChildProcess.exithandler (node:child_process:404:5) npm ERR! gyp ERR! stack at ChildProcess.emit (node:events:390:28) npm ERR! gyp ERR! stack at maybeClose (node:internal/child_process:1064:16) npm ERR! gyp ERR! stack at Process.ChildProcess._handle.onexit (node:internal/child_process:301:5) npm ERR! gyp ERR! System Windows_NT 10.0.22000 npm ERR! gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "C:\\Users\\andre\\AppData\\Roaming\\npm\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild" npm ERR! gyp ERR! cwd C:\Users\andre\AppData\Roaming\npm\node_modules\truffle\node_modules\ganache\node_modules\keccak npm ERR! gyp ERR! node -v v16.13.2 npm ERR! gyp ERR! node-gyp -v v8.4.1 npm ERR! gyp ERR! not ok
  • General advice for what AWS amplify options to choose
    3 projects | /r/aws | 13 Nov 2021
    Did I said AppSync GraphQL completely different with “normal” GraphQL???? In fact, you can’t use GraphQL API or other tools like GraphQL Tools (https://www.graphql-tools.com) to parse AppSync GraphQL files. For example did normal GraphQL have this kind of syntax: “type Order @model @key(fields: ["customerEmail", "createdAt"]) {….” (Pasted from Amplify docs)
  • GraphQL Tools V8 - Stitch Federation Services
    4 projects | dev.to | 29 Jul 2021
    You can check the unit tests to see the complete usage
  • Making Open Source Easy - Orchestrating the Open Source Contribution Workflow
    8 projects | dev.to | 29 Jul 2021
    GraphQL Tools

Stack

Posts with mentions or reviews of Stack. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-06-27.
  • GraphQL Request Cancellation in JavaScript
    1 project | dev.to | 29 Apr 2024
    When checking the network tab within the browser, we can see that the request was canceled. **Note:** When a pending fetch request is canceled, the Promise returned from the fetch call will reject with a [`DOMException`](https://developer.mozilla.org/en-US/docs/Web/API/DOMException)\`. It is recommended to always add a catch handler for your fetch calls to avoid unhandled promise rejections. All modern GraphQL clients use this under the hood for optimizing the user experience, as it is unnecessary to load data that is no longer needed, e.g. because the user navigated away to another view. This is especially true for devices where low data/roaming usage is desired. ## Isomorphic APIs One of the great things about JavaScript is that APIs that were formerly exclusive to browser environments are finally being added to various server-side runtimes. Whether Bun.js, Deno or Node.js, all of them support both the `fetch` and `AbortController` API in recent versions! | Runtime | fetch | AbortController | | ------- | ------------------ | ------------------ | | Node.js | ✅ (since v18.0.0) | ✅ (since v15.4.0) | | Deno | ✅ (since v1.0.0) | ✅ (since v1.0.0) | | Bun | ✅ (since v1.0.0) | ✅ (since v1.0.0) | This enables us to run the exact same code from the client example on our server. In addition to `AbortController` now being able on the server, all kind of libraries that do asynchronous tasks such as IO, can similarly to the `fetch` API accept an `AbortSignal` option for canceling any pending work in case the calling code is no longer interested in the result. An example of this could be that a request from the client has been canceled and the server no longer needs to load all the data and construct a response as requested previously. ## Cleaning up Resources and Pending Tasks Is Hard While this is not particularly true for all programming languages, JavaScript servers are by default single-threaded and no new thread or worker process is spawned for every incoming HTTP request. Thus, we can not simply kill a thread or worker process that is performing some work in case the request got aborted. Because of that, cleaning up resources and canceling pending tasks is a cumbersome task that is left to the user instead of being performed through magic. On top of that a lot of tooling and libraries, yet need to catch up and provide the APIs (e.g. pass `AbortSignal`) to allow cleaning up resources. Some examples (on the server in case of an aborted client request): * Abort a non-transactional, expensive, and long-running SQL query (or query/read on any other database) * Abort pending HTTP requests to third-party services for fetching some data * Abort the GraphQL execution and stop the resolver waterfall calls for resolving all the data specified by the GraphQL operation sent by the client The latter point is a superset of the two former points, as in most cases within the GraphQL execution, the business logic as called within or specified in your resolvers will result in a variation of reads from remote services or databases. A good enough solution for many people could be to only have the latter and only further optimize for the former two points when additional performance gains are justified. ## How GraphQL Execution Cancelation Works When a GraphQL operation is sent to the server, the server will start executing the operation by calling the resolver functions as specified by the GraphQL operation selection set. Some resolver functions are light and will just read a property from an object, whereas others will call a remote service or database. Here is an example GraphQL operation causing the server to call several services in sequence. ```graphql filename="Example GraphQL Operation" query Profile($userId: ID!) { user(id: $userId) { id name avatar { id url } posts(first: 10) { edges { node { id title body likeCount comments(first: 5) { edges { node { id body author { id name avatar { id url } } } } } } } } } } ``` Here is a simplified view of what kind of operations will be performed as the resolvers are called. The arrows indicate what action and resolver will be executed after another one has finished. For simplification, we only show the resolvers that are performing IO operations. ```mermaid flowchart id1["Load user (Query.user)"] id21["Load user avatar (User.avatar)"] id22["Load user posts (User.posts)"] id31["Load total post likes (Post.likeCount)"] id32["Load comments for each post (Post.comments)"] id4["Load author for each comments (Comment.author)"] id5["Load author avataer for each comment author (User.avatar)"] id1 --> id21 id1 --> id22 id22 --> id31 id22 --> id32 id32 --> id4 id4 --> id5 ``` So given the above operation, if the client cancels the request at the stage `Load user posts (User.posts)`, there is no need for the server to perform all the resolver calls and data-fetching happening after that point. Furthermore, event the pending `Load user posts (User.posts)` call could be canceled. ```mermaid flowchart id1["Load user (Query.user)"] id21["Load user avatar (User.avatar)"] id22["Load user posts (User.posts)"] id31["Load total post likes (Post.likeCount)"] id32["Load comments for each post (Post.comments)"] id4["Load author for each comments (Comment.author)"] id5["Load author avataer for each comment author (User.avatar)"] id1 --> id21 id1 --> id22 id22 -- client request cancel --> id31 id22 -- client request cancel --> id32 id32 --> id4 id4 --> id5 classDef opacity opacity:0.5 class id31,id32,id4,id5 opacity linkStyle 2 opacity:0.5; linkStyle 3 opacity:0.5; linkStyle 4 opacity:0.5; linkStyle 5 opacity:0.5; ``` ## Why We Forked GraphQL.js GraphQL.js is the reference implementation of the GraphQL specification. GraphQL.js is also the GraphQL engine that is used by almost all JavaScript GraphQL servers that exist today. The reference implementation serves as a proofing ground for new features (e.g. the `@stream` and `@defer` directives). However, there is one major drawback with GraphQL.js. Things generally move slow and the process of testing new features and provide feedback is cumbersome as you will have to maintain your own fork. If you want to test out multiple newly proposed features at the same time, it gets even more complicated. We wanted to take that burden from GraphQL server builders! When we revived Yoga Server, we wanted to make in-progress “GraphQL specification” features easily accessible. That is why we forked GraphQL.js and now maintain this fork, where new features can be enabled via flags. This also allowed us to add support for passing `AbortSignal` for the GraphQL execution, which allows canceling the GraphQL data resolving waterfall in case the incoming request got canceled. ## How to Enable GraphQL Execution Cancelation in GraphQL Yoga Execution cancellation is not yet a feature that is enabled by default as we are still gathering intel on its behavior in a real-world environment (on our [Hive](https://the-guild.dev/graphql/hive) GraphQL API). For now, opting into this feature is achieved via a plugin. ```ts filename="GraphQL Yoga cancelation plugin" import { createYoga, useExecutionCancellation } from 'graphql-yoga' import { schema } from './schema' // Provide your schema const yoga = createYoga({ plugins: [useExecutionCancellation()], schema }) // Start the server and explore http://localhost:4000/graphql const server = createServer(yoga) server.listen(4000, () => { console.info('Server is running on http://localhost:4000/graphql') }) ``` After that, you should immediately benefit from GraphQL execution cancellation without having to do any further optimizations. Depending on whether you are performing other advanced GraphQL optimizations such as data-fetching lookaheads or similar, you might also want to implement `AbortSignal` propagating in those API surfaces. For that, we recommend reading the [Yoga documentation on GraphQL execution cancellation](https://the-guild.dev/graphql/yoga-server/docs/features/execution-cancellation). ## Conclusion HTTP request and database read cancelations are powerful tools that can be handy when encountering performance problems for often aborted paths. Similarly, aborting the GraphQL execution can potentially free up a lot of resources otherwise wasted for fetching data and constructing a response that is no longer needed. Writing cancelation logic for HTTP requests and database read cancelation can be cumbersome, but implemented via an abstraction layer if needed. Yoga server is a powerful JavaScript runtime agnostic GraphQL Server that supports GraphQL execution cancellation. [You can learn more here](https://the-guild.dev/graphql/yoga-server/docs/features/execution-cancellation). If you are facing related or other issues with GraphQL APIs, feel free to reach out! We offer a wide range of services and are experts in building and maintaining GraphQL API tooling.
  • The complete GraphQL Scalar Guide
    4 projects | dev.to | 27 Jun 2023
    This article was published on Tuesday, June 27, 2023 by Eddy Nguyen @ The Guild Blog
  • Apidays Paris 2022 - GraphQL Mesh - Query any API, run on any platform by Uri Goldshtein
    1 project | /r/graphql | 19 Apr 2023
    I gave an overview of The Guild tools and they support REST and other API protocols that are not necessarily GraphQL.
  • Optimize your Bundle Size with SWC and GraphQL Codegen
    6 projects | dev.to | 18 Apr 2023
    Then you're ready to go! The plugin will automatically optimize your generated code when SWC compiles your files. In conclusion, using the [`client-preset`](https://graphql-code-generator.com/plugins/presets/client-preset) for GraphQL Code Generator is a powerful way to improve the DX of your project. However, without proper optimization, the bundle size can quickly become bloated. By using the [@graphql-codegen/client-preset-swc-plugin](https://www.npmjs.com/package/@graphql-codegen/client-preset-swc-plugin), (or the [Babel plugin](https://the-guild.dev/graphql/codegen/plugins/presets/preset-client#babel-plugin)) you can optimize the generated code and reduce the bundle size, and in the end improve the loading time of your application.
  • Moving from Apollo to Vanilla GraphQL
    3 projects | /r/graphql | 6 Mar 2023
    I started using Apollo and as I got more experienced about GraphQL I found out about The Guild.
  • How we migrated to Apollo Server 4
    4 projects | dev.to | 23 Feb 2023
    Second, the developer experience around GraphQL is amazing, and we’ve been fortunate to use some great tools from The Guild and Apollo in building our product. For example, we publish our GraphQL schemas to Apollo Studio, we embed the Apollo Studio Explorer in our docs, and our GraphQL API is actually built on top of Apollo Server.
  • How we shipped CDN access tokens with Cloudflare Workers and R2
    2 projects | dev.to | 1 Feb 2023
    Once we decoded the incoming access token we can then read the R2 key value e.g. `/cdn-keys/c7ce447c-f5e6-4f13-87b8-d3051ba3fc45/c7de111c-f5g9-4f13-87b8-d1267ba3ge95` and then check the user-sent `privateKey` against the hash stored there. For subsequent requests, the same cache logic as for the legacy tokens is reused. The UI part was pretty straight-forward and less challenging to build, however it was still part of this project. The new token overview: ![All good](https://the-guild.dev/blog-assets/how-we-shipped-cdn-access-tokens-with-cloudflare-workers-and-r2/phase-4-cdn-access-token-overview.png) Creating a new token: ![All good](https://the-guild.dev/blog-assets/how-we-shipped-cdn-access-tokens-with-cloudflare-workers-and-r2/phase-4-token-create-form.png) We successfully deployed this to production and then informed all our clients that are waiting for this feature. 🎉 In addition, this is of course now also available for the self-hosted Hive users. ## Conclusion This was an exciting and challenging project to solve and Cloudflare provides useful tools for solving these kinds of problems. On the other hand debugging Cloudflare tooling is often frustrating and cumbersome, documentation is also often scarce or non-existing for more advanced use-cases. Nevertheless, we are happy to finish this project successfully and are looking forward to all the future challenges! In case you did not know, Hive is fully open-source and self-hostable! You can find all the code, steps and pull requests on GitHub! * https://github.com/kamilkisiela/graphql-hive/pull/1003 * https://github.com/kamilkisiela/graphql-hive/pull/1043 * https://github.com/kamilkisiela/graphql-hive/pull/1005 * https://github.com/kamilkisiela/graphql-hive/pull/1114 * https://github.com/kamilkisiela/graphql-hive/pull/1120 * https://github.com/kamilkisiela/graphql-hive/pull/1127 * https://github.com/kamilkisiela/graphql-hive/pull/1130 * https://github.com/kamilkisiela/graphql-hive/pull/1142 * https://github.com/kamilkisiela/graphql-hive/pull/1143 * https://github.com/kamilkisiela/graphql-hive/pull/1061
  • Is React still the most heavily dominant framework sought after by employers, or can I start learning other frameworks/libraries when looking for a new job?
    4 projects | /r/cscareerquestions | 1 Oct 2022
    The ecosystem offered by https://the-guild.dev/ is a spectacular suite of services offered for free that can really help learning the concepts of development and composable elements.
  • Building GraphQL Servers in 2022
    1 project | dev.to | 30 Aug 2022
    This article was published on Tue Jun 28 2022 00:00:00 GMT+0000 (Coordinated Universal Time) by Jamie Barton @ The Guild Blog
  • Announcing GraphQL Yoga 2.0!
    10 projects | dev.to | 29 Mar 2022
    This article was published on 2022-03-29 by Charly Poly @ The Guild Blog

What are some alternatives?

When comparing graphql-tools and Stack you can also consider the following projects:

mercurius - Implement GraphQL servers and gateways with Fastify

apollo-angular - A fully-featured, production ready caching GraphQL client for Angular and every GraphQL server 🎁

apollo-server - 🌍  Spec-compliant and production ready JavaScript GraphQL server that lets you develop in a schema-first way. Built for Express, Connect, Hapi, Koa, and more.

graphql-inspector - 🕵️‍♀️ Validate schema, get schema change notifications, validate operations, find breaking changes, look for similar types, schema coverage

graphql-ws - Coherent, zero-dependency, lazy, simple, GraphQL over WebSocket Protocol compliant server and client.

graphql-js - A reference implementation of GraphQL for JavaScript

graphql-faker - 🎲 Mock or extend your GraphQL API with faked data. No coding required.

nestjs-graphql - GraphQL (TypeScript) module for Nest framework (node.js) 🍷

jest-mock-extended - Type safe mocking extensions for Jest https://www.npmjs.com/package/jest-mock-extended

redwood - The App Framework for Startups

graphjin - GraphJin - Build NodeJS / GO APIs in 5 minutes not weeks

graphql-hive - GraphQL Hive is a schema registry and observability