So hasura just exposes a Postgres database through GraphQL?

That sounds kinda nifty, but does it then allow you to write custom code to add business logic? Glancing through the documentation, that part wasn't clear to me.

That's one of the most common misconceptions about Hasura.

While it CAN expose an existing Postgres database, where it really shines (in my opinion) is when you're starting a brand new product. Because you can create your whole database and all the relationships, foreign-keys, triggers, permissions, etc through the web console UI incredibly rapidly.

And yeah, it takes care of all CRUD and provides an aggregation/statistics API (sum, median, standard deviation, count, mean, variance, etc), and it leaves the pieces of custom business logic up to you to write. It's entirely agnostic to what you use to write these, so long as they expose an HTTP endpoint.

Sorry, I'm a bit new to GraphQL. Can you explain why this is more existing than starting a brand new product using plain PostgreSQL?

Can you also explain how locked in you are, if you decide you want to migrate away from Hasura, or in general want more flexibility that the use-case of Hasura + ForestryAdmin?

With plain PostgreSQL you have to write your own backend logic to access the database. The whole point of Hasura is exposing your DB via a GraphQL API with some bells and whistles (like authorization).

About lock-in... it's open source software, so you're as locked in as you'd be with, say, Rails or Django. It doesn't do anything special to PostgreSQL so you can always rewrite the API later from scratch, or build something else on top of its GraphQL API.

So it's similar to http://postgrest.org/en/latest/ but for GraphQL, and commercial?

GraphQL yes. But it's open source under the Apache License, code is in Github:

https://github.com/hasura/graphql-engine/