Skip to content

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

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

Are you using Nexus in production? Tell us about it! #693

Closed
jasonkuhrt opened this issue Dec 1, 2020 · 11 comments
Closed

Are you using Nexus in production? Tell us about it! #693

jasonkuhrt opened this issue Dec 1, 2020 · 11 comments
Labels
question Further information is requested

Comments

@jasonkuhrt
Copy link
Contributor

As we near toward 1.0 we're interested to hear from folks who use Nexus in production. We might even be interested in incorporating your story (with your permission, of course) into the 1.0 blog post that Prisma will publish.

Here are some questions:

  1. Do you use Nexus in production? How long?
  2. If not now, will you use Nexus in production in the near future?
  3. What is your main reason for using Nexus?
  4. What is the main benefit to date you've experienced from Nexus?
  5. Anything you would love to see from Nexus in the future?
@jasonkuhrt jasonkuhrt added the question Further information is requested label Dec 1, 2020
@Sytten
Copy link
Collaborator

Sytten commented Dec 1, 2020

  1. Yes, for 7 months now
  2. N/A
  3. Type safety and code first approach
  4. Enforce GraphQL best practices to everybody and reduce chances of mistakes like missing return fields
  5. See:
  • More policies enforceable at generation time (example I want all inputs to be the field name capitalized + Input)
  • More entrypoints in the generation so we can write plugins to suit our needs
  • Consistent way to declare things, sometimes it is methods (fields, sometimes it is object parameters (args)
  • Easier ways to map types (scalars, objects, etc), I am used to it and I find it somewhat hard to do (I had a hard time explaining the concept of root typing). The regex solution is weird even if it works.
  • From a plugin dev perspective I would love to be able to use an ObjectType in the GetGen family instead of a string, I already use direct references in the code too instead of strings because I don't like them.

@Corjen
Copy link

Corjen commented Dec 2, 2020

  1. Yes, for over a year now in multiple projects
  2. N/A
  3. Type safety, ease of use, prisma integration
  4. Developer experience, certainty that type safety gives us, declarative project structure
  5. Docs could use some love, more production examples

@steinathan
Copy link

  1. I've been using Nexus since February (this year) in multiple projects, I came from nexus schema to nexus framework then back to schema Arrrr!
  2. I will continue to use nexus in the nearest future
  3. Easy integration with Prisma, Typesaftey, as crazy as it sounds I learned graphql while using nexus for the first time
  4. I love the experience (no strict way of doing things), it's fast to restart and easy to spin up a graphql server
  5. sure
    • more code examples, especially regarding uploads, etc
    • boilerplate that's updated and not confusing with other nexus-framework-like ones
    • file structure recommendation on how to structure my code

@Nayni
Copy link
Contributor

Nayni commented Dec 3, 2020

Do you use Nexus in production? How long?

Due to reasons we are not "in production" yet (i.e. the product isn't open to public).

If not now, will you use Nexus in production in the near future?

Nexus is my go to library for building GraphQL schema's. Unless Apollo tooling suddenly shifts gears into adopting Code First I don't see myself changing.

What is your main reason for using Nexus?

  • It's Code First
  • Development Workflow with quick feedback loops
  • Deeply integrated with TypeScript (and I <3 TypeScript)
  • Declarative and readable even for newcomers

What is the main benefit to date you've experienced from Nexus?

  • Development Workflow <3
  • Customisation thanks to plugins, my team is using a handful of custom plugins that are tailored to our product and/or team conventions. I can't share everything but:
    • We have our own conventions plugin to enforce schema rules and naming conventions (such as Mutations must have at most 1 input, Inputs that refer to an ID must be in the form of <ref>Id or <ref>Ids for lists).
    • We built our own authentication plugin which deals with additional complexity such as 2FA and Permissions
    • We built a plugin for localisation so every field that is localisable is structured the same way
    • There is more but I can't share this
  • The fact that Nexus is a single tool in our chain. It gives us everything that we need from a modern Code First approach without having to rely on additional tooling (which has been my main pain with SDL First, the tooling is an explosion to get all the benefits)

And lastly, this is rather subjective, but Nexus for me sits in the sweet spot of a library and framework. It does one thing well, which is help me build GraphQL schemas, it doesn't force me into anything else (like how to structure my code, if I should use an ORM, if I should use DataLoader, ...)

Anything you would love to see from Nexus in the future?

I hope first and foremost that Nexus stays in that sweet spot I described above. I love that I can get so much power from such a relative small tool without getting an overload of extra's.

Ever since plugins got added (been using Nexus in hobby since it first came out publicly) I've been amazed at what you can do with it. So I would love to see more innovation in that space, not just from Nexus itself but also from community I think there's opportunities to build some super cool stuff.

My biggest suggestion for improvement would be that the documentation needs work. Nexus is a super powerful tool but for someone who is relatively new to the GraphQL community the documentation is a wasteland. Some suggestions:

  • Highlight the usage of ts-node and --transpileOnly more, it's hardly mentioned and is actually a key concept to get started
  • More information and guides on what is possible with the makeSchema options, mainly towards all the advanced typegen options.
  • A (few) guide(s) on how to create your own plugin
  • Use an example domain as the subject for all the examples, with a reference to the full application example in this repo (or another one). This way the documentation feels more like building a small application as I step through each page. Right now I get the feeling that every page is disconnected from the previous one I saw.

@ricardoalmeida
Copy link

Do you use Nexus in production? How long?

Not yet (almost)

If not now, will you use Nexus in production in the near future?

Release date is gonna be next week.

What is your main reason for using Nexus?

  • Minimalist idea and simplicity
  • Nice glue with Prisma, prototype built in couple of hours using CRUD feature. In meanwhile focus on business requirements, evolving the schema.

What is the main benefit to date you've experienced from Nexus?

  • Type safety and code first approach.
  • Inline resolvers <3

Anything you would love to see from Nexus in the future?

  • Improve documentation
  • Better support to monorepos (yarn workspaces, Lerna).

@Weakky Weakky pinned this issue Dec 3, 2020
@0xsven
Copy link

0xsven commented Dec 4, 2020

Do you use Nexus in production? How long?

Yes, for 3 months.

What is your main reason for using Nexus?

It has amazing prisma integration and I was looking for a very productive tech stack. I am also using code generator to create react-hooks for apollo-client.

What is the main benefit to date you've experienced from Nexus?

See above, Prisma integration. Super productive stack. Just works.

Anything you would love to see from Nexus in the future?

More examples. I had a hard time getting Unions to work for me.

@Gomah
Copy link
Contributor

Gomah commented Dec 15, 2020

  1. Do you use Nexus in production? How long?

Yes, for 20 months.

  1. What is your main reason for using Nexus?

Code first SDL & Prisma integration.

  1. What is the main benefit to date you've experienced from Nexus?
  • Type-safety
  • Modular schema composition
  • Lightweight!
  1. Anything you would love to see from Nexus in the future?
  • Custom directives support
  • Stitching / Gateway/federation support
  • More examples / showcases on new features
  • Maybe a plugin to generate .gql operations based on the defined schema? (currently using graphql-codegen as a work-around)

@guog
Copy link

guog commented Dec 29, 2020

  1. Yes, 7 months
  2. N/A
  3. Type safety, code first , less code
  4. best practices from everybody
  5. more boilerplate projects

@LumaKernel
Copy link

LumaKernel commented Dec 31, 2020

Do you use Nexus in production? How long?

Yes. Very recently.

If not now, will you use Nexus in production in the near future?

N/A

What is your main reason for using Nexus?

Type-safety, type generation. code-first, placing implementation near the definition.

What is the main benefit to date you've experienced from Nexus?

Easy to write. Easy to use with async/await.
It's easy to manage single .d.ts file, it's good comparing to generators who create more files depending on number of definitions.

Anything you would love to see from Nexus in the future?

Awaiting generation. I've been using generation under the full control separately from serving.

Namespacing or something like that, to acheive sharing prefix or preprocessing? I'm not so familiar with graphql, and nexus plugin at all, I don't know if it is feasible now or not.

@fmilioni
Copy link

Do you use Nexus in production? How long?
Yes, six months

If not now, will you use Nexus in production in the near future?
We are deploying a second service powered by Nexus

What is your main reason for using Nexus?
Type safety, organization, less code, interface auto implementation (oh baby, this is too good)

What is the main benefit to date you've experienced from Nexus?
Change one thing, break everything associated with it (haha)

Anything you would love to see from Nexus in the future?
Directives and a blog post about how you guys did that sorcery with typescript

@georgekrax
Copy link

Move the issue to the Discussions panel?

@graphql-nexus graphql-nexus locked and limited conversation to collaborators Feb 13, 2021

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests