10 ms·
Hasura – A Batteries-included App Development Platform
- supster 11y agoThis is very cool! I'm curious how would you compare the example given "Database (hasuradb) + Search (elasticsearch-hasura) + A Templating microservice (express + underscore)" to something like "MongoDB + Search(?) + (express + underscore) + Deploy to Heroku"? Anyways keep up the good work!
- kgadek 11y ago> MongoDB + Haskell. Something I hate with passion and something I love with passion. This makes me cringe…
- arkhamist 11y agohasura-db is built on top of postgres. It provides monogodb like document api.
- deleted 11y ago[deleted]
- supster 11y agoThe platform is not only for deploying Haskell apps - it can host any web server written in any language including JS. I think the platform is simply written in Haskell.
- arkhamist 11y agoOne of the core hasura devs here. 'hasura-db' is a wrapper over postgres. The idea is to provide a very neat json api to talk to postgres with a permissions model. However, you still have the raw access to postgres. So, you can always fire up a django/rails/etc app and connect to your postgres instance and implement any custom functionality that can't be done using hasura-db's json api. Coming to your question: Since the underlying db which actually stores your data is postgres, you get all the power of a relational database. With hasura-db you get a 'monogodb' like document api. So, hasura-db + postgres tries to capture the best of both worlds. Since your data is (designed to be) completely normalized in postgres, 'hasura-search' integrates with elastic search to create denormalised documents for efficient full text search in a declarative way. So, hasura-search esentially listens to any changes to your data in postgres and builds denormalised documents that are inserted/updated/deleted into elasticsearch. So, your elasticsearch data stays in sync with your postgres data in real time without any effort from your side ! Deployment will be at least as easy as on Heroku.
- supster 11y agoI see, so seems like your core innovation is this new kind of db along with amazing search integration. Then why become a full platform (seems harder to gain traction)? Why not become a DB/Search company and create a software package that customers use (kinda like MongoDB) rather than having to deploy their code onto your platform (like Heroku)? Just curious, I'm sure you may have had good technical / business reasons.
- tango12 11y agoHi! Core Hasura dev here. We're trying to make hasura a place to deploy microservice style applications where hasura handles all the operational things for you (sort of like heroku) and then also wrap up a lot of great existing tech as ready-to-eat microservices that just need declarative configuration. Like wrapping over Postgres and elasticsearch. Next up on our list is file handling and cloud storage integration. Then caching. So the idea is that a lot of things are figured out, in hopefully not idiotic ways. Built on open stuff. We're going to try to make our communication a lot more clear on that and then have a sensible demo to try it out and see the benefits of getting something super customisable setup without writing too much code.
- supster 11y agoThat actually sounds brilliant and I think there's definitely a need for something like this. As a mobile developer I often use Parse as a starting point b/c it allows fast prototyping for clients, but invariably I get frustrated by limitations and then roll my own backend. I see on your site that you guys are looking to develop iOS & Android SDKs, feel free to let me know if you would like a hand with that :) (My email is in my profile). Good luck!
- sridca 11y ago> The idea is to provide a very neat json api to talk to postgres with a permissions model. Just today I was looking for something like this! Any chance I can use only this json API service (using Heroku Postgres) without having to use the rest of Hasura?
- arkhamist 11y agoThe title suggests that Hasura is a platform for developing Haskell apps. It is not true. Hasura is language/framework agnostic. The core parts of Hasura are built using Haskell. Edit: If the op can remove the word 'Haskell' from the title, it would be great.
- Dewie3 11y agoI was wondering why the word "haskell" didn't appear anywhere on the site (just the logo). Cheers.
- cies 11y agoSame here.. What does this has to do with Haskell?
- dang 11y agoWe fixed the title, though unfortunately didn't see this yesterday. In the future, you or anyone is welcome to shoot us an email at hn@ycombinator.com if something needs fixing. We can't read all the threads, but we do see all the emails.
- jonsterling 11y agoCool that they used FP to develop this, but haven't we already learned the lesson about the BaaS stuff?
- graffitici 11y agoAnd what would be that lesson?
- jonsterling 11y agoThat it's a huge mistake to use a BaaS for anything but a demo. I think it's good to abstract out certain details that don't pertain to your application logic, and that's precisely what something like Heroku does. In my experience, a BaaS adds barely anything to that, and subtracts way more in terms of flexibility and lock-in. The amount of administration that using a BaaS saves (as opposed to something like Heroku) is minimal; the time that you'd spend doing straightforward admin stuff is just moved over to working around limitations of the BaaS, and is often multiplied in the process. The amount of actual code that using a BaaS saves is between 100-400 lines for a web application. Awful deal.
- tango12 11y agoI would just like to point out that Hasura is a PaaS. More like heroku, but with some ready to use microservices to get started quickly. So with hasura-db (which is a wrapper over Postgres) you get a BaaS like thing that helps you prototype and use quickly for permission safe REST + document operations, but always let you switch to custom code-driven-database operations that we usally write for applications.
- aikah 11y agoCan you tell us more about the "cloud code" feature and how it works exactly? compared to Parse for instance? do I need to write hooks and deploy a an app on my own server and hooks get called over the network when an api endpoint get called or something?
- arkhamist 11y agoYour 'cloud code' is just another microservice. You write it in whatever language you wish, package it with its dependencies as a docker image which will then be deployed onto hasura's platform and linked with the rest of your app's infrastructure. Essentially, you don't have to deploy anything on your own server. Whatever functionality hasura's 'batteries' can't provide (yet), you write it as another microservice. At the end of the day, your app is composed of several microservices (containers running in the cloud), few hasura provided and few custom written.
- sridca 11y agoThese guys seem to be into the cool stuff. I'm jealous. > Friday afternoon update: Programming in @elmlang and loving it! Will be building an modular admin app for @HasuraHQ. Hopefully in #elmlang https://twitter.com/34_Cross/status/589052000966283265 https://twitter.com/34_Cross/status/589052000966283265
- probably_wrong 11y agoRandom side note: I think I should point out that Spanish-speakers will associate the name of the platform with "basura" (garbage).