Show HN: WunderGraph – open-source API Developer Toolkit

63 points by jensneuse ↗ HN
Dear HN Community. We're Bjorn, Dustin, Stefan & Jens, the founders of WunderGraph.

More than two years ago, Jens started WunderGraph as a Side Project. The initial idea was to solve the problem of integrating multiple disparate DataSources into a single, unified API Layer. While solving this problem, Jens realized that his mental model of APIs was wrong. Most API tools treat APIs as abstract things or just endpoints, in a very imperative way. At some point, he realized that there's a better model to think about APIs: APIs are dependencies and we should treat them in a declarative way!

And that's how the idea of the "Package Manager for APIs"[1] came to be: WunderGraph is an API Developer toolkit which allows you to import and export APIs, just like npm packages. This is possible because every WunderGraph project generates a static, conflict-free and versionable artifact.

It shouldn't take days to add a new 3rd party API to your API layer, with WunderGraph, this is possible in seconds.

WunderGraph lets you define your API dependencies in a declarative way. The whole "Graph" of API dependencies is represented as an unified GraphQL Schema. Meta-data like API credentials, can be configured with our TypeScript SDK. API Operations are defined as regular GraphQL Operations. Custom middleware / business logic can be written using TypeScript.

Finally, WunderGraph generates a Gateway + Client(s). Gateway and clients communicate via JSON-RPC. We call this approach "Compile-time" GraphQL queries. The client is 100% TypeSafe. The Gateway handles Authentication, Authorization, Caching, Middleware, etc...

WunderGraph gives you the Developer Experience of working with a single, monolithic API layer, although you're using many different internal and external Services and Databases behind the scenes.

WunderGraph Supports any OpenID Connect compliant IDP for Authentication, S3 for file storage, REST (OpenAPI), GraphQL & Apollo Federation for APIs and PostgreSQL, MySQL, SQLite, SQLServer, Planetscale and MongoDB for the data-layer.

Today, we're happy to announce that WunderGraph is finally Open Source! Check out the Monorepo[2] on GitHub. If you like our ambitions, give us a star! You can run WunderGraph locally and air-gapped, no strings attached.

There's also a more extensive release post on our blog[3]. Have a look at the examples[4], we're keen to hear your opinion!

[1]: https://hub.wundergraph.com/start

[2]: https://github.com/wundergraph/wundergraph

[3]: https://wundergraph.com/blog/wundergraph_the_next_generation...

[4]: https://github.com/wundergraph/wundergraph#getting-started

36 comments

[ 4.4 ms ] story [ 108 ms ] thread
Very excited for this, onward and upward WunderGraph!
Congratulations Wundergraph team.

I've been exploring Wundergraph as an alternative to another service I'm using and I have to say that it looks quite promising.

Coming from a FrontEnd background, Wundergraph really simplify things for me, not only by providing me with a client that is 100% TypeSafe but by centralizing my APIs and the way I integrate them in my project, it's really neat.

I find Wundergraph to have the best of both worlds, it gives you tools you need to handle authentication/authorization, file storage but it also give you all the flexibility you need to do things your way.

I'm really excited with Wundergraph and how it could help me with the project I'm working on.

So excited for the future of WunderGraph!

LFG

Excited to see OSS developer tooling closer to how enterprise actually use GraphQL. Very impressive!
We are delighted to go down this road with the community. Feel free to ask any questions.
Thank you WunderGraph This is Amazing. Looking Forward.
Congrats and thanks for giving so much to the OS community
I believe that, in the long run, any Open Source variant of "WunderGraph" will outperform closed-source variants. It's just so much harder to get people to adopt closed-source products these days.
I've been on the waitlist since November 2021. Super excited to contribute! Great Job WunderGraph Team!
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.

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

Thank you for the kind words, appreciate your support!
Excited to see this and congrats to the team! I've been huge fan of GraphQL for a while and have checked out all of the major players. A big one I've used in the past is Hasura. It's refreshing to see Wundergraph's approach because it appears they've managed to couple the generated client and server in a way that assures your code is correct (beyond just having type-safe queries) while maintaining the flexibility of having multiple data sources configured with code. There's no wasted effort here.

Can't wait to see where they take this - if their blog (https://wundergraph.com/blog) is any indication, they will continue to add innovation in this space. You can tell Jens has put a massive amount of thought into what GraphQL is best used for and what the DX should be.

as a web developer, this might be the project I'm most excited about. I've been following for a while and these guys have been making constant and steady progress, attempting to solve a very interesting and prevalent problem. Plenty of reasons here to be pumped for the future
Jens and team, congratulations!

For the rest of the HN/YC community, give a try to Wundergraph --> https://wundergraph.com

A package manager for APIs is the way to go.

[Deleted as I went against the HN guidelines]
(From our Head of Growth) Hey! My name is Stefan and I am the head of growth here at WunderGraph! We had a launch party in our Discord Community, so I'm assuming that members from our awesome community created an account on HackerNews since not everyone is on HackerNews!

You are welcome to join the launch party and join the awesome community we have here! https://discord.gg/cnRWwHXbQm

We're getting complaints because most of the comments (and upvotes) in this thread are not organic—that is, they're by users who are trying to boost or promote your post rather than by users who simply ran across this and found it interesting. That's against HN's rules—it's in fact the only rule which is in both the site guidelines and the FAQ:

https://news.ycombinator.com/newsguidelines.html

https://news.ycombinator.com/newsfaq.html

It would be good to call off your friends/fans/teammates because HN readers have a nose for such comments and consider them astroturfing or spam. The community is pretty adamant about only wanting organic discussion here, and voting rings are particularly not allowed.

Hey @dang,

Looks like our fans got a little too excited. Our apologies. Will not happen again.

We apologize for breaking community guidelines. Thank you for keeping HackerNews awesome!

Best, Stefan

Excellent work! It’s great to see a platform that combines the power of GraphQL and the ubiquitous access of REST!
Congrats on getting this open sourced! Wundergraph takes a really interesting approach to solving stitching APIs together, taking care of a lot of production concerns around security, performance, and caching that can come into play with GraphQL.

This also uses the awesome graphql-go-tools (https://github.com/wundergraph/graphql-go-tools) under the hood which is way more performant than other JavaScript GraphQL implementations.

I had great developer experience with wundergraph. Best part of using wundergraph is it can take multiple data sources, generates graphql operations and Rest API endpoints. We can change / extend operation functionalities using hooks (preResolve, postResolve and custom). When sometimes none of the data source meets our exact requirement, we can create custom operations. It has one bonus feature for developers like me who use postman extensively for API testing, It generates postman collection with all api endpoints. Since now it is open source. I would like to contribute in codebse. Kudos team for great product.
(comment deleted)
I started using Wundergraph as a backend service for our recently launched platform in February of this year. I found the usage to be simple and easy to understand, but development and deployment was rough at times, earlier this year there were bugs on some of the common use cases. The team has been very responsive and those issues have been resolved.

Two major changes have pushed this framework into a really mature place. One was a recent rewrite around custom resolvers, which allows for adding business logic in between GraphQL calls. The other is going fully open source.

Despite some initial challenges with the framework, I can't deny that Jens understands the problem domain probably better than anyone else in the world. Glad to see so many issues like authentication and API interconnectivity solved in a production ready way. I'm getting out of the box functionality that I used to depend on entire teams for. The depth of auth implementation, from one line config of Auth0 all the way down to per-operation RBAC is the shining example of how well this framework is architected.

Can't wait to see the continued development and growth from their team!

Congrats for WG team, I have been testing some features in Wundergraph, and Jense was more than supportive in that regard, I see a brilliant future for WG, no doubts it promotes DX.
I have been, and remain, very bullish on this project. The graphql community grew fast and the dust is still settling, when it finally does, WG will emerge as a standard. Calmly saving developers massive amounts of time and helping them start from a security minded foundation of best practices. I've worked on a wundergraph/svelte app at a large legal startup and am now beyond excited to champion it's adoption in the web3 space in my new role at Heir labs .

Absolutely thrilled to see the big day has finally come, congrats to all of you at WG for tackling a very difficult problem with diligence and discipline. It's hard to keep your eye on the problem that needs to be solved when working on an ambitious projects and that's exactly what you guys have done, congrats! Also Jens is one the most brilliant, productive, and humble people I've met . I can't wait to watch the community grow and contribute in a new way now that it is open source!

Best of luck too all of you!

Wundergraph is a awesome tool for both backend and frontend engineers. You can connect third party APIs easily on backend and the best part is it generates a type safe client with all queries and mutations which will save front end a ton of time.

Congratulations

Congratulations, Team Wundergraph.

I've been using wundergraph for last couple of months in some hobby projects and also using it on my startup. It boost my team's productivity and API development process easy to easier. In the beginning, I had some doubts and problems on some places, but the community and wundergraph team! They helped me instantly. And overall experience is really impressive.

Wundergraph has become a part of our tech stack, and we wish the Jens and the full team, Best of luck. Will definitely use wundergraph in our future projects too.