As an agency we've built several projects with GraphQL, with either Hasura or GraphQL Nexus powered APIs. We love the declarative syntax of GraphQL, and Hasura is very approachable, but I had some underlying architecture concerns for more serious projects (that Jens did a great job of summarising in one of his blog posts: https://wundergraph.com/blog/the_complete_graphql_security_g...). WunderGraph basically gives you the best of both worlds, a more secure way of using GraphQL without losing the convenience & DX.
At a glance WunderGraph and Hasura seem to be solving some of the same problems - i.e. aggregating external GraphQL & REST APIs, generating an API for you over your own database...
BUT - WunderGraph generates your own custom SDK (fully typesafe) for use in your frontend code. This super tight coupling makes for a really great developer experience. Hasura is less opinionated in that way, you can use any GraphQL client library and codegen/introspection tooling - but you have to wire it all together yourself. The Hasura console UI also feels frustrating to use at times (e.g. bulk editing permissions), and testing your schema programatically is cumbersome.
You can do advanced RBAC with WunderGraph, writing queries/mutations ("operations") for each role, and custom logic is possible via hooks that you can write in typescript.
It all just feels very well thought out and extensible. As an agency you want to use consistent tooling across different client projects to minimise technical debt and maintenance effort, but that tooling also has to be super flexible to deal with different client requirements. It's early days for us with WunderGraph but the maintainers are very approachable and it is already feeling like a safe 'bet' to me
WunderGraph also has an interesting take on GraphQL subscriptions, as described here: https://wundergraph.com/blog/deprecate_graphql_subscriptions...
At a glance WunderGraph and Hasura seem to be solving some of the same problems - i.e. aggregating external GraphQL & REST APIs, generating an API for you over your own database...
BUT - WunderGraph generates your own custom SDK (fully typesafe) for use in your frontend code. This super tight coupling makes for a really great developer experience. Hasura is less opinionated in that way, you can use any GraphQL client library and codegen/introspection tooling - but you have to wire it all together yourself. The Hasura console UI also feels frustrating to use at times (e.g. bulk editing permissions), and testing your schema programatically is cumbersome.
You can do advanced RBAC with WunderGraph, writing queries/mutations ("operations") for each role, and custom logic is possible via hooks that you can write in typescript.
It all just feels very well thought out and extensible. As an agency you want to use consistent tooling across different client projects to minimise technical debt and maintenance effort, but that tooling also has to be super flexible to deal with different client requirements. It's early days for us with WunderGraph but the maintainers are very approachable and it is already feeling like a safe 'bet' to me