Hasura connects to databases and all your other APIs to give a unified GraphQL API (and REST API, if you configure it).
This takes care of your CRUD APIs portion of building your app. With declarative Access Control Rules, you get powerful Authorization. IMO, these two should take care of 70% of your application code that you typically end up writing. The remaining will be custom business logic that you can write in any language or framework of choice and connect it to Hasura.
There’s of course more with the cloud offering to give you caching, rate limiting and monitoring in production. Hasura doesn’t host your database, it just needs the db connection string to get started.
I think Firebase has the lowest barrier to entry and if you don't exceed the pricing tiers, its a very pleasant experience.
Hasura and Prisma are both awesome, but after having worked in GraphQL a lot, I now try to stay at least 10 feet away at all times from GraphQL paradigms unless their hidden costs can be justified for the project.
I haven't used Thin, but it looks like its React only. If there was a Svelte or JS agnostic option Id give it a try.
Thin also supports other JS frameworks. Svelte docs can be found here https://thin.dev/docs/svelte We're focussing the communication on react mostly to keep things simple. The core of thin is independent of react.
I havent been following closely, but Prisma just landed $40m series B, & their announcement describes it as an intent to grow into an "Application Data" platform. https://news.ycombinator.com/item?id=31251167
So I think what they are talking about with platform here is just more and better tooling above the data store - like the prisma studio product for a uniform interface to data for different teams, abstracted above the detail of the specific store etc. So not just an ORM on the techincal level but that same sort of idea on a business level perhaps.
I don't see anything in there about this including plans to build their own native data store. Nor do I suspect that would be a great idea (really really hard, not their competency, nor their point of leverage!)
Using thin-backend has been one of the most delightful experiences I've had making an SPA with a simple backend. The developer experience with the generated TypeScript types is particularly great, the DB migrations remind me of Prisma, and knowing I have a standard Postgres db under the hood is comforting. It isn't a large or complex app, but Marc has been super responsive to bugs and feature suggestions so it has been fun to iterate on. You can find the code at https://github.com/ianobermiller/colorcal.
Coming from a rails background, I have really enjoyed developing against Firebase.
Cloud Firestore so much easier than deploying a rails app somewhere. It comes with a lot of great analytics tools. The auth stuff works great. The documentation is very good. It has been extremely reliable. Syncing across devices is amazing and seamless in my experience.
If it fits your use case (I think mostly CRUD apps with data sharing that is somewhat limited in its breadth, e.g. not something like twitter with N-N data relationships), it is really amazing.
It has most of the features that all this shiny new tools have (and more) but is way older. It used to be a Facebook hosted solution but it was opensourced and is still actively maintained, has SDKs for most languages and frameworks, REST & Graph QL API, live queries...
And there are still some sites that host it for you for free (limited), but you can always self host it yourself...
Thin Backend (https://thin.dev/) is the newest of all of those. Compared to Hasura it offers a nicer schema designer. Compared to Supabase it offers better end-to-end typesafety and a more higher level API that offers optimistic updates. Prisma is more like an ORM, so it's designed to be used by a handwritten backend.
Thanks for your feedback :) You have to send quite a few json messages to fill up 1GB. We think overall thin provides a lot of value and saves a lot of developer time (atleast for businesses), so we price it as that.
I think you should use different unit for pricing.
Bandwidth is frequently used in the context of file storage which can get expensive really fast even with a few users.
This doesn't translate well on the data side where most json responses will likely be lower than a few kb.
It's extremely unintuitive which is why I think most Paas providers use request and inflate the number (10 million requests sounds a lot in comparison).
I echo the sibling: I really recommend you change this. Pricing by bandwidth only makes sense if bandwidth is one of the main cost factors, because people will, consciously or not, compare it to other services that are priced by bandwidth.
I recently started a project with Appwrite. So far it looks to be quite straightforward, the only thing that's annoying is their database capabilities. You can only load data via their SDK API, so migrating my existing multi million record db is a pain.
We only have mobile apps, so I can’t speak for web apps, but for us Realm (https://realm.io/) has been amazing.
The Local API’s are a joy to work with. The capabilities of the local database makes Firebase look like a toy, and the sync service does solid two-way replication between devices.
Definitely one of the best backend-as-a-service we have tried (but our experience is mobile only, so yemv).
There’s no best really, but in my experience I prefer Hasura. I think their security model makes more sense than row level security and I prefer GraphQl.
Supabase recently shipped with graphql support that is very nice, it maps the query language to the relational schema in a sensible way. Without direct experience I understand this is similar to how Hasura maps it.
As for your preference for Hasura security vs Postgres' native row level security, of course your preference is entirely valid and may also be the best fit for your needs, but consider that RLS works for all database clients, not just Hasura, so if you have a heterogeneous db client environment and you want to enforce one central policy, RLS can do that but a Hasura specific policy checker can't.
Disclaimer: I work at Supabase but not directly on the GraphQL support.
Thin self-hosting is coming soon :) We already have this working on the technical side, we just need to add more documentation before we can push it out.
However, while I've played around with most of the others you mention, I haven't build anything serious with them. But hasura has a decent authentication story and reactive graphql queries are just a really nice dev experience