Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Announcing the Sunsetting of Nexus Framework and a New Focus on Nexus Schema #1432

Open
jasonkuhrt opened this issue Sep 30, 2020 · 0 comments

Comments

@jasonkuhrt
Copy link
Member

jasonkuhrt commented Sep 30, 2020

For the past two years, Prisma has been a major contributor to Nexus Schema––a library originally authored by Tim Griesser which makes it simple to write code-first, type-safe GraphQL APIs. As an evolution to that work, Prisma created a framework that goes by the same name. The Nexus Framework has served as a developer-friendly, zero-configuration solution for building GraphQL APIs that sits on top of the original Nexus Schema library.

Today, we're announcing that we'll be refocusing effort on Nexus Schema and will no longer be actively developing Nexus Framework. Our increased investment in Nexus Schema will allow us to consider new features for the library, including ones that our enterprise customers have long been requesting.

In this post, we’ll explain the reasoning behind the decision to discontinue work on the Nexus Framework, the implications for Nexus developers, and how we’ll continue to support Nexus Schema.

Why Discontinue Work on Nexus Framework?

There are three primary reasons for stopping work on Nexus Framework:

  1. We want to focus our resources on Nexus Schema
  2. Uncertainty about what would be required for a stable release
  3. Limits of building a Framework

Focusing Effort on Nexus Schema

While we've been actively working on both Nexus Schema and Nexus Framework, it has become clear that there are a lot of features missing from Nexus Schema itself. To be effective with the resources we have allotted to work on Nexus, we want to focus on making Nexus Schema itself really shine. Working on both Schema and the Framework together will not be conducive to that goal. For that reason, we're doubling down our investment in Nexus by placing the focus at the core: Nexus Schema.

Uncertainty about a Stable Release

To provide an excellent developer experience with Nexus Framework, an unknown amount of work would be required to make it ready for widespread adoption. This puts a great deal of uncertainty around what it would take to get Nexus Framework to a stable release that can be relied upon in production settings.

While the Nexus Framework provides a lot of great features, it also often leaves developers searching for escape hatches and workarounds. These workarounds can often be solved by resorting to using Nexus Schema instead of Framework.

Limits of Building a Framework

When we set out to build Nexus Framework, we knew that making something that would provide a great developer experience was an ambitious goal. What we didn't fully appreciate was that we'd come across a whole set of limitations along that journey. We've since realized that overcoming these limitations would require more resources than we can currently commit to the project.

How Do I Migrate from Nexus Framework to Schema?

Nexus developers generally fall into two camps: those who used Nexus Schema before Nexus Framework was created, and those who came to Nexus Framework directly.

For those that have used Nexus Schema in the past, things will look and feel familiar.

If you came to Nexus Framework directly, moving to Nexus Schema should feel fairly comfortable. Your project will require a small amount of configuration at the outset but you will otherwise mostly be able to continue developing as you have been.

Regardless of your situation, we’ve prepared a migration guide for you. The guide is quite thorough but the steps are straightforward and user-friendly. It guides you through the differences between Nexus Framework and Schema, what configuration changes you need, which features are supported, and what you can expect as you move over to using Schema.

What Will Happen to the Nexus Framework Codebase?

To support this transition, the following changes have been made:

Please note that there will be no further development on bug fixes or new features for the Nexus Framework.

What Will Happen to the Nexus Prisma Plugin?

Nexus Schema Prisma plugin is not being shut down. The only change is that support for Nexus Framework has been dropped as of version 0.20.0. Since most of the Prisma plugin logic lived at the Nexus Schema level very few features are lost by this change. We have prepared a migration guide on how to get off Nexus Framework with Prisma and onto just Nexus Schema with Prisma.

We’re Here to Help

We understand that discontinuing work on Nexus Framework will be a significant blow to many developers that have come to love it. For this we are deeply sorry and want you to know we understand that this introduces pain and frustration into your work.

The Prisma team is dedicated to helping you be successful in your use of Nexus Schema and your migration away from Nexus Framework. Please don’t hesitate to reach out to us in the following channels.

Slack: https://prisma.slack.com
Twitter: https://twitter.com/nexusgql
Email: [email protected]

And you can continue to find Nexus Schema where it has been these past months:

Nexus Schema repo: https://github.com/graphql-nexus/schema
Nexus Schema package on npm: https://www.npmjs.com/package/@nexus/schema

@jasonkuhrt jasonkuhrt pinned this issue Sep 30, 2020
@prisma-labs prisma-labs locked and limited conversation to collaborators Sep 30, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant