Introducing GiraffeQL

Why GraphQL?

GraphQL is quickly replacing REST as the preferred design pattern for APIs, and for good reason. Working with a GraphQL endpoint is a joy: you can request only what you need, data is served back just as you asked for it, and you can consolidate what used to be multiple trips to the backend into a single HTTP request. Gone are the days of dozens of endpoints that each perform slightly different tasks.

But what’s the catch?

As with all good things, there’s a catch. Unless you are working with an out-of-the-box GraphQL API from a third party or an API provided by your database management system, such as MongoDB Realm, setting up your GraphQL endpoint can be extremely cumbersome, time consuming, and prone to human error.

Anyone who has set up a GraphQL endpoint before has likely experienced misspelling a field in a type definition only to get null responses from your queries and have no idea what went wrong. Whether that situation resonates with you or not, is here to help.

Enter giraffeQL

GiraffeQL is a relational database design and GraphQL schema configuration tool that can be plugged in throughout the development process of a GraphQL endpoint. Already have a PostgreSQL DB from an existing application? Simply enter your connection URI and giraffeQL will display an interactive visualization of your tables and their relationships. Starting from scratch? Use giraffeQL’s GUI to create tables and columns, select data types, establish table relationships and see your Apollo GraphQL schema code generated.

Planning to add additional database connections to your GraphQL endpoint? Use the GUI to add additional tables to your canvas and set any foreign key / primary key relationship between tables.

If the database mapping algorithm missed anything, you can edit column names, primary key restraints, or table to table relationships

Alternatively, if you’re building an application from scratch, you can start with a blank canvas and map out your DB schema. If you’re logged in, any edits you make will be saved automatically and can be accessed on the diagrams page.

Finally, export the code, fill in the resolvers with your preferred database interactions and get querying.

GiraffeQL is an end to end SQL database + GraphQL backend design solution. It takes a developer from relational DB design to GraphQL schema configuration and handles much of the boilerplate code of your behalf. It is currently in an early prerelease stage so comments, suggestions and PRs are appreciated!

For more information about giraffeQL, checkout or our GitHub repo.

The team:
Anson Avellar | GitHub
Benji Trosch | GitHub
Dan Snyder | GitHub
Eric Peng | GitHub

Create entity relationship diagrams for your database schema and easily convert PostgreSQL to GraphQL without any code. 🦒

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

BDD Scenarios Explained: Responsibilities, roles, terminology and fine details in Behavioural…

Using Correlation IDs in API Calls

Why Green Hosting Matters: The Major Environmental Impact of Data Hosting and How We Can Fix It

Dissecting the Definition

The Ultimate Guide on How to Write Terraform Modules — Part 1

GraphQL is the New API Gateway

Sprinting SREs

Creating A Cloudflare Worker Using Rust That’s Able To Fetch Remote Data

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store


Create entity relationship diagrams for your database schema and easily convert PostgreSQL to GraphQL without any code. 🦒

More from Medium

Complete guide for relations (OneToMany, ManyToMany, OneToOne …) on NestJs (GraphQl and Rest)

The GraphQL specification + best-practices: The quest for standardisation

saml-based sign-on using nodejs

OCI NoSQL Tables