Launch of the Public Beta

Jens Neuse

Jens Neuse

Founder @ wundergraph

Today we're happy to announce the launch of WunderGraph which also marks the beginning of the public beta.

Our vision with WunderGraph is to make developing Apps easier.

We've been building apps for mobile devices, websites and endless backends throughout our careers. We worked mainly in not so fancy companies where software is a means to solve business problems and not the primary concern. Over and over again we encountered the same problems which we got tired of solving, namely:

  • authentication
  • authorization
  • application security
  • integrations of services
  • caching

There are many more problems like storing data, but we don't want to solve them with WunderGraph.

If you grew up using toolkits the like LAMP stack you might remember how easy it was using an opinionated framework like Laravel. Follow the conventions as a lot of good best practice decisions have been already made for you which allowed you focus on the business problem at hand, the perfect tool for these "not so fancy" companies which allow you to ship fast.

The problem with the LAMP stack is that we're now in an era where users expect interactive apps. We believe modern frameworks like React, Vue, Angular and Flutter are excellent tools to build such rich user experiences. To make these frameworks productive you need a powerful API to fulfill all the needs of the heterogeneous field of clients.

We think GraphQL is solid solution to bring all the data you need together, so that app developers can focus on building amazing user experiences instead of fighting with the boilerplate problems listed above.

Unfortunately, we realized that using GraphQL in production comes with a lot of challenges. (Read my blog post about why we created WunderGraph if you want to deep dive into that topic).

So, if you are in a similar situation as we were before, we're trying to help you so that you can get back to work and solve real business problems.

Here's what you get from WunderGraph:
  • we solve Authentication & Authorization in a user-friendly and easy to understand way
  • we allow you to use GraphQL without worrying about security as your GraphQL server never gets exposed to the public
  • we help you integrate all your REST and GraphQL APIs into one easy to use Graph
  • we solve caching for you, even for authenticated requests, again, it's very easy to use

With WunderGraph there are two important concepts:

1. You connect all your services to a Graph.

2. You register all your Queries on the server. Clients cannot write arbitrary Queries.

Let's look at an example Query to understand this concept:

query UserFriends($userID: ID = "" @fromClaims(claim: "sub")) @auth @cache(maxAge: 300) {
user(id: $userID) {
friends {
id
name
age
}
}
}

This Query gets registered in the WunderGraph console. Registering a Query means you create an RPC endpoint on your WunderGraph Node. You could say that writing a Query in WunderGraph is the same as creating an endpoint or a resource. From your registered Operations you can then generate a client using the WunderGraph command-line interface, the client is typesafe and exposes each "endpoint" as a method call, just like gRPC.

You might have noticed the three directives.

  • @auth makes this operation only available to authenticated users
  • @fromClaims enforces that the userID is always the "sub" claim from the auth token of a user
  • @cache ensures that the friends of each user get cached on the server and client for at least 300 seconds

As you can see from this example, we solved a lot of difficult problems with an easy to understand concept and kept the backend logic very simple. There's no jwt or caching middleware required. The user resolver does not need to "extract" the sub from a magic request context object.

Give WunderGraph a try and chat with us on discord or GitHub. During the Beta phase, WunderGraph is free to use.

We'd love to hear from you on how we can make WunderGraph even more useful to you.