The Guild Newsletter #3: Codegen v3 RFC, Mesh v1 πŸš€

Summer vacations mean great progress! β˜€οΈ

While Yoga v3 is shaping up, we are also kicking off two major projects: GraphQL Code Generator v3 public RFC and Mesh v1 public roadmap.

Also, we are also happy to give back some love to some projects that helped us ship great open-source: Nextra and changesets.

Announcements

GraphQL Code Generator v3 RFC

GraphQL Code Generator is one of the most successful and active projects that we maintain, and many of you have noticed that we have been struggling to stay on top of issues and contributions in the past few months.

The GraphQL Code Generator v3 RFC brings the vision of a more modern and decentralized GraphQL Code Generator project with a unified way of generating types on the client side.

We crucially need your feedback to build a v3 that will improve the developer experience of all GraphQL developers and provide a better contribution experience to codegen.

If you are using GraphQL Code Generator, please take a few minutes to read the v3 RFC and provide some feedback: https://github.com/dotansimha/graphql-code-generator/issues/8296.

To better understand the motive behind the v3 RFC, we encourage you to read Laurin's article on client typings architecture best practices:

The most important parts of Relay are the concepts of building and scaling applications, let's show how you can use these patterns in your existing project, no matter what client library you are currently using.

GraphQL Hive: Apollo Router support and Schema Explorer πŸš€

We continue to evolve GraphQL Hive, our GraphQL Schema Registry SaaS (which is also open-source).

We just released a highly requested integration: Apollo Router.

You can already use Hive as a registry and monitor operations with Apollo Router; please contact us for any feedback or support.

We also released another awaited feature in beta: The Schema Explorer.

While the API and UI may change soon, we would love to get feedback from you to shape the future of this feature.

Also, you can find the public roadmap and give feedback or submit feature requests on Github.

Beyond GraphQL: Contributing to Nextra and Changesets πŸš€

We are happy to have contributed to projects that help us on the day-to-day in shipping good quality open-source software.

We recently migrated most of our projects' documentation to Nextra, which provides a better setup and documentation design than our previous homemade solution.

In this process, Dimitri contributed to improving Nextra's API and adding some neat features, and his now part of the maintainer team of Nextra ⚑️

Another important piece of open-source software is providing meaningful and automated changelogs.

We have been using changesets for years, and Dotan decided to give back some love by backporting some of our patches and homemade features to the changesets packages.

We will continue to work closely with the changesets team and decided to sponsor them πŸš€

Our take on the future of JavaScript HTTP servers design

As Arda recently shared in the below article, we believe that all JavaScript HTTP server libraries should be designed to be used everywhere, from Node.js to Cloudflare Workers and Lambdas:

A new way to make any Javascript server platform agnostic

cross-undici-fetch, used in GraphQL Yoga v2 is the key component that makes GraphQL Yoga compatible with all JavaScript environments: Node.js, Vercel Functions, Cloudflare Workers, and more.

For this reason, cross-undici-fetch has been split into multiple reusable packages: @whatwg/fetch, and @whatwg/server to help people to build their own cross-platform JavaScript HTTP server or even help migrate the current ecosystem to an agnostic approach.

πŸ“Ί Talk: "Are you using GraphQL the intended way?"

If you haven't already clicked on the player below, you should definitely check out Laurin's talk to see some great examples of Schema modeling best practices and how to safely build public GraphQL APIs πŸ‘€

The Guild Ecosystem

Releases are now easier to follow across all projects πŸ“¦

We greatly improved our changelog and release-automation to provide easy-to-follow and read releases πŸ“–

A release now includes many changes across multiple packages of the same project, with links to PRs and mention of the contributors:

Example of a recent GraphQL Yoga release

All our repos are now using a shared set of workflows and tools to properly build packages, generate well-structured changelogs and deliver beautiful documentation ✨

After years of tailoring our repos setup, we will soon publish articles explaining how to manage mono repos and pipelines; if you have any questions about these topics, feel free to reach out to us!

GraphQL Code Generator: Improved CLI, React Query v4, and ESM support

Besides the ongoing work on GraphQL Code Generator v3, we continue to improve and provide fixes for the current major (v2).

We recently shipped many improvements on the CLI, to name a few:

Also, @graphql-codegen/cli, from 2.9.0 is now capable of emitting valid ESM code with .js imports.

To enable it, you simply need to turn off the `emitLegacyCommonJSImports` flag as follows:

Finally, `@graphql-codegen/[email protected]` has been released to support the renaming of react-query to @tanstack/react-query in 4.0.0.

GraphQL Yoga v3: improving the best GraphQL Server πŸš€

While many improvements and bug fixes have been shipped in Yoga 2.x, the work on Yoga v3 to make the best GraphQL server even better continues:

  • Improved plugin system

  • Better tree shakeable bundles

  • New documentation

  • Bootstrapping CLI tools: yarn create yoga

  • and more!

We are also happy to announce our collaboration with Escape, with already a first milestone reached with the support of GraphQL Armor for GraphQL Yoga v2 ⚑️

More information in the announcement article:

Bringing security by default to GraphQL and Yoga Server

GraphQL Mesh: OpenAPI handler rewrite ♻️

The @graphql-mesh/openapi handler has been completely rewritten for better performance, stability, and easier maintainability.

This new version introduces some breaking changes at the configuration level and in the generated schemas.

We encourage you to read our migration guide: https://www.graphql-mesh.com/docs/migration/openapi-0.31-0.32.

GraphQL Tools: Improve Stitched Schema generation ⚑️

@graphql-tools/[email protected] improves the performance of Stitched Schema generation by resolving issues around transforms being called multiple times.

This release introduces some breaking changes that are explained in the release changelog: https://github.com/ardatan/graphql-tools/releases/tag/release-1660066351390.

Releases

We hope that you appreciated this third edition of The Guild Newsletter!

As always, we are eager to get your feedback on all those recent releases; please feel free to reach out with any of the mediums listed below.

Stay up to date by following us on Twitter, and don’t hesitate to reach out to us by:

  • Replying to this issue

  • Opening an issue on our projects

  • Chat with us via our websites

  • Send an email to [email protected]